在 CentOS 系统下搭建 WordPress,通常有两种主流方案:LNMP(Nginx + MySQL/MariaDB + PHP)和 LAMP(Apache + MySQL/MariaDB + PHP)。LNMP 在高并发场景下性能更优,而 LAMP 配置相对简单、生态兼容性好。下面分别介绍两种方案的快速搭建步骤(以 CentOS 7/8 为例,假设已安装基础环境并拥有 root 权限)。
一、前置准备(通用)
-
更新系统并安装必要工具
sudo yum update -y sudo yum install -y wget curl git vim net-tools -
创建数据库用户与网站目录
# 创建 WordPress 站点目录 sudo mkdir -p /var/www/html/wordpress sudo chown -R apache:apache /var/www/html/wordpress # LAMP 用 apache;LNMP 可改为 nginx:nginx 或 www-data # 下载 WordPress 最新版(可选:手动解压或后续通过脚本) cd /tmp wget https://wordpress.org/latest.tar.gz tar -xzf latest.tar.gz sudo cp -r wordpress/* /var/www/html/wordpress/ sudo rm -rf wordpress latest.tar.gz -
设置 Web 根目录权限(根据实际用户调整)
sudo chmod -R 755 /var/www/html/wordpress sudo chown -R your_user:your_group /var/www/html/wordpress # 建议由非 root 用户运行 PHP-FPM/Apache
二、方案 A:LNMP 搭建(推荐用于高性能需求)
1. 安装 Nginx
sudo yum install -y epel-release
sudo yum install -y nginx
sudo systemctl enable --now nginx
2. 安装 MariaDB(替代 MySQL)
sudo yum install -y mariadb-server mariadb
sudo systemctl enable --now mariadb
sudo mysql_secure_installation # 按提示设置 root 密码等
进入 MySQL 创建数据库和用户:
CREATE DATABASE wordpress DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
CREATE USER 'wpuser'@'localhost' IDENTIFIED BY 'StrongPassword123!';
GRANT ALL PRIVILEGES ON wordpress.* TO 'wpuser'@'localhost';
FLUSH PRIVILEGES;
EXIT;
3. 安装 PHP + 扩展(PHP 7.4+ 或 8.x)
CentOS 8 可用 dnf,CentOS 7 需启用 Remi 源:
CentOS 7(推荐 Remi 源)
sudo yum install -y yum-utils
sudo yum-config-manager --enable remi-php80 # 或 remi-php74
sudo yum install -y php-fpm php-mysqlnd php-gd php-json php-curl php-mbstring
php-xml php-intl php-zip php-fileinfo
CentOS 8
sudo dnf install -y epel-release
sudo dnf install -y dnf-plugin-reynolds # 或使用 copr 添加 PHP 源
# 更稳妥方式:使用 Software Collections (SCL) 或 EPEL + Remi
# 示例(Remi for PHP 8.0):
sudo yum install -y https://rpms.remirepo.net/enterprise/remi-release-8.rpm
sudo yum module reset -y php
sudo yum module enable -y php:remi-8.0
sudo yum install -y php-fpm php-mysqlnd php-gd php-json php-curl php-mbstring
php-xml php-intl php-zip php-fileinfo
启动 PHP-FPM:
sudo systemctl enable --now php-fpm
4. 配置 Nginx 虚拟主机
创建配置文件 /etc/nginx/conf.d/wordpress.conf:
server {
listen 80;
server_name example.com www.example.com; # 替换为你的域名
root /var/www/html/wordpress;
index index.php index.html index.htm;
location / {
try_files $uri $uri/ /index.php?$args;
}
location ~ .php$ {
fastcgi_pass unix:/run/php-fpm/php-fpm.sock; # 或 127.0.0.1:9000
fastcgi_index index.php;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_buffer_size 128k;
fastcgi_buffers 4 256k;
fastcgi_busy_buffers_size 256k;
}
# 安全:禁止访问 wp-config.php 等敏感文件
location ~* ^/(wp-config.php|readme.html|license.txt|xmlrpc.php)$ {
deny all;
}
}
测试配置并重启 Nginx:
sudo nginx -t
sudo systemctl reload nginx
5. 完成 WordPress 安装
访问 http://your-domain,按向导填写数据库信息:
- Database Name:
wordpress - Username:
wpuser - Password:
StrongPassword123! - Host:
localhost - Table Prefix:
wp_(可自定义)
✅ 注意:若遇“无法连接数据库”,检查:
- MySQL 是否监听本地 socket(
ls -l /var/lib/mysql/mysql.sock)- PHP-FPM 是否正确绑定 socket(
cat /etc/php-fpm.d/www.conf | grep listen)- SELinux 是否阻止(临时关闭测试:
setenforce 0)
三、方案 B:LAMP 搭建(适合新手或传统应用)
1. 安装 Apache & MariaDB & PHP
sudo yum install -y httpd mariadb-server php php-mysqlnd php-gd php-json
php-curl php-mbstring php-xml php-intl php-zip php-fileinfo
启动服务:
sudo systemctl enable --now httpd mariadb
sudo mysql_secure_installation
创建数据库(同上):
CREATE DATABASE wordpress ...;
CREATE USER 'wpuser'@'localhost' ...;
GRANT ALL ...;
FLUSH PRIVILEGES;
2. 配置 Apache
编辑 /etc/httpd/conf.d/wordpress.conf:
<VirtualHost *:80>
ServerName example.com
DocumentRoot /var/www/html/wordpress
<Directory /var/www/html/wordpress>
AllowOverride All
Require all granted
</Directory>
# 安全限制
<FilesMatch "^.">
Deny from all
</FilesMatch>
</VirtualHost>
重启 Apache:
sudo systemctl restart httpd
💡 若未看到
.htaccess支持,确保mod_rewrite已启用(默认开启)。
3. 访问安装页面
浏览器打开 http://your-domain,完成 WordPress 初始化。
四、后续优化建议
| 项目 | 建议 |
|---|---|
| SSL 加密 | 使用 Let’s Encrypt 免费证书:sudo yum install certbot python3-certbot-apache(LAMP)或 certbot --nginx(LNMP) |
| 缓存提速 | 安装 Redis + WP Super Cache / W3 Total Cache |
| 备份策略 | 定期备份数据库(mysqldump)+ 文件目录(rsync/tar) |
| 安全加固 | 修改默认登录页、禁用 XML-RPC、安装 Wordfence 插件 |
| 性能调优 | 调整 php.ini(如 max_execution_time, memory_limit)、开启 OPcache |
五、常见问题排查
-
❌ “Permission denied”写入失败?
→ 检查wp-content/uploads目录权限:
sudo chown -R apache:apache /var/www/html/wordpress/wp-content/uploads(LAMP)
或chown -R nginx:nginx(LNMP,需确认 PHP-FPM 运行用户) -
❌ 404 错误跳转首页?
→ 检查 Nginx 的try_files或 Apache 的AllowOverride All是否生效 -
❌ PHP 版本不兼容?
→ WordPress 5.9+ 要求 PHP ≥ 7.4,6.0+ 推荐 PHP 8.0+
需要我提供:
- 一键自动化部署脚本(Ansible/Bash)?
- Docker 化部署方案?
- 针对特定 WordPress 主题/插件的兼容性建议?
欢迎告诉我你的具体场景,我可以进一步定制方案! 🚀
PHPWP博客