在一台服务器上运行两个独立的WordPress站点是完全可行的,以下是几种常见的实现方法及注意事项:
一、主要实现方案
-
使用不同端口
- 修改Nginx/Apache配置,让两个站点监听不同端口(如80和8080)
-
示例Nginx配置:
server { listen 80; server_name site1.com; root /var/www/site1; # WordPress配置... } server { listen 8080; server_name site2.com; root /var/www/site2; # WordPress配置... } - 缺点:非标准端口影响用户体验(需在URL后加端口号)
-
基于子目录
- 主站点:
example.com - 子目录站点:
example.com/site2 - 需特别注意两个站点的
.htaccess规则避免冲突
- 主站点:
-
虚拟主机(推荐方案)
- 通过不同域名区分(需解析两个域名到服务器IP)
-
典型Nginx配置:
server { server_name site1.com; root /var/www/site1; index index.php; # 其他WordPress规则... } server { server_name site2.com; root /var/www/site2; index index.php; # 其他WordPress规则... }
-
Docker容器
- 每个WordPress运行在独立容器中
-
使用docker-compose管理:
version: '3' services: wordpress1: image: wordpress ports: - "8000:80" volumes: - ./site1:/var/www/html wordpress2: image: wordpress ports: - "8001:80" volumes: - ./site2:/var/www/html
二、数据库配置
- 推荐方案:创建两个独立数据库(如
wp_site1和wp_site2) -
同一数据库不同前缀(需修改wp-config.php):
// 站点1 $table_prefix = 'wp1_'; // 站点2 $table_prefix = 'wp2_';
三、资源分配建议
-
对PHP进程进行限制(防止单个站点耗尽资源):
; 在php-fpm配置中 pm.max_children = 30 ; 单个站点最大进程数 -
使用缓存插件减轻负载(如WP Super Cache)
四、安全注意事项
-
确保每个站点有独立的Linux系统用户
sudo useradd -m wpuser1 sudo chown -R wpuser1:wpuser1 /var/www/site1 -
定期隔离备份:
# 站点1备份 tar -czvf site1_backup.tar.gz /var/www/site1 /path/to/site1_db.sql
五、性能优化方案
-
为每个WordPress配置独立的OPCache:
[opcache] opcache.memory_consumption=128 opcache.interned_strings_buffer=16 -
使用不同的PHP版本(通过PHP-FPM池实现)
六、故障排查要点
-
权限问题检查:
find /var/www/site1 -type d -exec chmod 755 {} ; find /var/www/site1 -type f -exec chmod 644 {} ; -
日志检查:
- Nginx错误日志:
/var/log/nginx/error.log - PHP错误日志:
/var/log/php-fpm/error.log
- Nginx错误日志:
选择方案时,若有两个可用域名,虚拟主机是最优解;若为测试环境,Docker方案更便于管理。所有方案均需确保服务器资源(CPU/内存)足够支撑两个站点的并发访问。
云服务器