在 CentOS / Ubuntu 上安装 WordPress 完整指南
一、前提条件
- 一台运行 CentOS 7/8 或 Ubuntu 18.04/20.04/22.04 的服务器
- 拥有 sudo/root 权限
- 已配置域名并指向服务器 IP(可选,但推荐)
- 开放必要端口:80 (HTTP)、443 (HTTPS)、22 (SSH)
二、整体架构
用户 → Nginx/Apache (Web服务器) → PHP-FPM → MySQL/MariaDB (数据库)
↓
WordPress 文件
三、详细安装步骤
第一步:更新系统
# CentOS
sudo yum update -y
# Ubuntu
sudo apt update && sudo apt upgrade -y
第二步:安装 Web 服务器
选项 A:Nginx(推荐,性能更好)
# CentOS
sudo yum install epel-release -y
sudo yum install nginx -y
sudo systemctl enable nginx
sudo systemctl start nginx
# Ubuntu
sudo apt install nginx -y
sudo systemctl enable nginx
sudo systemctl start nginx
选项 B:Apache
# CentOS
sudo yum install httpd -y
sudo systemctl enable httpd
sudo systemctl start httpd
# Ubuntu
sudo apt install apache2 -y
sudo systemctl enable apache2
sudo systemctl start apache2
第三步:安装 MariaDB/MySQL 数据库
# CentOS
sudo yum install mariadb-server mariadb -y
sudo systemctl enable mariadb
sudo systemctl start mariadb
# Ubuntu
sudo apt install mariadb-server mariadb-client -y
sudo systemctl enable mysql
sudo systemctl start mysql
安全加固数据库
sudo mysql_secure_installation
按提示操作:
- 设置 root 密码
- 移除匿名用户 ✅
- 禁止远程 root 登录 ✅
- 移除测试数据库 ✅
- 刷新权限 ✅
创建 WordPress 数据库和用户
sudo mysql -u root -p
CREATE DATABASE wordpress DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
CREATE USER 'wp_user'@'localhost' IDENTIFIED BY 'StrongPassword123!';
GRANT ALL PRIVILEGES ON wordpress.* TO 'wp_user'@'localhost';
FLUSH PRIVILEGES;
EXIT;
⚠️ 注意:使用
utf8mb4而非utf8,以支持完整的 Unicode(包括 emoji)。
第四步:安装 PHP 及相关扩展
# CentOS 8+
sudo yum install php php-fpm php-mysqlnd php-gd php-mbstring php-xml php-curl php-zip php-intl php-json php-opcache -y
# Ubuntu
sudo apt install php php-fpm php-mysql php-gd php-mbstring php-xml php-curl php-zip php-intl php-json php-opcache -y
验证 PHP 版本
php -v
WordPress 要求 PHP ≥ 7.2,推荐 PHP 8.0+。
修改 PHP 配置(关键优化)
编辑 php.ini:
# CentOS: /etc/php.ini 或 /etc/php/8.x/fpm/php.ini
# Ubuntu: /etc/php/8.x/fpm/php.ini
sudo vi /etc/php/8.1/fpm/php.ini
memory_limit = 256M
upload_max_filesize = 64M
post_max_size = 64M
max_execution_time = 300
date.timezone = Asia/Shanghai # 根据时区调整
expose_php = Off # 隐藏PHP版本信息
重启 PHP-FPM:
sudo systemctl restart php-fpm # CentOS
sudo systemctl restart php8.1-fpm # Ubuntu(版本号可能不同)
第五步:下载并配置 WordPress
cd /var/www/html
# 下载最新 WordPress
sudo wget https://wordpress.org/latest.tar.gz
sudo tar -xzf latest.tar.gz
# 设置正确权限
sudo chown -R www-data:www-data /var/www/html/wordpress # Ubuntu Apache/Nginx
sudo chown -R nginx:nginx /var/www/html/wordpress # CentOS Nginx
sudo chmod -R 755 /var/www/html/wordpress
第六步:配置 Web 服务器
Nginx 配置(推荐)
sudo vi /etc/nginx/conf.d/wordpress.conf
server {
listen 80;
server_name yourdomain.com; # 替换为你的域名
root /var/www/html/wordpress;
index index.php index.html;
# 静态文件缓存
location ~* .(jpg|jpeg|png|gif|ico|css|js)$ {
expires 30d;
add_header Cache-Control "public, immutable";
}
# WordPress 伪静态规则
location / {
try_files $uri $uri/ /index.php?$args;
}
# PHP 处理
location ~ .php$ {
include fastcgi_params;
fastcgi_pass unix:/run/php/php8.1-fpm.sock; # 根据实际路径调整
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_intercept_errors on;
}
# 禁止访问敏感文件
location ~ /.ht {
deny all;
}
location ~* /(wp-config.php|readme.html|license.txt|wp-content/debug.log) {
deny all;
}
}
# 测试配置并重载
sudo nginx -t
sudo systemctl reload nginx
Apache 配置(如使用 Apache)
WordPress 自带 .htaccess,确保启用 mod_rewrite:
# Ubuntu
sudo a2enmod rewrite
sudo systemctl restart apache2
# CentOS
# 已在 httpd.conf 中默认启用
sudo systemctl restart httpd
第七步:通过浏览器完成安装
- 访问
http://yourdomain.com - 选择语言 → 点击「开始」
- 填写:
- 站点标题
- 管理员用户名(不要用 admin,建议自定义)
- 管理员密码(强密码)
- 邮箱
- 点击「安装 WordPress」
- 登录后进入后台
四、重要注意事项
🔒 安全性
| 项目 | 建议 |
|---|---|
| 禁用 XML-RPC | 防止暴力破解和 DDoS |
| 限制登录尝试 | 使用插件如 Limit Login Attempts Reloaded |
| 定期备份 | 使用 UpdraftPlus 或手动 rsync |
| 防火墙 | 仅开放 80/443/22,关闭其他端口 |
| 隐藏 WP 版本 | 移除 <meta name="generator"> |
| 使用非标准 wp-login.php | 插件如 WPS Hide Login |
| Two-Factor Authentication | 启用双因素认证 |
# 在 wp-config.php 中添加额外安全常量
define('DISALLOW_FILE_EDIT', true); // 禁用主题/插件编辑器
define('WP_DEBUG', false); // 生产环境关闭调试
🌐 HTTPS 配置(强烈推荐)
# 使用 Let's Encrypt 免费 SSL
sudo apt install certbot python3-certbot-nginx # Ubuntu
sudo yum install certbot python3-certbot-nginx # CentOS
sudo certbot --nginx -d yourdomain.com
自动续期:
sudo crontab -e
# 添加:0 3 * * * certbot renew --quiet
⚡ 性能优化
# 安装 OPcache(通常已包含)
# 安装 Redis 对象缓存
sudo apt install redis-server # Ubuntu
sudo yum install redis # CentOS
sudo systemctl enable redis
sudo systemctl start redis
# 安装 WordPress Redis 插件
# 在 wp-config.php 中添加:
define('WP_CACHE_KEY_SALT', 'your_unique_prefix_');
📦 目录权限最佳实践
# WordPress 核心文件:只读
find /var/www/html/wordpress -type d -exec chmod 755 {} ;
find /var/www/html/wordpress -type f -exec chmod 644 {} ;
# 上传目录可写
chmod 775 /var/www/html/wordpress/wp-content/uploads
chown -R www-data:www-data /var/www/html/wordpress/wp-content/uploads # Ubuntu
chown -R nginx:nginx /var/www/html/wordpress/wp-content/uploads # CentOS
🔄 自动更新
# 在 wp-config.php 中启用自动核心小版本更新
define('WP_AUTO_UPDATE_CORE', 'minor');
# 或完全禁用自动更新(不推荐)
define('WP_AUTO_UPDATE_CORE', false);
五、故障排查常见命令
# 检查服务状态
systemctl status nginx
systemctl status php-fpm
systemctl status mariadb
# 查看错误日志
tail -f /var/log/nginx/error.log
tail -f /var/log/php-fpm/error.log
tail -f /var/log/mysql/error.log
# 测试 PHP 是否正常工作
cat > /var/www/html/info.php << 'EOF'
<?php phpinfo(); ?>
EOF
# 访问 http://yourdomain.com/info.php 验证后删除
rm /var/www/html/info.php
# 检查磁盘空间
df -h
# 检查内存使用
free -h
六、一键脚本参考(自动化方案)
如果希望简化流程,可以使用:
- WordOps — Ubuntu/CentOS 上的 WordPress 专用部署工具
- Laravel Valet — 开发环境
- Docker Compose — 容器化部署(更现代的方式)
Docker 示例
# docker-compose.yml
version: '3.8'
services:
db:
image: mysql:8.0
environment:
MYSQL_DATABASE: wordpress
MYSQL_USER: wp_user
MYSQL_PASSWORD: StrongPassword123!
MYSQL_ROOT_PASSWORD: RootStrongPass123!
volumes:
- db_data:/var/lib/mysql
wordpress:
image: wordpress:latest
ports:
- "8080:80"
environment:
WORDPRESS_DB_HOST: db
WORDPRESS_DB_USER: wp_user
WORDPRESS_DB_PASSWORD: StrongPassword123!
WORDPRESS_DB_NAME: wordpress
volumes:
- wp_data:/var/www/html
depends_on:
- db
volumes:
db_data:
wp_data:
docker-compose up -d
七、总结清单
✅ 系统更新
✅ 安装 Web 服务器 (Nginx/Apache)
✅ 安装 MariaDB/MySQL + 安全加固
✅ 创建数据库和用户
✅ 安装 PHP + 必要扩展 + 优化配置
✅ 下载 WordPress 文件
✅ 配置 Web 服务器虚拟主机
✅ 设置正确文件权限
✅ 配置 HTTPS (Let's Encrypt)
✅ 通过浏览器完成安装
✅ 安装安全插件 + 备份方案
✅ 性能优化 (OPcache, Redis, CDN)
✅ 设置自动更新策略
按照以上步骤,你可以在 20-30 分钟 内在 CentOS 或 Ubuntu 上成功部署一个安全、高效的 WordPress 站点。
云服务器