CentOS 8 环境下 Nginx 部署 WordPress 5.4 完整指南
下载 WordPress 安装包
首先创建下载目录并获取 WordPress 中文安装包
mkdir -p /opt/software
cd /opt/software
wget https://cn.wp101.net/latest-zh_CN.tar.gz
tar -xzvf latest-zh_CN.tar.gz
解压完成后会得到一个 wordpress 文件夹,这就是程序的核心目录。
整理项目目录结构
将解压后的 wordpress 目录重命名并移动到 Web 服务根目录。本例中将目录改名为 blog-platform 并存放至 /usr/local/www 路径下
cd /opt/software
mv wordpress blog-platform
mkdir -p /usr/local/www
mv blog-platform /usr/local/www/
接下来需要根据实际数据库配置信息,修改项目根目录下的 wp-config.php 文件,完成数据库连接参数的配置。
Nginx 配置详解
Nginx 对 WordPress 的 URL 重写支持需要特殊处理。默认的 location 配置会导致文章页面出现 404 错误。需要在 /etc/nginx/conf.d/ 目录下为该项目创建独立的配置文件
# WordPress站点配置
# 创建时间: 2020/04/29
server {
listen 80;
server_name 192.168.1.100 blog.mysite.com;
access_log /var/log/nginx/blog-access.log;
error_log /var/log/nginx/blog-error.log;
location / {
root /usr/local/www/blog-platform;
index index.php index.html;
# URL重写关键配置
try_files $uri $uri/ /index.php?$args;
}
# 管理后台重写规则
rewrite /wp-admin$ $scheme://$host$uri/ permanent;
# 错误页面配置
error_page 401 402 403 404 500 502 503 504 /error.html;
location = /error.html {
root /usr/local/www/blog-platform;
}
# PHP-FPM处理配置
location ~ \.php$ {
root /usr/local/www/blog-platform;
fastcgi_pass unix:/run/php-fpm/blog.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
}
编辑 /etc/nginx/nginx.conf 文件,在 http 区域中添加 include /etc/nginx/conf.d/*.conf; 指令以加载站点配置。
Nginx 与 PHP-FPM 之间通过 Unix Socket 通信,需要在 Nginx 配置目录中创建对应的上游服务定义
upstream php-fpm-blog {
server unix:/run/php-fpm/blog.sock;
}
PHP-FPM 进程管理器配置
CentOS 8 通过 yum 安装的 PHP-FPM 配置文件位于 /etc/php-fpm.conf 和 /etc/php-fpm.d/*.conf。主配置文件通过 include 指令加载子配置,建议在 /etc/php-fpm.d/ 目录下为每个站点创建独立的配置文件
; 进程池名称定义为 blog
[blog]
; 运行用户和用户组
user = nginx
group = nginx
; 监听地址配置
listen = /run/php-fpm/blog.sock
; Socket权限设置
listen.owner = nginx
listen.group = nginx
listen.mode = 0660
; 性能参数优化
pm = dynamic
pm.max_children = 50
pm.start_servers = 5
pm.min_spare_servers = 5
pm.max_spare_servers = 35
pm.max_requests = 500
注意 [blog] 标识符用于区分不同的 PHP-FPM 进程池,便于多站点管理。listen 参数必须与 Nginx 配置中的 fastcgi_pass 路径保持一致,否则两者无法正常通信。
文件权限配置
当前所有文件操作均使用 root 身份完成,Nginx 进程无法正常读写项目文件。需要将目录所有权变更给 nginx 用户
chown -R nginx:nginx /usr/local/www/blog-platform
-R 参数确保目录及其所有子文件和子目录的权限同时被修改。
启动服务
完成所有配置后,按顺序启动 PHP-FPM 和 Nginx 服务
systemctl start php-fpm
systemctl start nginx
使用浏览器访问服务器 IP 或域名,进入 /readme.html 验证安装,或直接访问 /wp-admin/install.php 开始 WordPress 安装向导。
配置要点总结
- Nginx 配置 WordPress 时,必须在 location 块中添加
try\_files指令实现伪静态 - Nginx 与 PHP-FPM 通过 Socket 或 TCP 通信时,双方配置必须保持一致
- 云服务器环境需检查安全组规则和系统防火墙,确保 80 端口正常开放
- 如使用云数据库,需要在数据库安全组中添加 Web 服务器的访问权限