在同一个虚拟服务器上部署两套独立的WordPress站点是可行的,但需要合理规划资源和配置。以下是几种常见方案及详细步骤:
方案一:使用不同端口(不推荐长期使用)
适用场景:临时测试或开发环境。
缺点:用户需手动输入端口号(如 http://example.com:8080),不友好且可能被防火墙拦截。
-
安装第一套WordPress
- 默认安装在Web服务器根目录(如
/var/www/html/site1),通过http://example.com访问。
- 默认安装在Web服务器根目录(如
-
安装第二套WordPress
- 创建新目录(如
/var/www/html/site2)。 - 配置Web服务器监听不同端口(如8080):
# Apache示例(httpd.conf或虚拟主机文件) Listen 8080 <VirtualHost *:8080> DocumentRoot /var/www/html/site2 ServerName example.com </VirtualHost># Nginx示例(server块) server { listen 8080; root /var/www/html/site2; server_name example.com; # 其他WordPress配置... }
- 创建新目录(如
-
分别配置数据库
- 为两个站点创建独立的数据库(如
wp_site1和wp_site2)。
- 为两个站点创建独立的数据库(如
方案二:使用子目录(推荐简单部署)
适用场景:主站点和次要站点共享同一域名。
示例:http://example.com/site2
-
主站点安装
- 默认路径
/var/www/html,访问http://example.com。
- 默认路径
-
子目录站点安装
- 创建子目录
/var/www/html/site2。 - 在Web服务器中添加重写规则避免路径冲突:
# Apache的.htaccess(位于/site2) RewriteEngine On RewriteBase /site2/ RewriteRule ^index.php$ - [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /site2/index.php [L] - WordPress后台设置 Settings > General 中的
WordPress Address和Site Address为http://example.com/site2。
- 创建子目录
方案三:使用不同域名(推荐生产环境)
适用场景:两个独立域名(如 site1.com 和 site2.com)。
步骤:
-
配置DNS
- 将两个域名解析到服务器IP。
-
设置虚拟主机
-
Apache:
<VirtualHost *:80> ServerName site1.com DocumentRoot /var/www/html/site1 # 其他配置... </VirtualHost> <VirtualHost *:80> ServerName site2.com DocumentRoot /var/www/html/site2 </VirtualHost> -
Nginx:
server { listen 80; server_name site1.com; root /var/www/html/site1; # WordPress配置... } server { listen 80; server_name site2.com; root /var/www/html/site2; }
-
-
独立数据库
- 分别为两个站点创建数据库,并在各自的
wp-config.php中配置。
- 分别为两个站点创建数据库,并在各自的
方案四:Docker容器化(灵活隔离)
优势:资源隔离、便于迁移。
步骤:
- 安装Docker和Docker Compose。
- 为每个WordPress创建独立的
docker-compose.yml,指定不同端口和数据卷:# site1/docker-compose.yml version: '3' services: wordpress: image: wordpress:latest ports: - "8000:80" volumes: - ./wp-content:/var/www/html/wp-content environment: WORDPRESS_DB_HOST: db WORDPRESS_DB_NAME: wp_site1 # 其他环境变量... - 分别启动两个容器,通过不同端口(如8000和8001)访问。
注意事项
- 资源限制:虚拟服务器可能有CPU、内存限制,需监控资源使用。
- 备份策略:定期备份数据库和文件,避免相互影响。
- 安全隔离:确保每个站点有独立的用户权限(如PHP-FPM运行用户)。
- HTTPS配置:若使用域名,为每个站点申请SSL证书(可通过Let’s Encrypt免费获取)。
选择方案取决于需求:
- 测试/开发:方案一或四。
- 简单共享域名:方案二。
- 正式生产环境:方案三(域名分离)或四(容器化)。
云服务器