在同一个服务器(无论是物理机、虚拟机还是云服务器如阿里云 ECS、腾讯云 CVM)上搭建两个独立的 WordPress 网站,核心思路是“资源隔离”与“路由区分”。
这通常有两种主流实现路径:
- 多站点网络模式(WordPress Multisite):适合管理多个主题相似、用户重叠的子站。
- 独立实例模式(推荐):两个完全独立的 WordPress 安装,通过不同的域名或子域名访问,互不干扰,安全性更高,扩展性更好。
鉴于大多数用户追求稳定性、安全性和易于维护,我将重点讲解“独立实例模式”,这是最通用、最稳妥的方案。
✅ 方案一:独立实例模式(推荐)
🎯 适用场景
- 两个网站内容无关
- 希望各自拥有独立的后台、插件、主题
- 避免一个网站被攻击影响另一个
🛠️ 前提条件
- 一台 Linux 服务器(CentOS 7/8, Ubuntu 20.04+ 等)
- 已安装 LAMP 或 LNMP 环境(Linux + Nginx/Apache + MySQL/MariaDB + PHP)
- 至少两个域名(或一个主域名 + 一个子域名),并已解析到该服务器 IP
💡 如果你还没有环境,推荐使用宝塔面板(BT Panel)或一键脚本(如 LNMP.org)快速部署,降低操作门槛。
🔧 详细步骤(以 Nginx + PHP-FPM + MariaDB 为例)
第一步:创建数据库和用户
登录 MySQL/MariaDB:
mysql -u root -p
为第一个网站创建数据库和用户:
CREATE DATABASE wp_site1 CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
CREATE USER 'wp_user1'@'localhost' IDENTIFIED BY 'StrongPassword1!';
GRANT ALL PRIVILEGES ON wp_site1.* TO 'wp_user1'@'localhost';
FLUSH PRIVILEGES;
为第二个网站重复操作:
CREATE DATABASE wp_site2 CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
CREATE USER 'wp_user2'@'localhost' IDENTIFIED BY 'StrongPassword2!';
GRANT ALL PRIVILEGES ON wp_site2.* TO 'wp_user2'@'localhost';
FLUSH PRIVILEGES;
EXIT;
⚠️ 注意:使用强密码,避免使用简单口令。
第二步:下载并解压两个 WordPress 实例
假设你的网站根目录在 /var/www/html
cd /var/www/html
# 下载 WordPress
wget https://wordpress.org/latest.tar.gz
# 解压并重命名
tar xzvf latest.tar.gz
mv wordpress site1
mv wordpress site2 # 或者重新下载一次,避免覆盖
rm latest.tar.gz
设置权限(确保 Web 服务器用户可读写):
chown -R www-data:www-data /var/www/html/site1
chown -R www-data:www-data /var/www/html/site2
chmod -R 755 /var/www/html/site1
chmod -R 755 /var/www/html/site2
📌
www-data是 Debian/Ubuntu 系统默认 Web 用户;CentOS 可能是nginx或apache,请根据实际调整。
第三步:配置 Nginx 虚拟主机(Server Block)
创建两个配置文件:
文件1:/etc/nginx/conf.d/site1.conf
server {
listen 80;
server_name www.site1.com site1.com;
root /var/www/html/site1;
index index.php index.html index.htm;
location / {
try_files $uri $uri/ /index.php?$args;
}
location ~ .php$ {
fastcgi_pass unix:/run/php/php8.1-fpm.sock; # 根据PHP版本调整
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
location ~ /.ht {
deny all;
}
}
文件2:/etc/nginx/conf.d/site2.conf
server {
listen 80;
server_name www.site2.com site2.com;
root /var/www/html/site2;
index index.php index.html index.htm;
location / {
try_files $uri $uri/ /index.php?$args;
}
location ~ .php$ {
fastcgi_pass unix:/run/php/php8.1-fpm.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
location ~ /.ht {
deny all;
}
}
🔄 如果两个网站共用同一个域名但不同子域名(如
blog.example.com和shop.example.com),只需修改server_name即可。
测试配置并重载 Nginx:
nginx -t
systemctl reload nginx
第四步:完成 WordPress 安装
浏览器访问:
http://www.site1.com→ 按提示安装第一个 WordPresshttp://www.site2.com→ 安装第二个 WordPress
输入对应的数据库名、用户名、密码即可完成安装。
第五步(可选):启用 HTTPS(SSL 证书)
推荐使用 Let’s Encrypt 免费证书:
certbot --nginx -d www.site1.com -d site1.com
certbot --nginx -d www.site2.com -d site2.com
Certbot 会自动修改 Nginx 配置并重启服务。
🆚 方案二:WordPress Multisite(多站点网络)
如果你希望两个网站共享同一套代码、插件库、用户体系,可以使用 WP Multisite。
启用步骤:
- 编辑
wp-config.php,添加:
define('WP_ALLOW_MULTISITE', true);
-
登录后台 → 工具 → 网络设置 → 选择“子目录”或“子域名”模式 → 安装
-
按照提示修改
wp-config.php和.htaccess(Apache)或 Nginx 配置 -
新增站点:后台 → 我的站点 → 网络管理员 → 站点 → 添加新站点
⚠️ 缺点:所有站点共用数据库前缀(可通过自定义表前缀缓解)、插件冲突风险高、备份恢复复杂。仅建议用于小型团队内部多站点管理。
🛡️ 安全与维护建议
- 定期备份:使用插件(如 UpdraftPlus)或手动备份数据库 + 文件。
- 更新组件:保持 WordPress 核心、主题、插件最新。
- 限制登录尝试:安装 Login Lockdown 或使用云防火墙。
- 禁用文件编辑:在
wp-config.php中添加:
define('DISALLOW_FILE_EDIT', true);
- 监控资源使用:两个站点共用服务器,注意 CPU/内存/磁盘 I/O,必要时升级配置或拆分到不同服务器。
📊 性能优化建议
- 启用 OPcache 和 Redis/Memcached 对象缓存
- 使用 CDN(如 Cloudflare、阿里云 CDN)提速静态资源
- 图片压缩(短链接、WebP 格式)
- 静态页面缓存(Nginx FastCGI Cache 或 Redis 缓存)
❓ 常见问题解答
Q:两个网站会不会互相影响?
A:在独立实例模式下,只要权限配置正确,它们是完全隔离的。但若服务器资源耗尽(如内存溢出),两者都会受影响。因此需合理分配资源。
Q:能否用不同 PHP 版本?
A:可以,但需要配置多个 PHP-FPM 进程池,并在 Nginx 中指定不同的 fastcgi_pass。复杂度较高,新手慎用。
Q:SEO 是否受影响?
A:不影响。每个网站有独立 URL、sitemap、robots.txt,搜索引擎会分别收录。
✅ 总结
| 方案 | 优点 | 缺点 | 推荐指数 |
|---|---|---|---|
| 独立实例 | 隔离性好、易维护、安全 | 占用稍多资源 | ⭐⭐⭐⭐⭐ |
| Multisite | 集中管理、共享资源 | 耦合度高、难调试 | ⭐⭐⭐ |
对于绝大多数用户,强烈推荐使用独立实例模式。它结构清晰、故障隔离、便于迁移和扩容,符合现代运维最佳实践。
如需进一步自动化部署,可结合 Ansible、Docker 或 CI/CD 流程,提升效率与一致性。
如有具体报错或环境差异(如 Apache vs Nginx、CentOS vs Ubuntu),欢迎提供详细信息,我可给出针对性解决方案。
云技术博客