在阿里云轻量应用服务器上运行两个 WordPress 站点是完全可行的,主要有以下几种方式来实现。以下是详细步骤和建议:
✅ 方法一:使用不同的域名或子域名(推荐)
这是最常见、最清晰的方式,通过 虚拟主机配置 实现多个 WordPress 站点共存。
1. 准备工作
- 轻量应用服务器已安装 LAMP 或 LNMP 环境(如 Apache 或 Nginx + PHP + MySQL)。
- 拥有两个域名,或一个主域名 + 一个子域名(如
site1.com和blog.site1.com)。 - 服务器开放 80/443 端口。
2. 部署第一个 WordPress(已有)
假设你已经部署了一个 WordPress,位于 /var/www/html/wordpress。
3. 部署第二个 WordPress
# 创建新目录
sudo mkdir -p /var/www/html/wordpress2
# 下载 WordPress
cd /tmp
wget https://cn.wordpress.org/latest-zh_CN.tar.gz
tar -xzf latest-zh_CN.tar.gz
# 复制到新目录
sudo cp -r /tmp/wordpress/* /var/www/html/wordpress2/
# 设置权限
sudo chown -R www-data:www-data /var/www/html/wordpress2
sudo chmod -R 755 /var/www/html/wordpress2
4. 创建新的数据库
CREATE DATABASE wordpress2_db;
CREATE USER 'wp2_user'@'localhost' IDENTIFIED BY 'your_password';
GRANT ALL PRIVILEGES ON wordpress2_db.* TO 'wp2_user'@'localhost';
FLUSH PRIVILEGES;
5. 配置 Web 服务器(以 Nginx 为例)
创建新的站点配置文件:
sudo nano /etc/nginx/sites-available/site2.conf
内容示例(替换 yourdomain.com):
server {
listen 80;
server_name your-second-domain.com;
root /var/www/html/wordpress2;
index index.php index.html index.htm;
location / {
try_files $uri $uri/ /index.php?$args;
}
location ~ .php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/run/php/php8.1-fpm.sock;
}
location ~ /.ht {
deny all;
}
}
启用站点:
sudo ln -s /etc/nginx/sites-available/site2.conf /etc/nginx/sites-enabled/
sudo nginx -t
sudo systemctl reload nginx
6. 完成 WordPress 安装
访问 http://your-second-domain.com,进入 WordPress 安装向导,填写数据库信息(用第二套数据库)。
✅ 方法二:使用不同端口(不推荐用于公网正式站)
如果你只有一个域名,但想测试两个站点,可以绑定不同端口。
例如:
- 主站:
http://your-ip:80→/var/www/html/wordpress - 第二个:
http://your-ip:8080→/var/www/html/wordpress2
修改 Nginx 监听端口:
server {
listen 8080;
...
}
然后防火墙放行 8080 端口(阿里云控制台安全组也要开放)。
⚠️ 缺点:URL 带端口号不美观,不利于 SEO。
✅ 方法三:使用子目录部署(如 site.com/blog)
将第二个 WordPress 放在子目录,例如:
- 主站:
example.com - 博客:
example.com/blog
操作类似,但需注意:
- 子目录的 Nginx/Apache 配置要嵌套。
- 安装时选择“子目录”模式。
- 固定链接设置可能冲突,需小心配置。
✅ 方法四:使用 Docker(高级推荐)
用 Docker 可以轻松隔离多个 WordPress 实例:
# docker-compose.yml
version: '3.8'
services:
db1:
image: mysql:8.0
environment:
MYSQL_ROOT_PASSWORD: rootpass
MYSQL_DATABASE: wp1
MYSQL_USER: wp1user
MYSQL_PASSWORD: wppass
volumes:
- db1_data:/var/lib/mysql
wordpress1:
image: wordpress:latest
depends_on:
- db1
environment:
WORDPRESS_DB_HOST: db1
WORDPRESS_DB_USER: wp1user
WORDPRESS_DB_PASSWORD: wppass
WORDPRESS_DB_NAME: wp1
ports:
- "8080:80"
volumes:
- wp1_data:/var/www/html
db2:
image: mysql:8.0
environment:
MYSQL_ROOT_PASSWORD: rootpass
MYSQL_DATABASE: wp2
MYSQL_USER: wp2user
MYSQL_PASSWORD: wppass2
volumes:
- db2_data:/var/lib/mysql
wordpress2:
image: wordpress:latest
depends_on:
- db2
environment:
WORDPRESS_DB_HOST: db2
WORDPRESS_DB_USER: wp2user
WORDPRESS_DB_PASSWORD: wppass2
WORDPRESS_DB_NAME: wp2
ports:
- "8081:80"
volumes:
- wp2_data:/var/www/html
volumes:
db1_data:
db2_data:
wp1_data:
wp2_data:
启动:docker-compose up -d
访问:
http://your-ip:8080→ 第一个 WPhttp://your-ip:8081→ 第二个 WP
🔐 注意事项
- 数据库分离:每个 WordPress 使用独立数据库,避免冲突。
- 备份与安全:两个站点都要定期更新插件、主题、核心。
- 资源限制:轻量服务器配置较低(如 2核2G),运行两个 WP 要注意性能,建议开启缓存(如 WP Super Cache)。
- SSL 证书:使用 Let’s Encrypt 为两个域名分别配置 HTTPS。
✅ 总结
| 方法 | 适用场景 | 推荐度 |
|---|---|---|
| 不同域名 + 虚拟主机 | 正式运营多站 | ⭐⭐⭐⭐⭐ |
| 子目录部署 | 同一网站下的博客 | ⭐⭐⭐ |
| 不同端口 | 内部测试 | ⭐⭐ |
| Docker 部署 | 高级用户,易于管理 | ⭐⭐⭐⭐ |
如果你提供当前环境(Apache/Nginx?是否已有 WordPress?有几个域名?),我可以给出更具体的配置命令。
祝你部署顺利! 🚀
云计算