如何在CentOS7上使用Caddy安装WordPress
介绍
WordPress 是一个流行的内容管理系统 (CMS)。 它可用于快速轻松地设置博客和网站,并且几乎所有的管理都可以通过 Web 界面进行。
在大多数情况下,WordPress 是使用 LAMP 或 LEMP 堆栈安装的(即 使用 Apache 或 Nginx 作为 Web 服务器)。 在本指南中,我们将使用 Caddy 来设置 WordPress。 Caddy 是一种新的 Web 服务器,因其广泛的独特功能而迅速普及,例如 HTTP/2 支持和使用流行的免费证书提供商 Let's Encrypt 的自动 TLS 加密。
在本教程中,您将安装和配置由 Caddy 支持的 WordPress。
先决条件
要遵循本教程,您将需要:
- 使用 this initial server setup tutorial 设置的一台 CentOS 7 服务器,包括 sudo 非 root 用户。
- 按照 如何在 CentOS 7 上安装 MySQL 教程安装 MySQL。
- 按照 如何在 CentOS 7 上使用 Caddy 教程安装 Caddy,包括 配置为指向您的 Droplet 的域名。
第 1 步 — 安装 PHP
为了运行 WordPress,您需要一个 Web 服务器、一个 MySQL 数据库和 PHP 脚本语言。 您已经根据先决条件安装了 Caddy 网络服务器和 MySQL 数据库,因此最后一个要求是安装 PHP。
首先,确保您的软件包是最新的。
sudo yum update
安装 PHP 和 PHP 扩展 WordPress 依赖,例如支持 MySQL、curl
、XML 和多字节字符串。
sudo yum install php php-fpm php-mysql php-curl php-gd php-mbstring php-mcrypt php-xml php-xmlrpc
安装完成后,您可以通过检查 PHP 的版本来验证 PHP 是否已正确安装。
php -v
您将看到与此类似的输出,其中显示 PHP 的版本号。
PHP version outputPHP 5.4.16 (cli) (built: Nov 6 2016 00:29:02) Copyright (c) 1997-2013 The PHP Group Zend Engine v2.4.0, Copyright (c) 1998-2013 Zend Technologies
在我们继续之前,我们必须稍微修改 PHP 服务的配置文件,使其使用我们的非特权 caddy
用户来运行服务器。 CentOS 上的默认配置假定 Apache 是首选服务器。
使用 vi
或您喜欢的文本编辑器打开 PHP-FPM 配置文件。 如果您不熟悉 vi,这里有一个 的简短介绍。
sudo vi /etc/php-fpm.d/www.conf
找到指定用户帐户和组的片段。
/etc/php-fpm.d/www.conf
; Unix user/group of processes ; Note: The user is mandatory. If the group is not set, the default user's group ; will be used. ; RPM: apache Choosed to be able to access some dir as httpd user = apache ; RPM: Keep a group allowed to write in log dir. group = apache
将这两个值更改为 caddy,如下所示:
/etc/php-fpm.d/www.conf
; Unix user/group of processes ; Note: The user is mandatory. If the group is not set, the default user's group ; will be used. ; RPM: apache Choosed to be able to access some dir as httpd user = caddy ; RPM: Keep a group allowed to write in log dir. group = caddy
保存并关闭文件以退出。 为了让 Caddy 能够与 PHP 通信,请启动 PHP 服务。
sudo systemctl start php-fpm
安装了所有 WordPress 的依赖项,所以接下来,我们将配置一个 MySQL 数据库供 WordPress 使用。
第 2 步 — 创建 MySQL 数据库和专用用户
WordPress 使用 MySQL 数据库来存储其所有信息。 在默认的 MySQL 安装中,仅创建一个 root 管理帐户。 不应使用此帐户,因为其对数据库服务器的无限权限存在安全风险。 在这里,我们将创建一个专用的 MySQL 用户供 WordPress 使用,以及一个允许新用户访问的数据库。
首先,登录 MySQL root 管理帐户。
mysql -u root -p
在安装过程中,系统会提示您输入为 MySQL root 帐户设置的密码。
创建一个名为 wordpress
的新数据库,它将用于 WordPress 网站。 您可以使用不同的名称,但请确保您记住它以便以后进行其他配置。
CREATE DATABASE wordpress DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
接下来,创建一个允许访问该数据库的新用户。 在这里,为了简单起见,我们使用用户名 wordpressuser
,但您可以选择自己的名称。 请记住将 password
替换为强大且安全的密码。
GRANT ALL ON wordpress.* TO 'wordpressuser'@'localhost' IDENTIFIED BY 'password';
注意: 记住默认密码策略需要12个字符,至少1个大写字母、1个小写字母、1个数字和1个特殊字符。 如果您忘记遵循该策略,上述命令将不会创建用户,而是显示错误消息。
刷新权限以通知 MySQL 服务器更改。
FLUSH PRIVILEGES;
您现在可以安全地退出 MySQL。
EXIT;
WordPress 有一个专用的数据库和用户帐户,因此所有系统组件都已设置好。 下一步是安装 WordPress 本身。
第 3 步 — 下载 WordPress
安装 WordPress 包括将最新版本下载到 Web 根目录并确保 Web 服务器可以访问它,然后通过 WordPress 的图形界面完成安装。 在这一步中,我们将只下载版本,因为我们需要先配置 Web 服务器,然后才能访问 GUI。
首先,将当前目录更改为 /var/www
,即存储您网站文件的 Web 根目录。
cd /var/www
下载最新的压缩 WordPress 版本。 使用最新版本很重要,因为该软件经常使用安全补丁进行更新。
sudo curl -O https://wordpress.org/latest.tar.gz
解压刚刚下载的压缩包。
sudo tar zxf latest.tar.gz
这将自动创建一个名为 wordpress
的新目录。 您现在可以安全地删除下载的存档,因为它不再需要。
sudo rm latest.tar.gz
最后一步是更改 WordPress 文件和目录的权限,使所有文件都可以被 Caddy 写入。 这将允许 WordPress 自动更新到较新的版本。
sudo chown -R caddy:caddy wordpress
注意: 为 WordPress 文件选择正确的权限是一个偏好和管理实践的问题。 禁止对 WordPress 文件的写访问可以提高安全性,因为它无法利用一些可能导致 WordPress 核心文件受损的错误,但同时,它会导致禁用自动安全更新以及通过 WordPress 安装和更新插件的能力网页界面。
接下来,您需要修改 Web 服务器的配置以服务您的网站。
第 4 步 — 配置 Caddy 以服务于 WordPress 网站
在这里,我们将修改 Caddyfile
配置文件,告诉 Caddy 我们的 WordPress 安装在哪里,以及它应该在哪个域名下发布给访问者。
使用 vi
或您喜欢的文本编辑器打开配置文件
sudo vi /etc/caddy/Caddyfile
将以下配置复制并粘贴到文件中。 您可以从以前的教程中删除任何示例配置。
/etc/caddy/Caddy 文件
example.com { tls admin@example.com root /var/www/wordpress gzip fastcgi / 127.0.0.1:9000 php rewrite { if {path} not_match ^\/wp-admin to {path} {path}/ /index.php?_url={uri} } }
这个 Caddyfile
的结构如下:
- 第一行中的
example.com
是网站可用的域名。 将其替换为您自己的域名。 tls
指令后面的admin@example.com
告诉 Caddy 它应该用来请求 Let's Encrypt 证书的电子邮件地址。 如果您需要恢复证书,Let's Encrypt 将在恢复过程中使用此电子邮件地址。root
指令告诉 Caddy 网站文件的位置。 在此示例中,它是/var/www/wordpress
。gzip
指令告诉 Caddy 使用 Gzip 压缩来使网站更快。fastcgi
指令配置 PHP 处理程序以支持具有php
扩展名的文件- 使用
rewrite
指令可以启用漂亮的 URL(在 WordPress 中称为漂亮的永久链接)。 如果您使用 Apache,此配置由 WordPress 在.htaccess
文件中自动提供,但需要为 Caddy 单独配置。
相应地更改配置文件后,保存文件并退出。
重新启动 Caddy 以使新的配置文件设置生效。
sudo systemctl restart caddy
当 Caddy 启动时,它将自动从 Let's Encrypt 获取 SSL 证书,以使用 TLS 加密安全地为您的站点提供服务。 您现在可以通过使用 Web 浏览器导航到您的域来访问您的 Caddy 托管的 WordPress 网站。 当您这样做时,您会注意到地址栏中的绿色锁定标志,这意味着该站点正在通过安全连接显示。
您现在已经安装并配置了 Caddy 以及托管 WordPress 网站所需的所有软件。 最后一步是使用其图形界面完成 WordPress 的配置。
第 5 步 — 配置 WordPress
WordPress 有一个 GUI 安装向导来完成其设置,包括连接到数据库和设置您的第一个网站。
当您第一次在浏览器中访问新的 WordPress 实例时,您会看到一个语言列表。 选择您要使用的语言。 在下一个屏幕上,它描述了它需要的有关您的数据库的信息。 点击Let's go!,下一页会询问数据库连接详情。 请按如下方式填写此表格:
- Database Name 应该是
wordpress
,除非您在步骤 2 中自定义了它。 - Username 应该是 wordpressuser,除非您在步骤 2 中自定义了它。
- Password 应该是您在步骤 2 中为 wordpressuser 设置的密码。
- Database Host 和 Table Prefix 应该保留它们的默认值。
当您点击 Submit 时,WordPress 将检查提供的详细信息是否正确。 如果您收到错误消息,请仔细检查您输入的数据库详细信息是否正确。
一旦 WordPress 成功连接到您的数据库,您将看到一条以好吧,闪闪发光! 您已经完成了安装的这一部分。 WordPress 现在可以与您的数据库进行通信。
现在您可以单击运行安装开始安装。 片刻之后,WordPress 将显示一个最终屏幕,询问您的网站详细信息,例如网站标题、管理员帐户用户名、密码和电子邮件地址。 强密码将为您自动生成,但您可以根据需要选择自己的密码。
注意: 管理帐户不要使用像 admin 这样的通用用户名,这是一种很好的安全做法,因为许多安全漏洞都依赖于标准用户名和密码。 为您的主帐户选择一个唯一的用户名和一个强密码,以帮助确保您的网站安全。
点击 Install WordPress 后,您将被定向到 WordPress 仪表板。 您现在已经完成了 WordPress 的安装,您可以自由地使用 WordPress 来自定义您的网站并撰写文章和页面。
结论
现在,您已经使用 Caddy Web 服务器提供了一个有效的 WordPress 安装。 Caddy 将自动从 Let's Encrypt 获取 SSL 证书,通过安全连接为您的网站提供服务,并使用 HTTP/2 和 Gzip 压缩来更快地为网站提供服务。 您可以在 官方 Caddy 文档 中阅读更多关于 Caddyfile
的 Caddy 独特功能和配置指令。
如果您想在新的 WordPress 实例中使用插件,请注意某些插件依赖于 Apache Web 服务器的 .htaccess
文件。 Apache 以外的 Web 服务器已经在 WordPress 中变得很常见,因此这些 .htaccess
依赖的插件并不多。 但是,确实存在的少数无法与 Caddy 一起使用,因为它不使用 .htaccess
。 如果您在使用 Caddy 时遇到 WordPress 插件问题,请记住这一点。
大多数依赖 .htaccess
的插件都是缓存插件(例如,W3 Total Cache),它们使用 .htaccess
来完全绕过 PHP 进行处理。 另一个例子是 Wordfence,它是一个 Web 应用防火墙模块,默认使用 .htaccess
,但它正确支持不同的配置模型。