在 CentOS 7 上使用 PHP73/Caddy 安装 WordPress
虽然 PHP 已经更新到 7,但是网上相关资源还是不多,大部分停留在 PHP5.6 之前。自己折腾了使用 PHP73 来安装 wordpress,并且使用 Caddy 作为中间件。以下是记录。
添加 PHP73 使用的源
使用 remi 的源来安装,首先更新:
1
sudo yum update
然后添加源:
1
2
sudo yum install epel-release
sudo rpm -ivh http://rpms.famillecollet.com/enterprise/remi-release-7.rpm
然后安装 PHP 和 WordPress 所依赖的PHP扩展:
1
sudo yum --enablerepo=remi install php73-php php73-php-pear php73-php-bcmath php73-php-pecl-jsond-devel php73-php-mysqlnd php73-php-gd php73-php-common php73-php-fpm php73-php-intl php73-php-cli php73-php php73-php-xml php73-php-opcache php73-php-pecl-apcu php73-php-pdo php73-php-gmp php73-php-process php73-php-pecl-imagick php73-php-devel php73-php-mbstring php73-php-zip php73-php-ldap php73-php-imap php73-php-pecl-mcrypt php73-php-mysql
下面是一些推荐配置:
1
2
3
4
5
6
7
8
9
10
11
12
# The current PHP memory limit is below the recommended value of 512MB.
sudo vi /etc/opt/remi/php73/php.ini
memory_limit = 512M
# 查看 caddy 是以哪个用户来运行的,这里以 caddy 为例:
sudo vi /etc/opt/remi/php73/php-fpm.d/www.conf
user = apache
group = apache
# 改为运行 caddy 服务的用户:caddy
user = caddy
group = caddy
运行并查看版本, 重启命令, 添加自动启动,链接php文件
1
2
3
4
php73 -v
sudo systemctl restart php73-php-fpm
sudo systemctl enable php73-php-fpm
sudo ln -s /opt/remi/php73/root/usr/bin/php /usr/bin/php
安装 Caddy
Caddy 项目提供了一个安装脚本,用于安装 Caddy 服务器文件。要执行请输入:
curl -s https://getcaddy.com | bash
您可以通过访问 https://getcaddy.com 使用 wget 或 curl 下载文件来查看脚本。
在安装过程中,脚本将用于 sudo 获取管理权限,以便将 Caddy 文件放在系统范围的目录中,因此它可能会提示您输入密码。
命令输出如下所示:
1
2
3
4
5
6
7
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 二进制文件是否已到位。
1
which caddy
命令输出将说明可以找到 Caddy 二进制文件
1
/usr/local/bin/caddy
创建 MySQL 数据库和专用用户
WordPress 使用 MySQL 数据库来存储其所有信息。在默认的 MySQL 安装中,仅创建 root 管理帐户。不应使用此帐户,因为它对数据库服务器存在安全风险。在这里,我们为 WordPress 创建一个专用的 MySQL用户,以允许新用户访问的数据库。
首先,登录 MySQL root 管理帐户。
1
mysql -u root -p
在安装过程中,系统将提示输入 MySQL root 帐户的密码。创建一个名为 wordpress 的新数据库,将用于 WordPress 网站。使用其他名称请确保在以后进行其他配置时记住该名称。
1
CREATE DATABASE wordpress DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
接下来,创建一个允许访问此数据库的新用户。在这里,我们使用用户名 wordpressuser
来简化,你可以选择自己的名称。请用安全的密码替换 password
。
1
GRANT ALL ON wordpress.* TO 'wordpressuser'@'localhost' IDENTIFIED BY 'password';
注意:默认密码策略需要12个字符,至少包含一个大写字母,一个小写字母,一个数字和一个特殊字符。如果忘记遵循该策略,则上述命令不会创建用户,而是显示错误消息。
刷新权限以通知 MySQL 服务器更改。
1
FLUSH PRIVILEGES;
现在可以退出 MySQL。
1
EXIT;
WordPress 有一个专用的数据库和用户帐户,因此所有系统组件都已设置完毕。下一步是安装 WordPress 本身。
下载 WordPress
将最新的 WordPress 下载到 Web 根目录并确保 Web 服务器可以访问它,然后通过 WordPress 的浏览器的 GUI(图形界面)完成安装。在这一步中,我们只下载该版本,因为我们需要在访问 GUI(图形界面)之前配置Web服务器。
首先,将当前目录更改为/var/www
,即存储网站文件的Web根目录。
1
cd /var/www
下载最新的 WordPress 版本。建议您使用最新版,因为软件经常使用安全补丁进行更新。
1
sudo curl -O https://wordpress.org/latest.tar.gz
提取解压刚下载的压缩存档。
1
sudo tar zxf latest.tar.gz
这将自动创建一个名为 wordpress 的新目录。删掉旧的压缩包 sudo rm latest.tar.gz
更改 WordPress 文件和目录的权限,以便所有文件都可由 Caddy 写入。允许 WordPress 自动更新到更新的版本。
1
sudo chown -R caddy:caddy wordpress
注意:禁止对 WordPress 文件进行写访问可以提高安全性,通过使它无法利用可能导致 WordPress 核心文件泄露的一些错误,但同时,它会导致禁用自动安全更新以及通过 WordPress Web 界面安装和更新插件的功能。
接下来,需要修改Web服务器的配置以访问网站。
配置 Caddy 为 WordPress 网站提供服务
修改 Caddyfile 配置文件,告诉 Caddy 我们的 WordPress 安装位于何处以及应该用哪个域名来执行。
1
sudo vi /etc/caddy/Caddyfile
将以下配置修改为实际配置并复制粘贴到文件中。
1
2
3
4
5
6
7
8
9
10
example.com {
tls example@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}
}
}
重新启动 Caddy 以使新配置文件设置生效。
1
sudo systemctl restart caddy
现在已经安装并配置了 Caddy 和所有必需的软件来托管 WordPress 网站。最后一步是使用其 GUI(图形界面)完成 WordPress 的配置。
配置 WordPress
WordPress 有一个 GUI(图形界面)安装向导来完成其设置,包括连接到数据库和设置网站。
当第一次在浏览器中访问新的 WordPress 实例时,将看到一个语言列表。选择你要使用的语言。在下一个屏幕上,它描述了它所需的有关数据库的信息。点击 Let's go!
,下一页将询问数据库连接详细信息。填写以下表格:
数据库名称应该是wordpress
,或者你之前自定义的名称。
用户名应为wordpressuser
,或者你之前自定义的用户名。
密码应该是在之前为wordpressuser
设置的密码。
数据库主机应该是实际数据库的地址(和 WordPress 同一台主机安装请填写 localhost
)
表前缀保留其默认值。
单击“提交”时,WordPress 将检查提供的详细信息是否正确。如果收到错误消息,请仔细检查您是否正确输入了数据库详细信息。
一旦 WordPress 成功连接到数据库,你将看到一条以 All right, sparky! You've made it through this part of the installation. WordPress can now communicate with your database.
(你完成了这部分安装。WordPress现在可以与您的数据库进行通信。)开头的消息
单击“运行安装”以开始安装。
注意:对于管理帐户,不推荐使用 Admin 等常用用户名,因为许多安全漏洞依赖于标准用户名和密码。选择唯一的用户名和强密码,以确保网站安全。
单击安装 WordPress 完成后,将被定向到 WordPress 仪表板。
网站文件夹及文件权限设置
假设 Caddy 服务器运行的用户和用户组是 caddy
,服务器用户为 centos
,网站根目录是 /var/www/wordpress
:
首先设定网站目录和文件的所有者和所有组为 centos,caddy
,如下命令:
1
chown -R centos:caddy /var/www/wordpress
设置网站目录权限为750,750是 centos 用户对目录拥有读写执行的权限,这样 centos 用户可以在任何目录下创建文件,用户组有有读执行权限,这样才能进入目录,其它用户没有任何权限:
1
2
cd /var/www/wordpress
find -type d -exec chmod 750 {} \;
设置网站文件权限为640,640指只有 centos 用户对网站文件有更改的权限,Caddy 服务只有读取文件的权限,无法更改文件,其它用户无任何权限:
1
2
cd /var/www/wordpress
find -not -type d -exec chmod 640 {} \;
针对个别目录设置可写权限。比如网站的一些缓存目录就需要给 Caddy 服务有写入权限。比如 wordpress 的 wp-content/uploads/
目录就必须要有写入权限才能上传图片:
1
2
cd /var/www/wordpress
find uploads -type d -exec chmod 770 {} \;
参考
https://park.mobayke.com/tools/bbpress.html
https://cloud.tencent.com/developer/article/1169259
https://www.itgeeker.net/php7-3-yum-install-on-centos-7/
https://www.cnblogs.com/sochishun/p/7413572.html