在 Linux 服务器上部署 WordPress,核心逻辑其实就三步:搭环境(LAMP/LNMP)、装软件、配数据库。
虽然 CentOS 和 Ubuntu 都是主流系统,但它们的包管理器不同(yum/dnf vs apt),且目前 CentOS 8/7 已逐渐走向生命周期末端,Ubuntu 20.04/22.04 LTS 则是更稳健的选择。下面我以当前最稳定、最通用的 LNMP (Linux + Nginx + MySQL/MariaDB + PHP) 架构为例,分别梳理两者的实操步骤和避坑指南。
一、 前置准备:服务器与安全组
不管选哪个系统,第一步永远是确保网络通畅。
- 防火墙策略:阿里云/腾讯云等云厂商的控制台里,务必在“安全组”或“防火墙规则”中放行 80 (HTTP) 和 443 (HTTPS) 端口。很多新手只开了 SSH 的 22 端口,导致访问网站超时,排查半天才发现是云厂商的安全组没开 Web 端口。
- SSH 连接:使用终端或 Xshell/Putty 登录服务器。
二、 CentOS 系列安装步骤
CentOS 7/8 或 AlmaLinux/Rocky Linux 等衍生版,命令逻辑类似。建议直接使用 dnf 或 yum。
1. 更新系统并安装基础工具
# CentOS 7
sudo yum update -y
sudo yum install epel-release -y
# CentOS 8+ (推荐)
sudo dnf update -y
sudo dnf install epel-release -y
2. 安装 Nginx
sudo yum install nginx -y
sudo systemctl start nginx
sudo systemctl enable nginx
验证:浏览器输入 http://你的IP,看到 “Welcome to nginx!” 即成功。
3. 安装 MariaDB (MySQL 替代品,兼容性好)
sudo yum install mariadb-server mariadb -y
sudo systemctl start mariadb
sudo systemctl enable mariadb
# 初始化数据库安全设置
sudo mysql_secure_installation
注意:运行上述脚本时,会提示设置 root 密码、移除匿名用户等,一路 Y 即可。
4. 安装 PHP 及必要扩展
WordPress 强依赖 PHP 的某些模块。
# 安装 PHP 7.4 或 8.x (根据需求,目前 8.1+ 性能更好)
sudo yum install php php-fpm php-mysqlnd php-json php-gd php-curl php-mbstring php-xml php-zip -y
sudo systemctl start php-fpm
sudo systemctl enable php-fpm
关键点:php-mbstring 处理多语言,php-gd 处理图片缩略图,php-zip 支持插件上传 zip 包。少一个都可能报错。
5. 配置 Nginx 与 PHP-FPM 通信
这是最容易出错的地方。编辑 /etc/nginx/conf.d/default.conf 或 /etc/nginx/nginx.conf,确保 location 块中有如下配置:
location ~ .php$ {
try_files $uri =404;
fastcgi_pass unix:/run/php-fpm/www.sock; # 注意 sock 路径,CentOS 通常是 /run/php-fpm/www.sock
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
修改后重启 Nginx:sudo systemctl restart nginx。
三、 Ubuntu 系列安装步骤
Ubuntu 使用 apt,流程更顺滑一些,社区文档也更多。
1. 更新源
sudo apt update
sudo apt upgrade -y
2. 安装 Nginx, MySQL, PHP
Ubuntu 允许一条命令安装所有组件,非常高效:
sudo apt install nginx mysql-server php-fpm php-mysql php-common php-gd php-json php-curl php-mbstring php-xml php-zip -y
注意:这里会自动拉起 Nginx 和 MySQL 服务。
3. 配置 Nginx
Ubuntu 的默认站点配置文件通常在 /etc/nginx/sites-available/default。同样需要修改 location ~ .php$ 部分。
Ubuntu 的 PHP-FPM socket 路径通常是 /var/run/php/php8.x-fpm.sock(版本号随安装的 PHP 版本变化)。
location ~ .php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/var/run/php/php8.1-fpm.sock; # 请根据实际安装的 PHP 版本调整
}
测试配置并重载:
sudo nginx -t
sudo systemctl reload nginx
四、 WordPress 本体安装与数据库配置
无论哪种系统,接下来的步骤一致:
1. 下载 WordPress
cd /var/www/html
sudo wget https://wordpress.org/latest.tar.gz
sudo tar -xzvf latest.tar.gz
sudo mv wordpress/* .
sudo rm -rf wordpress latest.tar.gz
2. 权限修正(极其重要!)
# 将所有权交给 www-data (Ubuntu) 或 nginx/apache (CentOS)
# Ubuntu:
sudo chown -R www-data:www-data /var/www/html
# CentOS:
sudo chown -R nginx:nginx /var/www/html
注意:不要随意给 777 权限,这是巨大的安全隐患。
3. 创建数据库和用户
登录 MySQL/MariaDB:
mysql -u root -p
执行 SQL 语句(替换为你的密码和库名):
CREATE DATABASE wordpress DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
CREATE USER 'wp_user'@'localhost' IDENTIFIED BY 'your_strong_password';
GRANT ALL ON wordpress.* TO 'wp_user'@'localhost';
FLUSH PRIVILEGES;
EXIT;
注意:字符集必须用 utf8mb4,否则 Emoji 表情存不进去。
4. 生成密钥并配置 wp-config.php
复制示例文件:
cp wp-config-sample.php wp-config.php
打开 wp-config.php,填入刚才创建的数据库信息,并在 AUTH_KEY 等位置填入从 https://api.wordpress.org/secret-key/1.1/salt/ 获取的唯一密钥串。
五、 关键注意事项与避坑指南
作为过来人,以下几点比安装本身更重要:
-
PHP 内存限制:
WordPress 默认 PHP 内存可能只有 128M,对于大型主题或插件不够用。- 操作:找到
php.ini(CentOS 通常在/etc/opt/remi/php81/php.ini或/etc/php/8.1/fpm/php.ini;Ubuntu 在/etc/php/8.1/fpm/php.ini),修改memory_limit = 256M或更高。
- 操作:找到
-
文件上传大小限制:
默认可能只能传 2MB 的图片或附件。- 操作:在同一个
php.ini中修改:upload_max_filesize = 64M post_max_size = 64M max_execution_time = 300 - 修改后记得重启 PHP-FPM:
sudo systemctl restart php-fpm。
- 操作:在同一个
-
SSL 证书配置:
现在没有 HTTPS 的网站几乎无法生存。推荐使用 Certbot 自动申请 Let’s Encrypt 免费证书。- Ubuntu:
sudo apt install certbot python3-certbot-nginx - CentOS:
sudo yum install certbot python3-certbot-nginx - 执行
sudo certbot --nginx按提示操作即可,它会自动帮你改好 Nginx 配置并设置自动续期。
- Ubuntu:
-
SELinux 问题 (CentOS 特有):
如果你用的是 CentOS 且开启了 SELinux,可能会遇到“无法写入 wp-content”或“数据库连接错误”。- 临时解决:
setenforce 0(不推荐生产环境长期使用)。 - 正确做法:学习
semanage fcontext和restorecon命令,或者在 Nginx 配置中调整上下文。如果不懂 SELinux,建议直接关闭它 (sed -i 's/^SELINUX=enforcing$/SELINUX=disabled/' /etc/selinux/config && setenforce 0),除非你有极高的安全合规要求。
- 临时解决:
-
备份策略:
安装完只是开始。务必配置定时备份。- 数据库:
mysqldump导出到 OSS/S3 或本地磁盘。 - 文件:
rsync或tar打包/var/www/html。 - 可以使用
crontab设置每天凌晨备份一次。
- 数据库:
-
禁用 XML-RPC:
为了防暴力破解,建议在functions.php或 Nginx 层面禁用 XML-RPC,除非你明确需要远程发布功能。
总结
- 新手推荐:Ubuntu 22.04 LTS + LNMP。因为
apt包依赖管理更友好,社区教程多为 Ubuntu 环境,遇到问题更容易搜到解决方案。 - 企业级/运维偏好:CentOS Stream 或 Rocky Linux。稳定性极高,但需要更注意 SELinux 和 EPEL 源的配置。
- 终极偷懒方案:如果不想折腾命令行,可以考虑使用宝塔面板(BT Panel)或 CloudPanel。它们提供了可视化的 LEMP/LAMP 环境搭建界面,适合非深度 Linux 用户,但需注意其安全性配置和后台服务的资源占用。
按照上述步骤,你应该能在 20-30 分钟内搞定一个标准的 WordPress 生产环境。
云技术博客