加油
努力

使用阿里云ECS Ubuntu服务器部署LNMP和WordPress的完整步骤是什么?

以下是在阿里云 ECS(Ubuntu 22.04 LTS)服务器上完整、安全、生产就绪地部署 LNMP(Linux + Nginx + MySQL 8.0 + PHP 8.1)并安装 WordPress 的详细步骤。本指南已针对阿里云环境优化(含安全组配置、防火墙、权限加固、SSL 建议),适用于新手且兼顾最佳实践。

前提条件

  • 已创建阿里云 ECS 实例,操作系统:Ubuntu 22.04 LTS(推荐 2C4G 或以上)
  • 已配置安全组规则(放行端口:22(SSH)、80(HTTP)、443(HTTPS))
  • 已通过 SSH 登录(如 ssh -i your-key.pem ubuntu@your-server-ip
  • 使用 ubuntu 用户操作(非 root,但需 sudo 权限)

🔹 第一步:系统初始化与安全加固

# 1. 更新系统并升级软件包
sudo apt update && sudo apt upgrade -y

# 2. 安装基础工具(vim、curl、wget、unzip、git、ufw)
sudo apt install -y vim curl wget unzip git gnupg2 software-properties-common

# 3. 配置 UFW 防火墙(推荐启用)
sudo ufw allow OpenSSH
sudo ufw allow 'Nginx Full'  # 同时开放 80 & 443
sudo ufw enable
sudo ufw status verbose  # 确认状态为 active

# 4. 创建专用用户(可选但推荐,避免直接用 ubuntu)
sudo adduser wwwadmin
sudo usermod -aG sudo wwwadmin
# (后续可切换:`su - wwwadmin`,本指南仍以 ubuntu 演示)

🔹 第二步:安装 Nginx(Web 服务器)

# 安装 Nginx
sudo apt install -y nginx

# 启动并设为开机自启
sudo systemctl enable nginx
sudo systemctl start nginx

# 验证:访问 http://你的ECS公网IP → 应看到 "Welcome to nginx!" 页面

⚠️ 阿里云注意:若无法访问,请检查:

  • ECS 控制台 → 安全组是否放行 80 端口(入方向)
  • sudo ufw status 是否允许 Nginx Full
  • sudo systemctl is-active nginx 是否为 active

🔹 第三步:安装 MySQL 8.0(数据库)

# Ubuntu 22.04 默认源即为 MySQL 8.0,直接安装
sudo apt install -y mysql-server

# 运行安全加固脚本(设置 root 密码强度、删除匿名用户等)
sudo mysql_secure_installation
# ➤ 按提示操作:
#   - Validate Password Plugin? → 选 2(Medium)或 1(Low),或 N 跳过
#   - New password for root: ✅ 设置强密码(如 MyP@ssw0rd2024!)
#   - Remove anonymous users? → Y
#   - Disallow root login remotely? → Y(重要!禁止远程 root)
#   - Remove test database? → Y
#   - Reload privilege tables? → Y

# 验证 MySQL 运行状态
sudo systemctl status mysql

✅ 创建 WordPress 专用数据库与用户(关键!)

sudo mysql -u root -p

在 MySQL 提示符下执行(请替换 wp_userstrong_password 为你自己的值):

-- 创建数据库(UTF8MB4 支持 emoji)
CREATE DATABASE wordpress DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;

-- 创建专用用户(仅允许本地连接,更安全)
CREATE USER 'wp_user'@'localhost' IDENTIFIED WITH mysql_native_password BY 'YourStrongP@ssw0rd2024!';

-- 授予数据库全部权限
GRANT ALL ON wordpress.* TO 'wp_user'@'localhost';

-- 刷新权限
FLUSH PRIVILEGES;

-- 退出
EXIT;

💡 记录好:数据库名 wordpress、用户名 wp_user、密码 YourStrongP@ssw0rd2024! —— 后续 WordPress 安装需要。


🔹 第四步:安装 PHP 8.1 及必要扩展

# Ubuntu 22.04 默认 PHP 版本为 8.1,安装核心及 WordPress 所需扩展
sudo apt install -y php-fpm php-mysql php-curl php-gd php-mbstring php-xml php-xmlrpc php-soap php-intl php-zip php-cli

# ✅ 验证 PHP 版本
php -v  # 应显示 PHP 8.1.x

# ✅ 检查 FPM 状态
sudo systemctl status php8.1-fpm
sudo systemctl enable php8.1-fpm

🔧 配置 PHP-FPM(提高安全性与性能)

# 编辑 www.conf(PHP-FPM 池配置)
sudo vim /etc/php/8.1/fpm/pool.d/www.conf

修改以下关键项(取消注释并调整):

; 将监听方式改为 Unix socket(比 TCP 更快更安全)
listen = /run/php/php8.1-fpm.sock
listen.owner = www-data
listen.group = www-data
listen.mode = 0660

; 限制资源(防 DoS)
pm = ondemand
pm.max_children = 50
pm.start_servers = 5
pm.min_spare_servers = 5
pm.max_spare_servers = 10
pm.process_idle_timeout = 10s
pm.max_requests = 500

; 安全增强(禁用危险函数)
php_admin_value[disable_functions] = exec,passthru,shell_exec,system,proc_open,popen,parse_ini_file,show_source

; 上传限制(按需调整)
php_admin_value[upload_max_filesize] = 64M
php_admin_value[post_max_size] = 128M

保存后重启服务:

sudo systemctl restart php8.1-fpm

🔹 第五步:配置 Nginx 站点(支持 WordPress)

1️⃣ 创建网站目录并设置权限

sudo mkdir -p /var/www/wordpress
sudo chown -R $USER:$USER /var/www/wordpress
sudo chmod -R 755 /var/www/wordpress

2️⃣ 下载并解压 WordPress(最新稳定版)

cd /tmp
curl -O https://wordpress.org/latest.tar.gz
tar xzvf latest.tar.gz
cp -a /tmp/wordpress/. /var/www/wordpress/

3️⃣ 设置 WordPress 文件权限(安全关键!)

# 设置正确所有者(nginx 运行用户为 www-data)
sudo chown -R www-data:www-data /var/www/wordpress
sudo find /var/www/wordpress/ -type d -exec chmod 755 {} ;
sudo find /var/www/wordpress/ -type f -exec chmod 644 {} ;
sudo chmod 600 /var/www/wordpress/wp-config.php  # 后续创建后设置

4️⃣ 创建 Nginx 虚拟主机配置

sudo vim /etc/nginx/sites-available/wordpress

粘贴以下配置(务必替换 server_name 为你的真实域名(如 example.com)或暂用 IP):

server {
    listen 80;
    listen [::]:80;

    # 👇 替换为你的真实域名(无 www 或带 www 均可,建议统一)
    server_name your-domain.com www.your-domain.com;  # ← 修改此处!
    root /var/www/wordpress;
    index index.php index.html index.htm;

    # 防止访问敏感文件
    location ~ /.ht {
        deny all;
    }

    # 处理 WordPress 固定链接(伪静态)
    location / {
        try_files $uri $uri/ /index.php?$args;
    }

    # PHP 处理(关键!)
    location ~ .php$ {
        include snippets/fastcgi-php.conf;
        fastcgi_pass unix:/run/php/php8.1-fpm.sock;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        include fastcgi_params;
    }

    # 静态资源缓存
    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 rm -f /etc/nginx/sites-enabled/default

# 测试 Nginx 配置语法
sudo nginx -t

# 重载配置
sudo systemctl reload nginx

✅ 此时访问 http://你的ECS公网IPhttp://your-domain.com,应进入 WordPress 安装向导页面。


🔹 第六步:完成 WordPress 安装

  1. 在浏览器中打开 http://你的ECS公网IP(或域名)
  2. 选择语言 → 点击【继续】
  3. 填写数据库信息(使用第三步中创建的):
    • 数据库名:wordpress
    • 用户名:wp_user
    • 密码:YourStrongP@ssw0rd2024!
    • 数据库主机:localhost(✅ 不要填 127.0.0.1,MySQL 8.0 默认禁用)
    • 表前缀:保持默认 wp_(或自定义如 wp2024_
  4. 点击【提交】→ 【运行安装】
  5. 填写站点标题、管理员用户名(勿用 admin!)、强密码、邮箱 → 【安装 WordPress】
  6. 安装成功后,用管理员账号登录后台:/wp-admin

🔹 第七步(强烈推荐):配置 HTTPS(Let’s Encrypt)

✅ 使用 Certbot 自动获取免费 SSL 证书(需已绑定域名)

# 1. 安装 Certbot
sudo apt install -y certbot python3-certbot-nginx

# 2. 获取并自动配置证书(确保域名 A 记录已解析到 ECS 公网 IP)
sudo certbot --nginx -d your-domain.com -d www.your-domain.com

# 3. 按提示输入邮箱、同意协议、是否重定向 HTTP→HTTPS(选 2:Redirect)

✅ 完成后自动更新 Nginx 配置,强制 HTTPS,且证书 90 天自动续期。

🔁 续期测试(手动):sudo certbot renew --dry-run


🔹 第八步:安全加固与优化(生产必备)

项目 操作
禁用 XML-RPC(防暴力攻击) 在 WordPress 后台 → 插件 → 安装插件 Disable XML-RPC 或在 wp-config.php 加:
define('DISABLE_XML_RPC', true);
限制登录尝试 安装插件 Login LockDownWordfence Security(后台安装)
定期备份 使用插件 UpdraftPlus(备份到阿里云 OSS 或腾讯云 COS 更佳)
更新策略 永远不要关闭 WordPress 核心/主题/插件自动更新(在 wp-config.php 中添加):
define('WP_AUTO_UPDATE_CORE', 'minor');
禁用文件编辑 wp-config.php 添加:
define('DISALLOW_FILE_EDIT', true);

🧪 验证部署是否成功

检查项 命令/方法
Nginx 运行 sudo systemctl is-active nginxactive
MySQL 运行 sudo systemctl is-active mysqlactive
PHP-FPM 运行 sudo systemctl is-active php8.1-fpmactive
Nginx 配置语法 sudo nginx -tsyntax is ok
WordPress 访问 浏览器打开 https://your-domain.com → 显示首页
后台登录 https://your-domain.com/wp-admin → 可登录

📌 常见问题速查

问题 解决方案
“Error establishing a database connection” 检查 wp-config.php 数据库名/用户/密码;确认 MySQL 服务运行;确认 wp_user@'localhost'(不是 @'%'
WordPress 无法写入 .htaccess 或上传文件 sudo chown -R www-data:www-data /var/www/wordpress + 检查 upload_max_filesize 配置
固定链接 404 确认 Nginx 配置中 location / { try_files ... } 存在;重启 Nginx
PHP 无法连接 MySQL sudo mysql -u wp_user -p -e "SELECT 1" 测试;检查 /etc/mysql/mysql.conf.d/mysqld.cnfbind-address = 127.0.0.1(默认即可)
阿里云备案问题 若面向中国大陆用户提供服务,必须完成 ICP 备案(否则 80/443 端口被拦截)

恭喜!你已完成一套安全、高性能、可维护的 LNMP + WordPress 生产环境部署。

🌟 进阶建议

  • 使用阿里云 RDS MySQL 替代自建 MySQL(更高可用、自动备份、读写分离)
  • 使用 OSS + CDN 托管静态资源(提速 + 节省 ECS 带宽)
  • 部署 Fail2ban 防爆破:sudo apt install fail2ban
  • 监控:安装 netdata 或对接阿里云 ARMS

如需我为你生成:

  • ✅ 一键部署脚本(.sh
  • wp-config.php 安全模板(含密钥自动填充)
  • ✅ 阿里云 RDS 连接配置指南
  • ✅ Docker 版 LNMP(更轻量隔离)

欢迎随时告诉我,我可以立即为你定制 👇

是否需要我帮你生成一个 全自动部署 Shell 脚本?🚀

云服务器