在阿里云 ECS(Ubuntu)上搭建 WordPress 环境(LNMP:Linux + Nginx + MySQL + PHP),除了基础安装外,安全配置、性能优化和兼容性设置是确保网站稳定运行的关键。以下是核心注意事项及操作要点:
一、系统前置准备
-
安全组规则配置(阿里云控制台)
- 放行端口:
80(HTTP)、443(HTTPS)、22(SSH)。 - 切勿开放
3306(MySQL)到公网,仅允许本地或应用服务器访问。 - 建议限制 SSH 登录 IP(通过安全组或
iptables/fail2ban)。
- 放行端口:
-
系统更新与基础依赖
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 安全加固
-
初始化安全脚本
sudo mysql_secure_installation- 设置 root 密码(避免使用默认空密码)
- 删除匿名用户、远程 root 登录
- 移除测试数据库
-
创建 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文件或环境变量管理。 -
性能调优(可选但推荐)
- 修改
/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 配置优化
-
安装 PHP-FPM 及扩展
sudo apt install php-fpm php-mysql php-gd php-curl php-mbstring php-intl php-zip php-xml php-bcmath -y -
关键参数调整(
/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 # 超时时间(单位秒) -
上传大小限制(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 安装与后续安全
-
文件权限设置
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 -
禁用文件编辑器(防止恶意插件篡改)
在wp-config.php中添加:define('DISALLOW_FILE_EDIT', true); -
定期备份策略
- 使用阿里云快照 + 定时脚本备份数据库:
mysqldump -u wp_user -p'YourPassword' wordpress | gzip > /backup/wordpress_$(date +%F).sql.gz - 配置
crontab每日凌晨执行。
- 使用阿里云快照 + 定时脚本备份数据库:
六、常见坑点提醒
| 问题现象 | 可能原因 | 解决方案 |
|---|---|---|
| 访问 404 | 伪静态未生效 | 检查 try_files 规则;确认 Nginx 配置加载正确 |
| 图片无法上传 | PHP 上传限制 | 检查 upload_max_filesize 和 post_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 核心、主题和插件至最新版。
如需具体某一步骤的详细命令或故障排查指南,可随时告知!
云知识