在CentOS上用Caddy安装WordPress

2018-07-30 10:10:25 浏览数 (1)

介绍

WordPress是一个以PHP和MySQL为平台的自由开源的博客软件和内容管理系统。WordPress具有插件架构和模板系统。Alexa排行前100万的网站中有超过16.7%的网站使用WordPress。到了2011年8月,约22%的新网站采用了WordPress。WordPress是目前因特网上最流行的博客系统。

在大多数情况下,使用LAMP或LEMP(即Apache和Nginx)来安装WordPress。在本教程中,我们将使用Caddy来安装WordPress。Caddy是一个新的的网络服务器,因其广泛的独特功能而迅速普及,例如支持HTTP/2和自动TLS加密。

在本教程中,您将安装和配置Caddy支持的WordPress。

准备

要学习本教程,您需要:

  • 一个CentOS 7服务器,没有服务器的同学可以在这个页面购买。我建议您使用腾讯云免费的开发者实验室进行试验。
  • 一个MySQL服务器,建议您使用稳定的云数据库进行搭建。

第一步、安装Caddy

Caddy项目提供了一个安装脚本,用于安装Caddy服务器文件。要执行请输入:

代码语言:javascript复制
curl -s https://getcaddy.com | bash

您可以通过访问https://getcaddy.com使用wgetcurl下载文件来查看脚本。

在安装过程中,脚本将用于sudo获取管理权限,以便将Caddy文件放在系统范围的目录中,因此它可能会提示您输入密码。

命令输出如下所示:

代码语言:javascript复制
Downloading Caddy for linux/amd64...
https://caddyserver.com/download/linux/amd64?plugins=
Extracting...
Putting caddy in /usr/local/bin (may require password)
[sudo] password for sammy:
Caddy 0.10.2
Successfully installed

脚本完成后,Caddy文件将安装在服务器上并准备使用。您可以使用which检查其位置来验证Caddy二进制文件是否已到位。

代码语言:javascript复制
which caddy

命令输出将说明可以找到Caddy二进制文件/usr/local/bin/caddy

第二步、安装PHP

要运行WordPress,您需要Web服务器,MySQL数据库和PHP脚本语言。因此最后一个要求是安装PHP。

首先,确保您的包是最新的。

代码语言:javascript复制
sudo yum update

安装PHP和WordPress所依赖的PHP扩展,如支持MySQL curl,XML和多字节字符串。

代码语言:javascript复制
sudo yum install php php-fpm php-mysql php-curl php-gd php-mbstring php-mcrypt php-xml php-xmlrpc

安装完成后,您可以通过检查PHP的版本来验证PHP是否已正确安装。

代码语言:javascript复制
php -v

您将看到类似于此的输出,它显示PHP的版本号。

代码语言:javascript复制
PHP 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配置文件。

代码语言:javascript复制
sudo vi /etc/php-fpm.d/www.conf

找到指定用户帐户的片段。

代码语言:javascript复制
; 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,如下所示:

代码语言:javascript复制
; 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服务。

代码语言:javascript复制
sudo systemctl start php-fpm

安装所有WordPress的依赖项,接下来,我们将为WordPress配置MySQL数据库以供使用。

第三步 - 创建MySQL数据库和专用用户

WordPress使用MySQL数据库来存储其所有信息。在默认的MySQL安装中,仅创建root管理帐户。不应使用此帐户,因为它对数据库服务器存在安全风险。在这里,我们将为WordPress创建一个专用的MySQL用户,以允许新用户访问的数据库。

首先,登录MySQL root管理帐户。

代码语言:javascript复制
mysql -u root -p

在安装过程中,系统将提示您输入MySQL root帐户的密码。创建一个名为wordpress的新数据库,将用于WordPress网站。您可以使用其他名称,但请确保在以后进行其他配置时记住该名称。

代码语言:javascript复制
CREATE DATABASE wordpress DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;

接下来,创建一个允许访问此数据库的新用户。在这里,我们使用用户名wordpressuser来简化,但您可以选择自己的名称。请用安全的密码替换password

代码语言:javascript复制
GRANT ALL ON wordpress.* TO 'wordpressuser'@'localhost' IDENTIFIED BY 'password';

注意:默认密码策略需要12个字符,至少包含一个大写字母,一个小写字母,一个数字和一个特殊字符。如果您忘记遵循该策略,则上述命令不会创建用户,而是显示错误消息。

刷新权限以通知MySQL服务器更改。

代码语言:javascript复制
FLUSH PRIVILEGES;

您现在可以退出MySQL。

代码语言:javascript复制
EXIT;

WordPress有一个专用的数据库和用户帐户,因此所有系统组件都已设置完毕。下一步是安装WordPress本身。

第四步、下载WordPress

将最新的WordPress下载到Web根目录并确保Web服务器可以访问它,然后通过WordPress的浏览器的GUI(图形界面)完成安装。在这一步中,我们只下载该版本,因为我们需要在访问GUI(图形界面)之前配置Web服务器。

首先,将当前目录更改为/var/www,即存储网站文件的Web根目录。

代码语言:javascript复制
cd /var/www

下载最新的WordPress版本。建议您使用最新版,因为软件经常使用安全补丁进行更新。

代码语言:javascript复制
sudo curl -O https://wordpress.org/latest.tar.gz

提取解压刚下载的压缩存档。

代码语言:javascript复制
sudo tar zxf latest.tar.gz

这将自动创建一个名为wordpress的新目录。我们删除掉旧的压缩包

代码语言:javascript复制
sudo rm latest.tar.gz

最后一步是更改WordPress文件和目录的权限,以便所有文件都可由Caddy写入。允许WordPress自动更新到更新的版本。

代码语言:javascript复制
sudo chown -R caddy:caddy wordpress

注意:禁止对WordPress文件进行写访问可以提高安全性,通过使它无法利用可能导致WordPress核心文件泄露的一些错误,但同时,它会导致禁用自动安全更新以及通过WordPress Web界面安装和更新插件的功能。

接下来,您需要修改Web服务器的配置以服务您的网站。

第四步 - 配置Caddy为WordPress网站提供服务

我们将修改Caddyfile配置文件,告诉Caddy我们的WordPress安装位于何处以及应该用哪个域名来执行。

使用vi或您最喜欢的文本编辑器打开配置文件

代码语言:javascript复制
sudo vi /etc/caddy/Caddyfile

将以下配置复制并粘贴到文件中。您可以从以前的教程中删除任何示例配置。

代码语言:javascript复制
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是站点可用的域名。 将其替换为您自己的域名。
  • root指令告诉Caddy网站文件的位置。在这个例子中,它是/var/www/wordpress
  • gzip指令告诉Caddy使用Gzip压缩来加快网站速度。
  • fastcgi指令配置PHP处理程序以支持具有php扩展名的文件
  • 使用rewrite指令启用URL(在WordPress中称为非常永久链接)。如果您使用Apache,则此配置由.htaccess文件中的WordPress自动提供,但需要单独为Caddy配置。

相应地更改配置文件后,保存文件并退出。

重新启动Caddy以使新配置文件设置生效。

代码语言:javascript复制
sudo systemctl restart caddy

您现在已经安装并配置了Caddy和所有必需的软件来托管WordPress网站。最后一步是使用其GUI(图形界面)完成WordPress的配置。

第五步 - 配置WordPress

WordPress有一个GUI(图形界面)安装向导来完成其设置,包括连接到数据库和设置您的第一个网站。

当您第一次在浏览器中访问新的WordPress实例时,您将看到一个语言列表。选择您要使用的语言。在下一个屏幕上,它描述了它所需的有关数据库的信息。点击Let's go!,,下一页将询问数据库连接详细信息。填写以下表格:

  • 数据库名称应该是wordpress,除非您在步骤三中对其进行了自定义。
  • 用户名应为wordpressuser,除非您在步骤三中对其进行了自定义。
  • 密码应该是您在步骤三中为wordpressuser设置的密码。
  • 数据库主机应该是您在腾讯云申请的数据库的地址
  • 表前缀保留其默认值。

单击“提交”时,WordPress将检查提供的详细信息是否正确。如果收到错误消息,请仔细检查您是否正确输入了数据库详细信息。

一旦WordPress成功连接到您的数据库,您将看到一条以All right, sparky! You've made it through this part of the installation. WordPress can now communicate with your database.(你完成了这部分安装。WordPress现在可以与您的数据库进行通信。开头的消息

现在,您可以单击“运行安装”以开始安装。接下来,WordPress将向您显示一个页面,询问您的网站详细信息,例如网站标题,管理员帐户用户名,密码和电子邮件地址。默认是自动生成随机密码,但如果您愿意,可以选择自己的密码。

注意:对于管理帐户,不推荐使用Admin等常用用户名,因为许多安全漏洞依赖于标准用户名和密码。为您的主帐户选择唯一的用户名和强密码,以确保您的网站安全。

单击安装WordPress后,您将被定向到WordPress仪表板。您现在已完成WordPress安装,您可以自由使用WordPress自定义您的网站并撰写帖子和页面。

结论

您已经学会使用Caddy Web服务器来安装WordPress。Caddy将自动使用HTTP /2和Gzip压缩更快地为网站提供服务。您可以在官方Caddy文档中阅读有关Caddy的Caddyfile的独特功能和配置指令的更多信息。

如果你想在新的WordPress实例中使用插件,请注意一些插件依赖于Apache Web服务器的.htaccess文件。依赖于.htaccess的插件中并不多。但是,确实存在的少数几个不能与Caddy一起使用的,因为它不使用.htaccess。大多数依赖.htaccess的插件都是缓存插件(例如,W3 Total Cache),它们使用.htaccess完全绕过PHP进行处理。遇到这类插件,请使用同类插件进行替换即可。想学习更多知识?请前往腾讯云 社区进行学习。


参考文献:《How to Install WordPress with Caddy on CentOS 7》

0 人点赞