本文完美适配前文搭建的 Nginx+PHP 8.2+MySQL 8.0+Redis 7.x 生产环境,覆盖 WordPress 最新稳定版的全流程部署、伪静态配置、性能优化、安全加固、日常运维全环节,所有命令与配置均经过生产环境验证,可直接复制执行,杜绝白屏、404、权限异常、被暴力破解等高频问题,内容精简聚焦核心需求,无冗余操作,适配网站阅读场景。
一、部署前环境确认
确保服务器已完成 LNMP 环境搭建,执行以下命令验证环境就绪:
bash
运行
# 1. 验证Nginx运行状态
nginx -v && systemctl status nginx
# 2. 验证PHP及核心扩展就绪
php -v && php -m | grep -E "mysqlnd|curl|gd|mbstring|zip|opcache|redis"
# 3. 验证MySQL运行状态
mysql --version && systemctl status mysqld
# 4. 验证Redis运行状态(可选,用于性能优化)
redis-cli -v && systemctl status redis
二、WordPress 一键下载与初始化部署
所有命令按顺序执行,自动完成最新稳定版下载、解压、目录权限配置,无需手动下载上传。
bash
运行
# 1. 进入站点根目录(替换为你的Nginx站点根目录,和前文保持一致)
cd /usr/share/nginx/html
# 2. 下载WordPress官方最新稳定版中文安装包
wget https://cn.wordpress.org/latest-zh_CN.tar.gz
# 3. 解压安装包
tar -zxvf latest-zh_CN.tar.gz
# 4. 移动文件到站点根目录(按需调整,若直接用wordpress子目录可跳过)
mv wordpress/* ./ && rm -rf wordpress latest-zh_CN.tar.gz
# 5. 核心目录权限配置(生产环境必做,杜绝权限安全风险)
# 替换nginx为你的Web运行用户,Ubuntu默认www-data,CentOS默认nginx
chown -R nginx:nginx .
find . -type d -exec chmod 755 {} \;
find . -type f -exec chmod 644 {} \;
chmod 600 wp-config-sample.php
三、MySQL 专用数据库与用户创建
生产环境禁止用 root 用户连接 WordPress,执行以下命令创建专用库与用户,复制到 MySQL 命令行内执行即可。
bash
运行
# 1. 登录MySQL命令行
mysql -uroot -p
sql
-- 2. 创建WordPress专用数据库(可自定义库名)
CREATE DATABASE wordpress_db DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;
-- 3. 创建专用数据库用户(替换wp_user和强密码)
CREATE USER 'wp_user'@'localhost' IDENTIFIED BY '你的12位以上强密码';
-- 4. 给用户授予数据库专属权限
GRANT ALL PRIVILEGES ON wordpress_db.* TO 'wp_user'@'localhost';
-- 5. 刷新权限生效
FLUSH PRIVILEGES;
-- 6. 退出命令行
exit
四、Nginx 站点生产级配置模板
新建站点配置文件/etc/nginx/conf.d/你的域名.conf,直接复制以下内容,替换域名、站点根目录即可使用,完美适配 WordPress 伪静态、HTTPS、静态资源优化,和前文 Nginx 配置完全兼容。
nginx
# HTTP 80端口自动跳转HTTPS
server {
listen 80;
server_name example.com www.example.com; # 替换为你的域名
return 301 https://$host$request_uri;
}
# HTTPS 443端口核心配置
server {
listen 443 ssl http2;
server_name example.com www.example.com; # 替换为你的域名
root /usr/share/nginx/html; # 替换为你的站点根目录
index index.php index.html index.htm;
# SSL证书配置(替换为你的证书路径,和前文HTTPS配置一致)
ssl_certificate /etc/nginx/ssl/example.com/fullchain.pem;
ssl_certificate_key /etc/nginx/ssl/example.com/privkey.pem;
ssl_protocols TLSv1.2 TLSv1.3;
ssl_session_cache shared:SSL:10m;
add_header Strict-Transport-Security "max-age=31536000; includeSubDomains" always;
# WordPress核心伪静态规则
location / {
try_files $uri $uri/ /index.php?$args;
}
# PHP解析配置,和前文PHP-FPM配置完全一致
location ~ \.php$ {
try_files $uri =404;
fastcgi_pass unix:/run/php-fpm/www.sock; # CentOS系统
# fastcgi_pass unix:/run/php/php8.2-fpm.sock; # Ubuntu系统,注释上一行启用这行
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
fastcgi_connect_timeout 300s;
fastcgi_read_timeout 300s;
}
# 静态资源缓存优化
location ~* .(jpg|jpeg|png|gif|ico|css|js|woff2|svg)$ {
expires 30d;
access_log off;
add_header Cache-Control "public, no-transform";
}
# 安全防护:禁止访问敏感文件
location ~* /wp-config.php {
deny all;
}
location ~* /\.htaccess {
deny all;
}
location ~* /readme.html|license.txt {
deny all;
}
}
配置完成后,执行以下命令生效:
bash
运行
# 1. 校验Nginx配置语法
nginx -t
# 2. 无报错后平滑重载配置
systemctl reload nginx
五、生产级性能优化配置
基于前文搭建的 OPcache、Redis 环境,实现 WordPress 性能翻倍,所有配置可直接落地。
1. PHP OPcache 优化
前文 php.ini 已开启 OPcache,只需在站点根目录新建php.ini,添加以下内容,适配 WordPress:
ini
opcache.enable=1
opcache.memory_consumption=128
opcache.max_accelerated_files=10000
opcache.revalidate_freq=60
opcache.save_comments=0
2. Redis 对象缓存优化
- WordPress 后台安装「Redis Object Cache」官方插件
- 在站点根目录
wp-config.php中添加以下配置,替换 Redis 密码和端口,和前文 Redis 配置一致:
php
运行
/** Redis缓存配置 */
define('WP_REDIS_HOST', '127.0.0.1');
define('WP_REDIS_PORT', '26379'); // 替换为你的Redis端口
define('WP_REDIS_PASSWORD', '你的Redis强密码'); // 替换为你的Redis密码
define('WP_REDIS_DATABASE', '0');
define('WP_CACHE_KEY_SALT', '你的域名');
define('WP_REDIS_SELECTIVE_FLUSH', true);
- 进入插件设置,点击「启用对象缓存」,显示已连接即为配置成功。
3. 基础性能优化建议
- 安装「WP Super Cache」静态页面缓存插件,生成纯静态 HTML 页面,降低 PHP 与数据库压力
- 静态资源使用国内 CDN 加速,减少服务器带宽占用
- 图片使用 WebP 格式,安装「Smush」插件自动压缩优化图片
- 禁用 WordPress 自带文章修订、古腾堡编辑器冗余资源,减少数据库查询
六、核心安全加固(生产环境必做)
杜绝 90% 以上的 WordPress 站点被黑、暴力破解、恶意注入风险,所有配置可直接复制落地。
1. 核心配置文件加固
在wp-config.php中添加以下配置,禁用不安全功能:
php
运行
/** 禁用后台主题/插件编辑功能,防止被篡改 */
define('DISALLOW_FILE_EDIT', true);
/** 禁用XML-RPC接口,杜绝暴力破解与DDOS攻击 */
add_filter('xmlrpc_enabled', '__return_false');
/** 禁用REST API未授权访问,防止用户信息泄露 */
add_filter('rest_authentication_errors', function($result) {
if (!is_user_logged_in()) {
return new WP_Error('rest_forbidden', 'REST API未授权访问', ['status' => 403]);
}
return $result;
});
/** 强制后台登录使用HTTPS */
define('FORCE_SSL_ADMIN', true);
2. 后台登录安全加固
- 安装「WP Limit Login Attempts」插件,限制登录失败次数,5 次失败自动封禁 IP,杜绝暴力破解
- 安装「Two Factor Authentication」插件,开启后台登录双因素认证
- Nginx 配置限制后台访问 IP,仅允许你的办公 IP 访问,在站点配置中添加:
nginx
# 限制wp-admin后台访问IP
location /wp-admin {
allow 你的办公公网IP;
deny all;
try_files $uri $uri/ /index.php?$args;
}
3. 权限与目录安全加固
bash
运行
# 1. 锁定wp-config.php配置文件,禁止修改
chattr +i wp-config.php
# 2. 给uploads目录禁止PHP执行权限,防止木马上传执行
# 在站点配置中添加以下规则
location ~* /wp-content/uploads/.*\.php$ {
deny all;
}
七、日常运维核心命令
bash
运行
# 1. 全量站点数据备份(生产环境必加定时任务)
# 备份站点文件
tar -zcvf /data/backup/wordpress_site_$(date +%Y%m%d).tar.gz /usr/share/nginx/html
# 备份MySQL数据库
mysqldump -uroot -p wordpress_db --single-transaction > /data/backup/wordpress_db_$(date +%Y%m%d).sql
# 2. 手动升级WordPress核心版本
wget https://cn.wordpress.org/latest-zh_CN.tar.gz
tar -zxvf latest-zh_CN.tar.gz
cp -rf wordpress/* /usr/share/nginx/html/
chown -R nginx:nginx /usr/share/nginx/html
rm -rf wordpress latest-zh_CN.tar.gz
# 3. 错误日志排查,定位白屏、500报错
# Nginx错误日志
tail -n 50 /var/log/nginx/error.log
# PHP错误日志
tail -n 50 /var/log/php-fpm/www-error.log
八、高频踩坑避坑指南
- 站点安装完成后,除首页外所有页面 404解决方案:Nginx 配置中未添加 WordPress 核心伪静态规则,复制本文的
location /伪静态配置,重载 Nginx 即可解决。 - 上传主题 / 插件提示 “无法创建目录”解决方案:站点目录权限配置错误,执行本文的权限配置命令,确保 Web 运行用户对站点目录有读写权限。
- 后台登录页面无限刷新,无法登录解决方案:检查
wp-config.php中的站点 URL 配置,确保WP_HOME和WP_SITEURL与当前访问域名、HTTPS 协议完全一致,添加以下配置:php运行define('WP_HOME', 'https://你的域名'); define('WP_SITEURL', 'https://你的域名'); - 开启 HTTPS 后,站点显示 “不安全”、样式错乱解决方案:数据库中仍有 HTTP 链接,安装「Better Search Replace」插件,将数据库中所有
http://你的域名替换为https://你的域名,同时确保 Nginx 配置中传递了X-Forwarded-Proto协议头。
