在阿里云上使用 LNMP(Linux + Nginx + MySQL + PHP)或 LAMP(Linux + Apache + MySQL + PHP)环境部署多个 WordPress 站点,是常见的多站点托管方案。以下是详细的步骤和最佳实践:
一、准备工作
1. 购买并配置阿里云ECS实例
- 登录 阿里云控制台
- 创建一台 ECS 实例:
- 操作系统:推荐 CentOS 7/8 或 Ubuntu 20.04+
- 配置:至少 2核4G(根据站点数量调整)
- 安全组:开放端口
80(HTTP)、443(HTTPS)、22(SSH)
2. 域名准备
- 至少准备两个域名(或子域名),例如:
site1.comsite2.com
- 将域名的 DNS 解析指向你的 ECS 公网 IP。
二、选择 LNMP 或 LAMP 环境
| 对比项 | LNMP | LAMP |
|---|---|---|
| Web服务器 | Nginx(高性能,轻量) | Apache(功能丰富,易配置) |
| 静态资源处理 | 更快 | 稍慢 |
| 多站点支持 | 通过 server{} 块配置 | 通过 VirtualHost 配置 |
| 推荐场景 | 高并发、静态内容多 | 功能复杂、.htaccess 需求多 |
📌 建议:如果追求性能和简洁,推荐 LNMP;若需要
.htaccess支持(如某些插件),可选 LAMP。
三、部署多个 WordPress(以 LNMP 为例)
步骤 1:安装 LNMP 环境
方法一:使用一键安装包(推荐新手)
# 下载 lnmp 一键安装包(由军哥提供)
wget http://soft.vpser.net/lnmp/lnmp1.9.tar.gz -cO lnmp1.9.tar.gz
tar zxvf lnmp1.9.tar.gz
cd lnmp1.9
./install.sh lnmp
安装过程中会自动安装 Nginx、MySQL、PHP。
方法二:手动安装(适合定制化)
# Ubuntu 示例
sudo apt update
sudo apt install nginx mysql-server php-fpm php-mysql php-curl php-gd php-mbstring php-xml php-zip
步骤 2:创建多个网站目录
# 创建两个站点目录
sudo mkdir -p /home/wwwroot/site1.com
sudo mkdir -p /home/wwwroot/site2.com
# 设置权限
sudo chown -R www-data:www-data /home/wwwroot/
步骤 3:下载 WordPress
cd /home/wwwroot/site1.com
wget https://cn.wordpress.org/latest-zh_CN.tar.gz
tar -zxvf latest-zh_CN.tar.gz --strip-components=1
cd /home/wwwroot/site2.com
cp -r ../site1.com/* .
⚠️ 注意:每个站点应使用独立数据库。
步骤 4:创建独立数据库
mysql -u root -p
CREATE DATABASE wp_site1 CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
CREATE DATABASE wp_site2 CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
CREATE USER 'wpuser1'@'localhost' IDENTIFIED BY 'StrongPassword1!';
CREATE USER 'wpuser2'@'localhost' IDENTIFIED BY 'StrongPassword2!';
GRANT ALL PRIVILEGES ON wp_site1.* TO 'wpuser1'@'localhost';
GRANT ALL PRIVILEGES ON wp_site2.* TO 'wpuser2'@'localhost';
FLUSH PRIVILEGES;
EXIT;
步骤 5:配置 Nginx 虚拟主机(Server Blocks)
创建 site1 配置
sudo vim /etc/nginx/conf.d/site1.com.conf
server {
listen 80;
server_name site1.com www.site1.com;
root /home/wwwroot/site1.com;
index index.php index.html;
location / {
try_files $uri $uri/ /index.php?$args;
}
location ~ .php$ {
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
}
}
创建 site2 配置
sudo vim /etc/nginx/conf.d/site2.com.conf
server {
listen 80;
server_name site2.com www.site2.com;
root /home/wwwroot/site2.com;
index index.php index.html;
location / {
try_files $uri $uri/ /index.php?$args;
}
location ~ .php$ {
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
}
}
测试并重启 Nginx
sudo nginx -t
sudo systemctl reload nginx
步骤 6:访问并安装 WordPress
- 浏览器访问
http://site1.com和http://site2.com - 按向导完成安装:
- 数据库名:
wp_site1/wp_site2 - 用户名:
wpuser1/wpuser2 - 密码:对应设置的密码
- 表前缀建议不同(如
wp1_,wp2_)
- 数据库名:
四、LAMP 环境部署简要说明(Apache)
1. 安装 LAMP
sudo apt install apache2 mysql-server php libapache2-mod-php php-mysql
2. 创建站点目录(同上)
3. 配置虚拟主机
sudo vim /etc/apache2/sites-available/site1.com.conf
<VirtualHost *:80>
ServerName site1.com
ServerAlias www.site1.com
DocumentRoot /home/wwwroot/site1.com
<Directory /home/wwwroot/site1.com>
AllowOverride All
Require all granted
</Directory>
</VirtualHost>
启用站点:
sudo a2ensite site1.com.conf
sudo a2enmod rewrite
sudo systemctl restart apache2
✅
.htaccess支持更完整,适合依赖 URL 重写的插件。
五、安全与优化建议
1. 配置 SSL(Let’s Encrypt)
使用 Certbot 为每个站点添加 HTTPS:
sudo certbot --nginx -d site1.com -d www.site1.com
2. 防火墙设置
sudo ufw allow 'Nginx Full'
sudo ufw enable
3. 定期备份
- 数据库:使用
mysqldump - 文件:使用
rsync或阿里云 OSS 备份
4. 使用缓存插件
- WP Super Cache / W3 Total Cache
- Redis 缓存(可选)
六、管理多个 WordPress 的技巧
| 技巧 | 说明 |
|---|---|
| 统一更新 | 使用 WP CLI 批量更新 wp core update --path=/path/to/site |
| 监控日志 | 查看各站点的 error.log 和 access.log |
| 权限隔离 | 不同站点使用不同数据库用户 |
| 子目录部署 | 可用 /blog1, /blog2 共享一个 WordPress(多站点网络) |
总结
| 方案 | 适用场景 |
|---|---|
| LNMP + 多虚拟主机 | 高性能、高并发、静态资源多 |
| LAMP + VirtualHost | 插件依赖 .htaccess、传统迁移 |
| Docker 化部署 | 更高级,适合自动化运维(可选) |
💡 提示:对于大量站点,建议使用 宝塔面板 或 cPanel 简化管理,但生产环境仍推荐命令行 + 自动化脚本。
如有具体需求(如子域名、负载均衡、CDN 提速),可进一步扩展架构。欢迎继续提问!
CLOUD技术笔记