在同一个服务器上搭建两个 WordPress 站点是常见需求,有多种可靠方式,关键在于隔离环境、避免冲突(如数据库名、表前缀、文件路径、域名/路径路由)。以下是主流且推荐的配置方案,按推荐度排序:
✅ 推荐方案:独立子域名或不同域名(最安全、最标准)
适用于生产环境,SEO友好,维护简单,无共享风险。
步骤概览:
-
准备两个独立域名/子域名
- 例如:
site1.example.com和site2.example.com - 或:
www.site1.com+www.site2.com
- 例如:
-
为每个站点创建独立目录
/var/www/site1/ # WordPress 1 /var/www/site2/ # WordPress 2✅ 下载并解压 WordPress 到各自目录(不要共用同一份代码)
-
创建两个独立数据库 + 用户(MySQL/MariaDB)
CREATE DATABASE wp_site1 CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; CREATE DATABASE wp_site2 CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; CREATE USER 'wp_user1'@'localhost' IDENTIFIED BY 'strong_password1'; CREATE USER 'wp_user2'@'localhost' IDENTIFIED BY 'strong_password2'; GRANT ALL PRIVILEGES ON wp_site1.* TO 'wp_user1'@'localhost'; GRANT ALL PRIVILEGES ON wp_site2.* TO 'wp_user2'@'localhost'; FLUSH PRIVILEGES; -
配置 Web 服务器(Nginx 或 Apache)
-
✅ Nginx 示例(两个 server 块):
# /etc/nginx/sites-available/site1 server { listen 80; server_name site1.example.com; root /var/www/site1; index index.php; location / { try_files $uri $uri/ /index.php?$args; } location ~ .php$ { include snippets/fastcgi-php.conf; fastcgi_pass unix:/run/php/php8.2-fpm.sock; # 根据PHP版本调整 fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; } } # /etc/nginx/sites-available/site2(同理,改 root/server_name)启用:
ln -s /etc/nginx/sites-available/site1 /etc/nginx/sites-enabled/,然后nginx -t && systemctl reload nginx -
✅ Apache 示例(两个 VirtualHost):
<VirtualHost *:80> ServerName site1.example.com DocumentRoot /var/www/site1 <Directory /var/www/site1> AllowOverride All Require all granted </Directory> </VirtualHost>
-
-
分别安装 WordPress
访问http://site1.example.com和http://site2.example.com,按向导完成安装(自动使用各自数据库和配置)。
✅ 优势:完全隔离、无插件/主题冲突、可独立升级、SSL证书易管理(Let’s Encrypt 支持多域名)
⚠️ 注意:确保 DNS 已解析到该服务器 IP。
⚠️ 备选方案:子目录部署(如 example.com/site1/ 和 example.com/site2/)
适合测试或内部使用,但需额外配置,对 SEO 和 URL 美观性稍差。
关键要点:
- 每个子目录仍需独立 WordPress 安装(不共用
wp-content!) - 主站根目录不能已有 WordPress(否则需用多站点网络或重写规则)
- Nginx/Apache 需正确处理子目录的
index.php和重写(WordPress 默认.htaccess不直接支持嵌套,需手动适配)
📌 强烈建议:若坚持子目录,优先考虑 WordPress 多站点网络(Multisite)(见下文),而非手动双安装。
🌐 进阶方案:WordPress 多站点网络(Multisite)
官方支持的“一个安装、多个站点”方案,适合管理关联站点(如公司旗下多个部门博客)。
适用场景:
- 共享用户系统、统一后台管理、插件/主题集中启用
- 所有站点同属一个品牌/组织
- ✅ 要求:必须使用子域名(
site1.example.com,site2.example.com)或子目录(example.com/site1/)模式
快速启用步骤:
- 在
wp-config.php中添加(在/* That's all, stop editing! */之前):define('WP_ALLOW_MULTISITE', true); - 登录后台 → 工具 → 网络设置 → 选择子域名或子目录 → 安装
- 按提示修改
wp-config.php和.htaccess(Apache)或 Nginx 配置 - 创建新站点:后台 → 我的站点 → 网络管理 → 站点 → 添加新站点
✅ 优势:统一更新、用户共享、节省资源
❌ 缺点:插件兼容性要求高;子目录模式对 SEO 友好度较低;迁移复杂。
❌ 不推荐的做法(务必避免):
| 方式 | 问题 |
|---|---|
| 共用同一数据库 + 不同表前缀 | 表前缀仅防命名冲突,无法解决插件数据混杂、缓存污染、升级风险 |
共用 wp-content 目录 |
主题/插件/上传文件互相覆盖,极易导致功能异常或安全漏洞 |
| 硬链接或符号链接共享核心文件 | WordPress 更新会破坏所有站点,违反安全最佳实践 |
🔐 安全与运维建议:
- ✅ 每个站点使用独立 PHP-FPM pool(提升隔离性 & 资源限制)
- ✅ 为每个站点配置独立 SSL 证书(Certbot 支持多域名:
certbot -d site1.com -d site2.com) - ✅ 数据库用户权限严格限定(只授予对应库的
ALL,禁止跨库访问) - ✅ 定期备份:分开备份数据库 + 文件(勿合并)
- ✅ 使用不同管理员用户名/密码,禁用默认
admin账户
✅ 总结:如何选择?
| 需求 | 推荐方案 |
|---|---|
| 两个完全独立的网站(如个人博客 + 客户官网) | ✅ 独立子域名/域名(最推荐) |
| 同一品牌下的多个栏目/地区站(需统一登录) | ✅ WordPress Multisite(子域名模式更稳定) |
| 临时测试/开发环境 | ✅ 独立子目录 + Docker 容器(进一步隔离) |
| 资源极度受限且技术可控 | ✅ Multisite 子目录(需仔细测试插件兼容性) |
需要我为你提供:
- ✅ 完整的 Nginx + PHP-FPM + MySQL 一键部署脚本?
- ✅ WordPress Multisite 子域名详细配置(含 DNS 和 Nginx 重写)?
- ✅ Docker Compose 方案(每个 WordPress 独立容器)?
欢迎告诉我你的服务器环境(Ubuntu/CentOS?Nginx/Apache?是否已有 WordPress?),我可以给出定制化命令和配置文件 👇
云小栈