如何在Debian10上使用LAMP安装WordPress
介绍
WordPress 是互联网上最流行的 CMS(内容管理系统)。 它允许您在使用 PHP 处理的 MariaDB 后端之上轻松设置灵活的博客和网站。 WordPress 的采用率令人难以置信,是让网站快速启动和运行的绝佳选择。 设置后,几乎所有管理都可以通过 Web 前端完成。
在本指南中,我们将重点介绍在 Debian 10 服务器上的 LAMP 堆栈(Linux、Apache、MariaDB 和 PHP)上设置 WordPress 实例。
先决条件
为了完成本教程,您需要访问 Debian 10 服务器。
在开始本指南之前,您需要执行以下任务:
- 在您的服务器上创建一个 sudo 用户:我们将使用具有
sudo
权限的非 root 用户来完成本指南中的步骤。 您可以按照我们的 Debian 10 初始服务器设置指南 创建具有sudo
权限的用户。 - 安装 LAMP 堆栈:WordPress 需要 Web 服务器、数据库和 PHP 才能正常运行。 设置 LAMP 堆栈(Linux、Apache、MariaDB 和 PHP)可以满足所有这些要求。 按照本指南安装和配置这个软件。
- 使用 SSL 保护您的网站:WordPress 提供动态内容并处理用户身份验证和授权。 TLS/SSL 是一种允许您加密来自您的站点的流量以确保您的连接安全的技术。 您设置 SSL 的方式将取决于您是否拥有站点的域名。 如果您有域名……保护您的网站的最简单方法是使用 Let's Encrypt,它提供免费的、受信任的证书。 按照我们的 Apache 加密指南进行设置。 如果您没有域......并且您只是将此配置用于测试或个人使用,则可以使用自签名证书。 这提供了相同类型的加密,但没有域验证。 按照我们的 Apache 自签名 SSL 指南进行设置。
完成设置步骤后,以 sudo
用户身份登录到您的服务器,然后继续下面的操作。
第 1 步 — 为 WordPress 创建 MariaDB 数据库和用户
我们将采取的第一步是准备工作。 WordPress 需要基于 MySQL 的数据库来存储和管理站点和用户信息。 我们已经安装了 MariaDB——MySQL 的替代品——但是我们需要创建一个数据库和一个用户供 WordPress 使用。
首先,以 root 帐户打开 MariaDB 提示符:
sudo mariadb
注意: 如果您在安装和设置 MariaDB 时设置了另一个具有管理权限的帐户,您也可以以该用户身份登录。 您需要使用以下命令执行此操作:
mariadb -u username -p
发出此命令后,MariaDB 将提示您输入为该帐户设置的密码。
首先创建一个 WordPress 将控制的新数据库。 您可以随意调用它,但为了保持本指南的简单性,我们将其命名为 wordpress。
通过键入以下内容为 WordPress 创建数据库:
CREATE DATABASE wordpress DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci;
请注意,每个 MySQL 语句必须以分号 (;
) 结尾。 如果您遇到任何问题,请检查以确保它存在。
接下来,创建一个单独的 MySQL 用户帐户,我们将专门使用它来操作我们的新数据库。 从管理和安全的角度来看,创建单一功能的数据库和帐户是一个好主意。 我们将在本指南中使用名称 wordpress_user,但如果您愿意,可以随意更改。
创建此帐户,设置密码,并授予用户访问您刚刚使用以下命令创建的数据库的权限。 请记住为您的数据库用户选择一个强密码:
GRANT ALL ON wordpress.* TO 'wordpress_user'@'localhost' IDENTIFIED BY 'password';
您现在有一个数据库和用户帐户,每个帐户都是专门为 WordPress 制作的。 运行以下命令重新加载授权表,以便 MariaDB 的当前实例知道您所做的更改:
FLUSH PRIVILEGES;
通过键入以下内容退出 MariaDB:
EXIT;
现在您已经配置了 WordPress 将使用的数据库和用户,您可以继续安装 CMS 使用的一些 PHP 相关包。
第 2 步 — 安装额外的 PHP 扩展
在设置 LAMP 堆栈时,我们只需要极少的扩展集即可让 PHP 与 MariaDB 通信。 WordPress 及其许多插件利用了额外的 PHP 扩展。
通过键入以下内容下载并安装一些最流行的 PHP 扩展以用于 WordPress:
sudo apt update sudo apt install php-curl php-gd php-mbstring php-xml php-xmlrpc php-soap php-intl php-zip
注意: 每个 WordPress 插件都有自己的一套要求。 有些可能需要安装额外的 PHP 包。 检查您的插件文档以查找其 PHP 要求。 如果它们可用,则可以使用 apt
安装它们,如上所示。
我们将在下一节重新启动 Apache 以加载这些新扩展。 如果您要返回此处安装其他插件,您现在可以通过键入以下命令重新启动 Apache:
sudo systemctl restart apache2
此时,在安装 WordPress 之前剩下要做的就是对您的 Apache 配置进行一些更改,以使 CMS 能够顺利运行。
第 3 步 — 调整 Apache 的配置以允许 .htaccess 覆盖和重写
安装了附加的 PHP 扩展并准备好使用后,接下来要做的就是对 Apache 配置进行一些更改。 根据先决条件教程,您应该在 /etc/apache2/sites-available/
目录中有您站点的配置文件。 我们将在此处使用 /etc/apache2/sites-available/wordpress.conf
作为示例,但您应该在适当的地方替换配置文件的路径。
此外,我们将使用 /var/www/wordpress
作为 WordPress 安装的根目录。 您应该使用您自己的配置中指定的 Web 根目录。
注意: 您可能正在使用 000-default.conf
默认配置(以 /var/www/html
作为您的 Web 根目录)。 如果您只想在此服务器上托管一个网站,则可以使用此功能。 如果没有,最好将必要的配置拆分为逻辑块,每个站点一个文件。
目前,禁用 .htaccess
文件。 WordPress 和许多 WordPress 插件广泛使用这些文件来对 Web 服务器的行为进行目录内调整。
打开您网站的 Apache 配置文件。 请注意,如果您的网站已有 Apache 配置文件,则此文件的名称将有所不同:
sudo nano /etc/apache2/sites-available/wordpress.conf
要允许 .htaccess
文件,您需要添加一个指向文档根目录的 Directory
块,其中包含 AllowOverride
指令。 在配置文件的 VirtualHost
块中添加以下文本块,确保使用正确的 Web 根目录:
/etc/apache2/sites-available/wordpress.conf
<Directory /var/www/wordpress/> AllowOverride All </Directory>
完成后,保存并关闭文件。
接下来,启用 rewrite
模块以利用 WordPress 永久链接功能:
sudo a2enmod rewrite
在实施您所做的更改之前,请检查以确保您没有犯任何语法错误:
sudo apache2ctl configtest
如果您的配置文件的语法正确,您将在输出中看到以下内容:
OutputSyntax OK
如果此命令报告任何错误,请返回并检查您的配置文件中是否存在任何语法错误。 否则,重新启动 Apache 以实现更改:
sudo systemctl restart apache2
接下来,我们将下载并设置 WordPress 本身。
第 4 步 — 下载 WordPress
现在您的服务器软件已配置完毕,您可以下载并设置 WordPress。 特别是出于安全原因,始终建议直接从他们的站点获取最新版本的 WordPress。
注意:我们将使用curl
来下载WordPress,但是这个程序可能默认没有安装在你的Debian服务器上。 要安装它,请运行:
sudo apt install curl
更改为可写目录,然后通过键入以下内容下载压缩版本:
cd /tmp curl -O https://wordpress.org/latest.tar.gz
提取压缩文件以创建 WordPress 目录结构:
tar xzvf latest.tar.gz
我们将暂时将这些文件移动到我们的文档根目录中。 不过,在我们这样做之前,请添加一个虚拟的 .htaccess
文件,以便 WordPress 以后可以使用它。
通过键入以下内容创建文件:
touch /tmp/wordpress/.htaccess
然后将示例配置文件复制到 WordPress 实际读取的文件名:
cp /tmp/wordpress/wp-config-sample.php /tmp/wordpress/wp-config.php
此外,创建 upgrade
目录,以便 WordPress 在更新其软件后尝试自行执行此操作时不会遇到权限问题:
mkdir /tmp/wordpress/wp-content/upgrade
然后,将目录的全部内容复制到文档根目录中。 请注意,以下命令在源目录末尾包含一个点,表示应复制目录中的所有内容,包括隐藏文件(如您创建的 .htaccess
文件):
sudo cp -a /tmp/wordpress/. /var/www/wordpress
至此,您已成功将 WordPress 安装到您的 Web 服务器上并执行了一些初始配置步骤。 接下来,我们将讨论一些进一步的配置更改,这些更改将赋予 WordPress 运行所需的权限以及访问您之前创建的 MariaDB 数据库和用户帐户的权限。
第 5 步 — 配置 WordPress 目录
在我们完成 WordPress 的基于 Web 的设置过程之前,我们需要调整 WordPress 目录中的一些项目。
首先将所有文件的所有权授予 www-data 用户和组。 这是运行 Apache Web 服务器的用户,Apache 需要能够读取和写入 WordPress 文件,以便为网站提供服务并执行自动更新。
用 chown
更新所有权:
sudo chown -R www-data:www-data /var/www/wordpress
接下来我们将运行两个 find
命令来设置 WordPress 目录和文件的正确权限:
sudo find /var/www/wordpress/ -type d -exec chmod 750 {} \; sudo find /var/www/wordpress/ -type f -exec chmod 640 {} \;
这些应该是一个合理的权限设置,尽管一些插件和程序可能需要额外的调整。
在此之后,您需要对主 WordPress 配置文件进行一些更改。
当您打开文件时,您的第一个目标将是调整一些密钥以为您的安装提供一些安全性。 WordPress 为这些值提供了一个安全的生成器,因此您不必自己尝试提出好的值。 这些仅在内部使用,因此在这里使用复杂、安全的值不会损害可用性。
要从 WordPress 密钥生成器中获取安全值,请键入:
curl -s https://api.wordpress.org/secret-key/1.1/salt/
您将获得如下所示的唯一值:
警告! 每次都请求唯一值很重要。 NOT 复制下面显示的值!
Outputdefine('AUTH_KEY', '1jl/vqfs<XhdXoAPz9 DO NOT COPY THESE VALUES c_j{iwqD^<+c9.k<J@4H'); define('SECURE_AUTH_KEY', 'E2N-h2]Dcvp+aS/p7X DO NOT COPY THESE VALUES {Ka(f;rv?Pxf})CgLi-3'); define('LOGGED_IN_KEY', 'W(50,{W^,OPB%PB<JF DO NOT COPY THESE VALUES 2;y&,2m%3]R6DUth[;88'); define('NONCE_KEY', 'll,4UC)7ua+8<!4VM+ DO NOT COPY THESE VALUES #`DXF+[$atzM7 o^-C7g'); define('AUTH_SALT', 'koMrurzOA+|L_lG}kf DO NOT COPY THESE VALUES 07VC*Lj*lD&?3w!BT#-'); define('SECURE_AUTH_SALT', 'p32*p,]z%LZ+pAu:VY DO NOT COPY THESE VALUES C-?y+K0DK_+F|0h{!_xY'); define('LOGGED_IN_SALT', 'i^/G2W7!-1H2OQ+t$3 DO NOT COPY THESE VALUES t6**bRVFSD[Hi])-qS`|'); define('NONCE_SALT', 'Q6]U:K?j4L%Z]}h^q7 DO NOT COPY THESE VALUES 1% ^qUswWgn+6&xqHN&%');
这些是您将直接粘贴到配置文件中以设置安全密钥的配置行。 将收到的输出复制到剪贴板,然后打开位于文档根目录中的 WordPress 配置文件:
sudo nano /var/www/wordpress/wp-config.php
找到包含这些设置的虚拟值的部分。 它看起来像这样:
/var/www/wordpress/wp-config.php
. . . define('AUTH_KEY', 'put your unique phrase here'); define('SECURE_AUTH_KEY', 'put your unique phrase here'); define('LOGGED_IN_KEY', 'put your unique phrase here'); define('NONCE_KEY', 'put your unique phrase here'); define('AUTH_SALT', 'put your unique phrase here'); define('SECURE_AUTH_SALT', 'put your unique phrase here'); define('LOGGED_IN_SALT', 'put your unique phrase here'); define('NONCE_SALT', 'put your unique phrase here'); . . .
删除这些行并粘贴您从命令行复制的值:
/var/www/wordpress/wp-config.php
. . . define('AUTH_KEY', 'VALUES COPIED FROM THE COMMAND LINE'); define('SECURE_AUTH_KEY', 'VALUES COPIED FROM THE COMMAND LINE'); define('LOGGED_IN_KEY', 'VALUES COPIED FROM THE COMMAND LINE'); define('NONCE_KEY', 'VALUES COPIED FROM THE COMMAND LINE'); define('AUTH_SALT', 'VALUES COPIED FROM THE COMMAND LINE'); define('SECURE_AUTH_SALT', 'VALUES COPIED FROM THE COMMAND LINE'); define('LOGGED_IN_SALT', 'VALUES COPIED FROM THE COMMAND LINE'); define('NONCE_SALT', 'VALUES COPIED FROM THE COMMAND LINE'); . . .
接下来,修改文件顶部的数据库连接设置。 您需要调整在 MariaDB 中配置的数据库名称、数据库用户和关联密码。
您必须进行的另一项更改是设置 WordPress 用于写入文件系统的方法。 由于我们已授予 Web 服务器写入所需位置的权限,因此我们可以将文件系统方法显式设置为“直接”。 未能使用我们当前的设置进行设置将导致 WordPress 在您执行某些操作时提示输入 FTP 凭据。
可以在数据库连接设置下方或文件中的任何其他位置添加此设置:
/var/www/wordpress/wp-config.php
. . . define('DB_NAME', 'wordpress'); /** MySQL database username */ define('DB_USER', 'wordpress_user'); /** MySQL database password */ define('DB_PASSWORD', 'password'); . . . define('FS_METHOD', 'direct');
完成后保存并关闭文件。 最后,您可以通过 Web 浏览器访问 WordPress 来完成安装和配置。
第 6 步 — 通过 Web 界面完成安装
现在服务器配置完成,我们可以通过web界面完成安装。
在您的网络浏览器中,导航到您的服务器的域名或公共 IP 地址:
https://server_domain_or_IP
选择您要使用的语言:
接下来,您将进入主设置页面。 为您的 WordPress 站点选择一个名称并选择一个用户名(出于安全考虑,建议不要选择“admin”之类的名称)。 自动生成强密码。 保存此密码或选择其他强密码。
输入您的电子邮件地址并选择是否要阻止搜索引擎将您的网站编入索引:
准备就绪后,单击 安装 WordPress 按钮。 您将被带到一个提示您登录的页面:
登录后,您将被带到 WordPress 管理仪表板:
从仪表板中,您可以开始更改站点的主题和发布内容。
结论
WordPress 应该已安装并可以使用! 一些常见的后续步骤是为您的帖子选择永久链接设置(可以在 Settings > Permalinks
中找到)或选择一个新主题(在 Appearance > Themes
中)。 如果这是您第一次使用 WordPress,请浏览一下界面以熟悉您的新 CMS,或查看官方文档中的 First Steps with WordPress 指南。