在阿里云服务器上部署多个 WordPress 网站是完全可行的,常见的实现方式有以下几种。下面以 ECS(云服务器) 为例,介绍如何部署多个 WordPress 实例。
✅ 一、准备工作
-
购买阿里云 ECS 实例
- 推荐系统:CentOS 7+/Ubuntu 20.04+
- 配置建议:2核4G以上(根据网站数量和流量调整)
- 安全组:开放 80(HTTP)、443(HTTPS)、22(SSH)端口
-
域名准备
- 每个 WordPress 网站建议使用独立域名或子域名,如:
site1.comsite2.comblog.yoursite.com
- 每个 WordPress 网站建议使用独立域名或子域名,如:
-
绑定域名并解析到 ECS 公网 IP
✅ 二、部署方式选择
方式一:单服务器 + Nginx 虚拟主机(推荐)
适用于:多个 WordPress 站点共享一台服务器,通过不同域名访问。
步骤:
- 安装 LAMP 或 LEMP 环境
- 推荐 LEMP(Nginx + MySQL + PHP + phpMyAdmin)
# Ubuntu 示例
sudo apt update
sudo apt install nginx mysql-server php-fpm php-mysql php-curl php-gd php-mbstring php-xml php-zip -y
- 创建多个网站目录
sudo mkdir -p /var/www/site1.com
sudo mkdir -p /var/www/site2.com
- 下载 WordPress 到每个目录
cd /var/www/site1.com
wget https://cn.wordpress.org/latest-zh_CN.tar.gz
tar -xzf latest-zh_CN.tar.gz --strip-components=1
chown -R www-data:www-data /var/www/site1.com
对 site2.com 重复类似操作。
- 配置 MySQL 数据库(每个站点独立数据库)
CREATE DATABASE wp_site1;
CREATE DATABASE wp_site2;
CREATE USER 'user1'@'localhost' IDENTIFIED BY 'strongpassword';
CREATE USER 'user2'@'localhost' IDENTIFIED BY 'strongpassword';
GRANT ALL PRIVILEGES ON wp_site1.* TO 'user1'@'localhost';
GRANT ALL PRIVILEGES ON wp_site2.* TO 'user2'@'localhost';
FLUSH PRIVILEGES;
- 配置 Nginx 虚拟主机
创建配置文件:
sudo nano /etc/nginx/sites-available/site1.com
内容示例:
server {
listen 80;
server_name site1.com www.site1.com;
root /var/www/site1.com;
index index.php index.html;
location / {
try_files $uri $uri/ /index.php?$args;
}
location ~ .php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/var/run/php/php8.1-fpm.sock;
}
location ~ /.ht {
deny all;
}
}
复制并修改为 site2.com 的配置。
启用站点:
sudo ln -s /etc/nginx/sites-available/site1.com /etc/nginx/sites-enabled/
sudo ln -s /etc/nginx/sites-available/site2.com /etc/nginx/sites-enabled/
sudo nginx -t && sudo systemctl reload nginx
-
访问域名完成 WordPress 安装
- 浏览器访问
http://site1.com,按向导填写数据库信息(使用各自的数据库和用户)
- 浏览器访问
-
(可选)配置 HTTPS(使用 Let’s Encrypt)
sudo apt install certbot python3-certbot-nginx -y
sudo certbot --nginx -d site1.com -d www.site1.com
对每个站点重复。
方式二:使用 Docker 部署多个 WordPress
适合:希望环境隔离、便于管理。
示例:使用 docker-compose.yml
version: '3.8'
services:
db1:
image: mysql:8.0
environment:
MYSQL_ROOT_PASSWORD: rootpass
MYSQL_DATABASE: wordpress1
MYSQL_USER: wp1
MYSQL_PASSWORD: wp1pass
volumes:
- db1_data:/var/lib/mysql
networks:
- wordpress_net
wordpress1:
image: wordpress:latest
depends_on:
- db1
environment:
WORDPRESS_DB_HOST: db1:3306
WORDPRESS_DB_USER: wp1
WORDPRESS_DB_PASSWORD: wp1pass
WORDPRESS_DB_NAME: wordpress1
volumes:
- wp1_data:/var/www/html
ports:
- "8080:80"
networks:
- wordpress_net
db2:
image: mysql:8.0
environment:
MYSQL_ROOT_PASSWORD: rootpass
MYSQL_DATABASE: wordpress2
MYSQL_USER: wp2
MYSQL_PASSWORD: wp2pass
volumes:
- db2_data:/var/lib/mysql
networks:
- wordpress_net
wordpress2:
image: wordpress:latest
depends_on:
- db2
environment:
WORDPRESS_DB_HOST: db2:3306
WORDPRESS_DB_USER: wp2
WORDPRESS_DB_PASSWORD: wp2pass
WORDPRESS_DB_NAME: wordpress2
volumes:
- wp2_data:/var/www/html
ports:
- "8081:80"
networks:
- wordpress_net
networks:
wordpress_net:
volumes:
db1_data:
db2_data:
wp1_data:
wp2_data:
启动:
docker-compose up -d
访问:
http://your-ip:8080→ WordPress 1http://your-ip:8081→ WordPress 2
⚠️ 注意:若用域名,建议配合 Nginx 做反向 + 域名分流。
✅ 三、管理建议
| 项目 | 建议 |
|---|---|
| 数据库 | 每个站点独立数据库,避免冲突 |
| 备份 | 定期备份数据库和文件(可使用阿里云快照 + mysqldump) |
| 安全 | 隐藏 wp-admin、使用安全插件、限制登录尝试 |
| 性能 | 使用缓存插件(如 WP Super Cache)、CDN |
✅ 四、常见问题
- 端口冲突?
- 使用 Nginx 虚拟主机可共享 80/443 端口,无需开放多个端口。
- 资源不足?
- 监控 CPU、内存使用,必要时升级 ECS 配置或拆分到多台服务器。
- 如何迁移?
- 使用 All-in-One WP Migration 等插件导出导入。
✅ 总结
| 方式 | 优点 | 缺点 |
|---|---|---|
| Nginx 虚拟主机 | 资源利用率高,配置简单 | 环境耦合,一个出问题可能影响整体 |
| Docker 部署 | 环境隔离,易于扩展 | 学习成本略高,资源占用稍多 |
👉 推荐新手使用 Nginx 虚拟主机,进阶用户可用 Docker。
如果你提供具体系统(CentOS/Ubuntu)、是否已有环境、域名情况,我可以给出更详细的配置脚本。
CLOUD技术博