是的,一台服务器上完全可以配置多个 WordPress 实例。这是非常常见的做法,尤其适用于:
- 你托管了多个网站;
- 不同客户或项目需要独立管理;
- 测试环境与生产环境分离等场景。
🛠️ 实现方式
在一台服务器上部署多个 WordPress 实例有多种方法,以下是几种主流方式:
✅ 方法一:使用不同的目录(Subdirectories)
每个 WordPress 站点安装在服务器文件系统的不同目录中,例如:
/var/www/site1
/var/www/site2
然后通过 Nginx 或 Apache 配置不同的虚拟主机(Virtual Host),将不同的域名指向对应的目录。
示例 Nginx 配置(site1.conf):
server {
listen 80;
server_name site1.com www.site1.com;
root /var/www/site1;
index index.php index.html;
location / {
try_files $uri $uri/ /site1/index.php?$args;
}
location ~ .php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/run/php/php-fpm.sock;
}
}
类似地,为 site2.com 创建另一个配置文件。
✅ 方法二:多站点模式(WordPress Multisite)
如果你希望用一个 WordPress 安装来管理多个子站点(如 site1.example.com, site2.example.com 或 example.com/site1),可以启用 WordPress 的 多站点功能(Multisite)。
优点:统一更新、插件集中管理
缺点:配置较复杂、插件兼容性问题可能更多
启用方法是在 wp-config.php 中添加:
define('WP_ALLOW_MULTISITE', true);
然后根据后台提示启用网络设置。
✅ 方法三:Docker 容器化部署(推荐高级用户)
使用 Docker 可以为每个 WordPress 站点创建独立的容器实例,彼此之间完全隔离。
示例命令:
docker run --name wordpress1 -e WORDPRESS_DB_NAME=wpdb1 -p 8080:80 -d wordpress
docker run --name wordpress2 -e WORDPRESS_DB_NAME=wpdb2 -p 8081:80 -d wordpress
配合反向(如 Traefik 或 Nginx Proxy Manager)可以轻松实现域名路由。
✅ 方法四:使用不同的端口或子域
你也可以让不同的 WordPress 实例监听不同的端口(如 8080、8081),并通过 Nginx 做反向。
🔐 数据库注意事项
每个 WordPress 实例应使用独立的数据库或至少独立的表前缀,避免冲突。例如:
- site1 使用数据库
wp_site1,表前缀wp_ - site2 使用数据库
wp_site2,表前缀wp_或wp2_
✅ 总结
| 方法 | 是否推荐 | 说明 |
|---|---|---|
| 多目录 + 虚拟主机 | ✅ 推荐 | 最常见、最灵活 |
| WordPress Multisite | ⚠️ 视情况而定 | 统一管理但配置复杂 |
| Docker 容器 | ✅ 推荐(进阶) | 完全隔离、易于扩展 |
| 多端口访问 | ❌ 不常用 | 用户体验差 |
如果你告诉我你的服务器环境(比如 Ubuntu + Apache 还是 CentOS + Nginx),我可以给你更具体的配置示例。
云计算HECS