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

在阿里云 ECS(Ubuntu)上搭建 WordPress 环境(LNMP:Linux + Nginx + MySQL + PHP),除了基础安装外,安全配置、性能优化和兼容性设置是确保网站稳定运行的关键。以下是核心注意事项及操作要点:


一、系统前置准备

  1. 安全组规则配置(阿里云控制台)

    • 放行端口:80(HTTP)、443(HTTPS)、22(SSH)。
    • 切勿开放 3306(MySQL)到公网,仅允许本地或应用服务器访问。
    • 建议限制 SSH 登录 IP(通过安全组或 iptables/fail2ban)。
  2. 系统更新与基础依赖

    sudo apt update && sudo apt upgrade -y
    sudo apt install curl gnupg ca-certificates -y

二、Nginx 配置关键点

1. 虚拟主机配置(/etc/nginx/sites-available/wordpress

server {
    listen 80;
    server_name your-domain.com www.your-domain.com; # 替换为实际域名

    root /var/www/html; # WordPress 根目录
    index index.php index.html index.htm;

    # 防止 WordPress 后台暴力破解(可选)
    location ~* ^/wp-admin/admin-ajax.php$ {
        limit_req zone=one burst=5 nodelay;
    }

    # 禁止访问敏感文件
    location ~ /.ht { deny all; }
    location ~ /.git { deny all; }
    location ~ /.env { deny all; }
    location ~* .(sql|sh|log)$ { deny all; }

    # PHP 处理
    location ~ .php$ {
        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;
        fastcgi_buffer_size 128k;
        fastcgi_buffers 4 256k;
        fastcgi_busy_buffers_size 256k;
    }

    # 静态资源缓存(提升性能)
    location ~* .(jpg|jpeg|png|gif|ico|css|js|pdf|txt)$ {
        expires 30d;
        add_header Cache-Control "public, no-transform";
    }

    # WordPress 伪静态规则(必须!否则 404)
    location / {
        try_files $uri $uri/ /index.php?$args;
    }
}

启用站点

sudo ln -s /etc/nginx/sites-available/wordpress /etc/nginx/sites-enabled/
sudo nginx -t && sudo systemctl reload nginx

2. Gzip 压缩与 HTTPS(强烈推荐)

  • http {} 块中启用 gzip:
    gzip on;
    gzip_types text/plain text/css application/json application/javascript text/xml application/xml;
  • 使用 Let’s Encrypt 免费 SSL:
    sudo apt install certbot python3-certbot-nginx -y
    sudo certbot --nginx -d your-domain.com -d www.your-domain.com

三、MySQL/MariaDB 安全加固

  1. 初始化安全脚本

    sudo mysql_secure_installation
    • 设置 root 密码(避免使用默认空密码)
    • 删除匿名用户、远程 root 登录
    • 移除测试数据库
  2. 创建 WordPress 专用数据库用户

    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;

    ⚠️ 严禁将数据库密码硬编码在代码中,应通过 .env 文件或环境变量管理。

  3. 性能调优(可选但推荐)

    • 修改 /etc/mysql/mariadb.conf.d/50-server.cnf
      [mysqld]
      innodb_buffer_pool_size = 512M  # 根据内存调整(建议总内存的 50%~70%)
      max_connections = 150
      query_cache_type = 0            # MySQL 8+ 已弃用查询缓存

四、PHP 配置优化

  1. 安装 PHP-FPM 及扩展

    sudo apt install php-fpm php-mysql php-gd php-curl php-mbstring php-intl php-zip php-xml php-bcmath -y
  2. 关键参数调整(/etc/php/8.1/fpm/pool.d/www.conf

    pm = dynamic
    pm.max_children = 20          # 根据 CPU 核数调整(每核 5~10)
    pm.start_servers = 4
    pm.min_spare_servers = 4
    pm.max_spare_servers = 10
    request_terminate_timeout = 300  # 超时时间(单位秒)
  3. 上传大小限制(WordPress 必需)

    • 编辑 /etc/php/8.1/fpm/php.ini
      upload_max_filesize = 64M
      post_max_size = 64M
      max_execution_time = 300
      memory_limit = 256M
    • 重启服务:sudo systemctl restart php8.1-fpm

五、WordPress 安装与后续安全

  1. 文件权限设置

    sudo chown -R www-data:www-data /var/www/html
    sudo find /var/www/html -type f -exec chmod 644 {} ;
    sudo find /var/www/html -type d -exec chmod 755 {} ;
    # wp-config.php 需单独保护
    sudo chmod 640 /var/www/html/wp-config.php
    sudo chown www-data:www-data /var/www/html/wp-config.php
  2. 禁用文件编辑器(防止恶意插件篡改)
    wp-config.php 中添加:

    define('DISALLOW_FILE_EDIT', true);
  3. 定期备份策略

    • 使用阿里云快照 + 定时脚本备份数据库:
      mysqldump -u wp_user -p'YourPassword' wordpress | gzip > /backup/wordpress_$(date +%F).sql.gz
    • 配置 crontab 每日凌晨执行。

六、常见坑点提醒

问题现象 可能原因 解决方案
访问 404 伪静态未生效 检查 try_files 规则;确认 Nginx 配置加载正确
图片无法上传 PHP 上传限制 检查 upload_max_filesizepost_max_size
数据库连接失败 防火墙/权限错误 确认 MySQL 监听地址为 127.0.0.1;检查 wp-config.php 密码
后台卡顿 PHP-FPM 进程不足 增加 pm.max_children;监控 top -c 查看负载

七、阿里云特有优化建议

  • 开启云盾 WAF:在阿里云控制台为 ECS 绑定 Web 应用防火墙,拦截 SQL 注入/XSS。
  • 使用 OSS 存储媒体文件:将 /wp-content/uploads 同步至对象存储,减轻磁盘 IO。
  • 监控告警:通过云监控设置 CPU/内存/磁盘使用率阈值报警。

💡 最后一步:完成所有配置后,访问 http://your-ip 测试基础连通性,再部署正式域名并启用 HTTPS。首次登录后立即更新 WordPress 核心、主题和插件至最新版。

如需具体某一步骤的详细命令或故障排查指南,可随时告知!