在CentOS或Ubuntu上安装WordPress的步骤和注意事项有哪些?

在 CentOS(推荐 8/9)或 Ubuntu(推荐 22.04/24.04)上安装 WordPress,需搭建 LAMP(Linux + Apache + MySQL/MariaDB + PHP)或 LEMP(Linux + Nginx + MySQL/MariaDB + PHP)环境。以下是安全、生产就绪的标准化安装步骤与关键注意事项,兼顾两者差异,并强调最佳实践。


✅ 一、通用前提准备(CentOS & Ubuntu 均适用)

项目 要求
系统更新 sudo apt update && sudo apt upgrade -y(Ubuntu)
sudo dnf update -y(CentOS 8+)或 sudo yum update -y(CentOS 7)
防火墙配置 开放端口:80(HTTP)、443(HTTPS)、22(SSH)
Ubuntu: sudo ufw allow 'Apache Full'sudo ufw allow OpenSSH
CentOS: sudo firewall-cmd --permanent --add-service=http & --add-service=https--reload
域名与 SSL(强烈推荐) 使用真实域名(如 example.com),通过 Let’s Encrypt(Certbot)免费获取 HTTPS 证书(禁用 HTTP 明文部署!

✅ 二、选择 Web 服务器(LAMP vs LEMP)

⚠️ 推荐 LEMP(Nginx):更轻量、高并发性能更好;但 Apache 对 .htaccess 兼容性更好(部分插件依赖)。根据团队熟悉度选择。


🔹 方案 A:LEMP(Nginx + MariaDB + PHP)— 推荐(Ubuntu/Debian & CentOS 8+/Rocky/AlmaLinux)

1️⃣ 安装基础组件
# Ubuntu 22.04/24.04
sudo apt install nginx mariadb-server php-fpm php-mysql php-curl php-gd php-mbstring php-xml php-xmlrpc php-soap php-intl php-zip unzip wget -y

# CentOS 9 / Rocky Linux 9 / AlmaLinux 9
sudo dnf install nginx mariadb-server php-fpm php-mysqlnd php-curl php-gd php-mbstring php-xml php-xmlrpc php-soap php-intl php-zip unzip wget -y

💡 注意:

  • CentOS 7 使用 php-mysql(非 php-mysqlnd);
  • 确保 php-fpm 已启动:sudo systemctl enable --now php-fpm
2️⃣ 配置 MariaDB(安全加固)
sudo mysql_secure_installation
# → 设定 root 密码、删除匿名用户、禁止远程 root、移除 test DB、重载权限表
3️⃣ 创建 WordPress 数据库与用户(绝不使用 root!
sudo mysql -u root -p
> CREATE DATABASE wordpress CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
> CREATE USER 'wpuser'@'localhost' IDENTIFIED BY 'StrongPass123!';
> GRANT ALL ON wordpress.* TO 'wpuser'@'localhost';
> FLUSH PRIVILEGES;
> EXIT;
4️⃣ 配置 Nginx 站点(示例:/etc/nginx/conf.d/wordpress.conf
server {
    listen 80;
    server_name example.com www.example.com;
    root /var/www/wordpress;
    index index.php;

    location / {
        try_files $uri $uri/ /index.php?$args;
    }

    location ~ .php$ {
        include snippets/fastcgi-php.conf;
        fastcgi_pass unix:/run/php/php-fpm.sock;  # Ubuntu 路径可能为 /var/run/php/php8.1-fpm.sock
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
    }

    location ~ /.ht {
        deny all;
    }
}

✅ 启用配置:

sudo nginx -t && sudo systemctl reload nginx
5️⃣ 下载并解压 WordPress
cd /tmp
wget https://wordpress.org/latest.tar.gz
tar -xzf latest.tar.gz
sudo rsync -av wordpress/ /var/www/wordpress/
sudo chown -R www-data:www-data /var/www/wordpress  # Ubuntu
# CentOS/RHEL: sudo chown -R nginx:nginx /var/www/wordpress
sudo chmod -R 755 /var/www/wordpress
6️⃣ 配置 WordPress(生成 wp-config.php
cd /var/www/wordpress
sudo cp wp-config-sample.php wp-config.php
sudo nano wp-config.php

替换以下三行(使用上一步创建的数据库凭据):

define('DB_NAME', 'wordpress');
define('DB_USER', 'wpuser');
define('DB_PASSWORD', 'StrongPass123!');

强烈建议添加安全密钥(自动生成):
访问 https://api.wordpress.org/secret-key/1.1/salt/ → 复制全部内容,替换 wp-config.php 中 `// MySQL settings…之后的define(‘AUTH_KEY’, …)` 区块**

7️⃣ 安装 SSL(使用 Certbot)
# Ubuntu (snap 安装)
sudo snap install --classic certbot
sudo ln -s /snap/bin/certbot /usr/bin/certbot
sudo certbot --nginx -d example.com -d www.example.com

# CentOS 9+
sudo dnf install certbot python3-certbot-nginx -y
sudo certbot --nginx -d example.com -d www.example.com

✅ 自动配置 HTTPS 并启用自动续期(Certbot 每 90 天续签,systemd timer 已启用)


🔹 方案 B:LAMP(Apache + MariaDB + PHP)— 兼容性优先

1️⃣ 安装组件
# Ubuntu
sudo apt install apache2 mariadb-server php libapache2-mod-php php-mysql php-curl php-gd php-mbstring php-xml php-xmlrpc php-soap php-intl php-zip

# CentOS 9
sudo dnf install httpd mariadb-server php php-mysqlnd php-curl php-gd php-mbstring php-xml php-xmlrpc php-soap php-intl php-zip
2️⃣ 启用 Apache 重写模块(必需)
sudo a2enmod rewrite  # Ubuntu
# CentOS: 编辑 `/etc/httpd/conf/httpd.conf`,确保 `LoadModule rewrite_module modules/mod_rewrite.so` 未注释,且 `<Directory "/var/www">` 中 `AllowOverride All`
3️⃣ 配置虚拟主机(/etc/apache2/sites-available/wordpress.conf
<VirtualHost *:80>
    ServerName example.com
    DocumentRoot /var/www/wordpress
    <Directory /var/www/wordpress>
        AllowOverride All
        Require all granted
    </Directory>
</VirtualHost>

✅ 启用站点:sudo a2ensite wordpress.conf && sudo systemctl reload apache2

✅ 后续步骤(数据库、下载、wp-config、SSL)与 LEMP 完全一致。


⚠️ 三、关键注意事项(必读!)

类别 注意事项
✅ 安全第一 禁用文件编辑:在 wp-config.php 添加 define('DISALLOW_FILE_EDIT', true);
限制 wp-admin 访问:通过 Nginx/Apache IP 白名单或 .htaccess 限制登录入口
定期更新:WordPress 核心、主题、插件(启用自动更新:define('WP_AUTO_UPDATE_CORE', 'minor');
✅ 权限最小化 wp-content 目录:755(目录),644(文件),wp-content/pluginsthemes 可写(仅需 755
wp-config.php:设为 600(仅所有者可读写)→ sudo chmod 600 /var/www/wordpress/wp-config.php
✅ PHP 配置优化 修改 /etc/php/*/fpm/php.ini
memory_limit = 256M
upload_max_filesize = 64M
post_max_size = 128M
max_execution_time = 300
 重启 PHP-FPM:sudo systemctl restart php*-fpm
✅ 备份策略 数据库备份mysqldump -u wpuser -p wordpress > /backup/wp_$(date +%F).sql
文件备份rsync -av --delete /var/www/wordpress/ /backup/wordpress/
推荐工具:UpdraftPlus(插件)或 BorgBackup(CLI)
✅ 性能优化(上线后) • 启用 OPcache(PHP 内置)
• 安装缓存插件:WP Super Cache / Redis Object Cache(需 Redis 服务)
• 启用 Gzip 压缩(Nginx: gzip on; / Apache: mod_deflate
❌ 绝对避免 • 使用 root 用户连接数据库
• 将 WordPress 放在 /var/www/html 下不加子目录(易冲突)
• 在生产环境开启 WP_DEBUG = true
• 忽略 .htaccess 或 Nginx 重写规则导致固定链接(Permalinks)失效
• 使用弱密码或默认数据库名(如 wordpress → 改为 wp_prod_2024

✅ 四、验证与后续操作

  1. 访问 https://example.com → 进入 WordPress 安装向导
  2. 输入站点标题、管理员账号(勿用 admin!)、强密码、邮箱 → 完成安装
  3. 登录后台 https://example.com/wp-admin
  4. 立即操作
    • 更新所有插件/主题
    • 安装安全插件(Wordfence 或 Sucuri)
    • 设置固定链接(设置 → 永久链接 → 选“文章名”)
    • 删除默认主题(Twenty Twenty-Four)和 Hello Dolly 插件

📌 附:一键脚本(谨慎使用,仅用于测试环境)

# Ubuntu 示例(生产环境请手动执行!)
curl -s https://raw.githubusercontent.com/rtCamp/easyengine/master/ee.sh | sudo bash
sudo ee site create example.com --wp --php74 --letsencrypt

⚠️ 生产环境严禁直接运行未知脚本!务必理解每一步原理。


如需我为你生成:

  • ✅ 完整的 nginx.confapache2.conf 模板(含安全头、CSP、缓存)
  • ✅ 自动化备份脚本(每日压缩+异地同步至 S3/MinIO)
  • ✅ Docker Compose 部署方案(带 MariaDB、Redis、Nginx)
  • ✅ WordPress 多站点(Multisite)配置指南

欢迎随时提出 👍

祝你部署顺利、安全稳定!🚀

未经允许不得转载:CLOUD技术博 » 在CentOS或Ubuntu上安装WordPress的步骤和注意事项有哪些?