阿里云ECS Ubuntu实例安装Nginx、MySQL、PHP并运行WordPress需要注意哪些配置?

在阿里云 ECS(Ubuntu)上部署 LEMP(Linux + Nginx + MySQL + PHP)并运行 WordPress 是常见场景,但需兼顾安全性、性能、稳定性及阿里云特有配置。以下是关键注意事项和分步建议(以 Ubuntu 22.04/24.04 为例):


✅ 一、前期准备与安全基线

项目 注意事项
ECS 实例选择 • 推荐 ≥ 2核4GB(WordPress 中小流量)
• 系统盘 ≥ 80GB(预留日志、备份、插件空间)
务必关闭「密码登录」,启用 SSH 密钥对(控制台 → 实例详情 → 远程连接 → 绑定密钥)
安全组配置 仅开放必要端口
 ✓ 80(HTTP)、443(HTTPS)→ 对公网
 ✓ 22(SSH)→ 限制来源 IP(如公司宽带/IP 或跳板机),禁用 0.0.0.0/0
 ✗ 禁止开放 3306(MySQL)到公网!内网访问或通过 SSH 隧道管理
系统更新 bash<br>sudo apt update && sudo apt upgrade -y<br>sudo apt autoremove -y<br>

✅ 二、安装与核心配置要点

1️⃣ Nginx 配置(安全 & 兼容性)

  • 安装sudo apt install nginx -y
  • 关键配置 /etc/nginx/sites-available/wordpress

    server {
      listen 80;
      server_name your-domain.com;  # 替换为你的域名(需已解析到ECS公网IP)
      root /var/www/wordpress;
      index index.php;
    
      # 🔒 安全加固(必加!)
      location ~ /.ht { deny all; }
      location ~ ^/wp-content/uploads/.*.php$ { deny all; }  # 防止上传目录执行PHP
      location ~ .(php|phar)$ {
          fastcgi_pass unix:/run/php/php8.1-fpm.sock;  # 注意PHP版本匹配
          fastcgi_index index.php;
          include fastcgi_params;
          fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
      }
    
      # 🌐 WordPress 固定链接支持(伪静态)
      location / {
          try_files $uri $uri/ /index.php?$args;
      }
    
      # 📁 静态资源缓存(提升性能)
      location ~* .(js|css|png|jpg|jpeg|gif|ico|svg)$ {
          expires 1y;
          add_header Cache-Control "public, immutable";
      }
    }
  • 启用站点:
    sudo ln -sf /etc/nginx/sites-available/wordpress /etc/nginx/sites-enabled/
    sudo nginx -t && sudo systemctl reload nginx

2️⃣ MySQL(推荐 MariaDB,更轻量且兼容)

  • 安装sudo apt install mariadb-server mariadb-client -y
  • 安全初始化(必做!)
    sudo mysql_secure_installation
    → 设 root 密码、删除匿名用户、禁止远程 root、删除 test DB、重载权限
  • 创建 WordPress 专用数据库与用户(非 root!)
    CREATE DATABASE wp_db CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
    CREATE USER 'wp_user'@'localhost' IDENTIFIED BY 'StrongPass123!';
    GRANT ALL PRIVILEGES ON wp_db.* TO 'wp_user'@'localhost';
    FLUSH PRIVILEGES;
  • 重要参数优化(/etc/mysql/mariadb.conf.d/50-server.cnf
    [mysqld]
    character-set-server = utf8mb4
    collation-server = utf8mb4_unicode_ci
    innodb_file_format = Barracuda
    innodb_large_prefix = 1
    # 避免内存溢出(按ECS内存调整)
    innodb_buffer_pool_size = 1G  # ≈ 总内存的 50%~70%

3️⃣ PHP(推荐 PHP 8.1+,兼容 WP 6.x)

  • 安装扩展(WordPress 必需)
    sudo apt install php-fpm php-mysql php-curl php-gd php-mbstring 
                   php-xml php-xmlrpc php-soap php-intl php-zip -y
  • PHP 配置优化(/etc/php/8.1/fpm/php.ini
    upload_max_filesize = 64M
    post_max_size = 64M
    memory_limit = 256M
    max_execution_time = 300
    date.timezone = Asia/Shanghai  # 阿里云服务器时区
  • 重启服务sudo systemctl restart php8.1-fpm

✅ 三、WordPress 部署关键操作

步骤 注意事项
① 下载与解压 cd /var/www && sudo wget https://cn.wordpress.org/latest-zh_CN.tar.gz && sudo tar -xzf latest-zh_CN.tar.gz && sudo chown -R www-data:www-data wordpress
② 配置文件 cd /var/www/wordpress && sudo cp wp-config-sample.php wp-config.php
编辑 wp-config.php:填入数据库名、用户、密码、添加安全密钥(https://api.wordpress.org/secret-key/1.1/salt/)
③ 文件权限(安全!) bash<br>sudo find /var/www/wordpress/ -type d -exec chmod 755 {} ;<br>sudo find /var/www/wordpress/ -type f -exec chmod 644 {} ;<br>sudo chmod 600 /var/www/wordpress/wp-config.php<br>
④ 阿里云备案提醒 ⚠️ 若使用国内域名(.cn等)且指向中国大陆服务器,必须完成 ICP 备案(否则无法访问)!阿里云控制台 → 备案中心申请。

✅ 四、HTTPS(强烈推荐,阿里云免费证书)

  1. 申请 SSL 证书:阿里云 SSL 证书服务 → 免费版(DV)→ 域名验证(DNS 解析或文件验证)
  2. 下载证书(Nginx 版本)→ 上传到 ECS(如 /etc/nginx/ssl/your-domain.com/
  3. 修改 Nginx 配置(监听 443,添加 SSL 相关指令):
    listen 443 ssl http2;
    ssl_certificate /etc/nginx/ssl/your-domain.com.pem;
    ssl_certificate_key /etc/nginx/ssl/your-domain.com.key;
    ssl_protocols TLSv1.2 TLSv1.3;
    ssl_ciphers ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256;
  4. 强制 HTTPS(301 重定向):在 80 端口 server 块中添加:
    return 301 https://$host$request_uri;

✅ 五、生产环境增强建议

类别 推荐方案
防火墙 启用 ufwsudo ufw allow OpenSSH && sudo ufw allow 'Nginx Full' && sudo ufw enable
自动更新 sudo apt install unattended-upgrades && sudo dpkg-reconfigure -plow unattended-upgrades(仅安全更新)
备份策略 • 数据库:mysqldump -u wp_user -p wp_db > /backup/wp_$(date +%F).sql(配合 cron 每日)
• 文件:rsync -avz /var/www/wordpress/ /backup/wordpress/
监控告警 阿里云 云监控:设置 CPU > 80%、磁盘 > 90%、Nginx 进程异常等告警
WordPress 安全插件 安装后启用:Wordfence Security(防暴力破解)、iThemes Security(加固)

❌ 常见错误避坑

  • Nginx 502 Bad Gateway → 检查 php-fpm 是否运行:sudo systemctl status php8.1-fpm,确认 sock 路径一致
  • WordPress 提示“建立数据库连接时出错” → 检查 wp-config.php 数据库用户名/密码是否正确;确认 MySQL 用户允许 localhost 连接(非 %
  • 图片上传失败/403 Forbidden → 检查 /var/www/wordpress/wp-content 目录权限(应为 www-data 所属),检查 Nginx 是否拦截了 .php 在 uploads 目录
  • 中文乱码/emoji 显示为 ? → 确保 MySQL 全局、数据库、表、字段均为 utf8mb4(非 utf8

✅ 最后一步:验证与上线

  1. 浏览器访问 http://你的域名 → 完成 WordPress 安装向导
  2. 登录后台 → 设置 → 固定链接 → 选择「文章名」→ 保存(触发 Nginx 伪静态生效)
  3. 立即修改管理员密码、删除默认主题/插件、禁用主题编辑器(wp-config.phpdefine('DISALLOW_FILE_EDIT', true);

💡 终极提示:首次部署后,建议使用阿里云快照功能制作完整系统快照,便于故障快速回滚。

如需具体某一步的命令详解(如配置 Let’s Encrypt、设置自动备份脚本、或解决特定报错),欢迎继续提问! 🌟

未经允许不得转载:ECLOUD博客 » 阿里云ECS Ubuntu实例安装Nginx、MySQL、PHP并运行WordPress需要注意哪些配置?