在一台服务器上部署两个独立的WordPress站点可以通过多种方式实现,以下是常见的几种方法及详细步骤:
方法1:使用不同的端口
适用场景:临时测试或内部使用,无需域名。
-
安装第一个WordPress
- 默认安装到Web根目录(如
/var/www/html/site1),通过http://服务器IP访问。
- 默认安装到Web根目录(如
-
安装第二个WordPress
- 创建新目录(如
/var/www/html/site2),上传WordPress文件。 - 配置Web服务器监听不同端口(如8080):
- Nginx示例:
server { listen 8080; root /var/www/html/site2; # 其他配置同常规WordPress } - 访问方式:
http://服务器IP:8080
- Nginx示例:
- 创建新目录(如
缺点:需手动输入端口,不利于SEO,不适合生产环境。
方法2:使用子目录
适用场景:共享同一域名,站点路径不同(如 example.com/site2)。
-
主站点
- 安装到
/var/www/html,通过example.com访问。
- 安装到
-
子目录站点
- 创建子目录(如
/var/www/html/site2),安装WordPress。 - 修改Nginx/Apache配置,确保子目录可独立访问:
- Nginx示例:
location /site2 { alias /var/www/html/site2; try_files $uri $uri/ /site2/index.php?$args; }
- Nginx示例:
- 访问方式:
example.com/site2
- 创建子目录(如
注意:需调整WordPress的 Site URL(在设置→常规中修改)。
方法3:使用虚拟主机(不同域名)
适用场景:生产环境,两个独立域名(如 site1.com 和 site2.com)。
-
配置DNS
- 将两个域名解析到服务器IP。
-
Web服务器配置
-
Nginx示例(两个独立的
server块):# 站点1 server { listen 80; server_name site1.com; root /var/www/html/site1; # WordPress标准配置... } # 站点2 server { listen 80; server_name site2.com; root /var/www/html/site2; # WordPress标准配置... } - Apache示例:使用
<VirtualHost>分别配置。
-
-
安装WordPress
- 分别上传到
/var/www/html/site1和/var/www/html/site2,通过域名访问完成安装。
- 分别上传到
优点:完全隔离,适合正式业务。
方法4:使用Docker容器
适用场景:需要环境隔离或快速部署。
-
安装Docker
curl -fsSL https://get.docker.com | sh -
启动两个WordPress容器
# 站点1(端口8080) docker run --name wp1 -p 8080:80 -e WORDPRESS_DB_HOST=db -e WORDPRESS_DB_USER=user -e WORDPRESS_DB_PASSWORD=pass -d wordpress # 站点2(端口8081) docker run --name wp2 -p 8081:80 -e WORDPRESS_DB_HOST=db -e WORDPRESS_DB_USER=user -e WORDPRESS_DB_PASSWORD=pass -d wordpress- 需配合MySQL容器或外部数据库。
优点:隔离性强,扩展方便。
关键注意事项
-
数据库隔离
- 为每个WordPress创建独立的数据库和用户(如
wp_db1和wp_db2)。
- 为每个WordPress创建独立的数据库和用户(如
-
资源分配
- 监控服务器资源(CPU、内存),避免因多个站点过载。
-
HTTPS配置
- 使用Let’s Encrypt为每个域名免费申请SSL证书(如
certbot --nginx -d site1.com -d site2.com)。
- 使用Let’s Encrypt为每个域名免费申请SSL证书(如
-
备份策略
- 分别备份两个站点的文件和数据库。
总结建议
- 生产环境:优先选择 虚拟主机(不同域名) 或 Docker。
- 测试环境:可用子目录或不同端口快速部署。
根据需求选择合适的方式,并确保服务器配置足够支持两个站点的流量。
云服务器