奋斗
努力

在同一个虚拟服务器部署2套wordpress?

云计算

在同一个虚拟服务器上部署两套独立的WordPress站点是可行的,但需要合理规划资源和配置。以下是几种常见方案及详细步骤:


方案一:使用不同端口(不推荐长期使用)

适用场景:临时测试或开发环境。
缺点:用户需手动输入端口号(如 http://example.com:8080),不友好且可能被防火墙拦截。

  1. 安装第一套WordPress

    • 默认安装在Web服务器根目录(如 /var/www/html/site1),通过 http://example.com 访问。
  2. 安装第二套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配置...
      }
  3. 分别配置数据库

    • 为两个站点创建独立的数据库(如 wp_site1wp_site2)。

方案二:使用子目录(推荐简单部署)

适用场景:主站点和次要站点共享同一域名。
示例http://example.com/site2

  1. 主站点安装

    • 默认路径 /var/www/html,访问 http://example.com
  2. 子目录站点安装

    • 创建子目录 /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 AddressSite Addresshttp://example.com/site2

方案三:使用不同域名(推荐生产环境)

适用场景:两个独立域名(如 site1.comsite2.com)。
步骤

  1. 配置DNS

    • 将两个域名解析到服务器IP。
  2. 设置虚拟主机

    • 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;
      }
  3. 独立数据库

    • 分别为两个站点创建数据库,并在各自的 wp-config.php 中配置。

方案四:Docker容器化(灵活隔离)

优势:资源隔离、便于迁移。
步骤

  1. 安装Docker和Docker Compose。
  2. 为每个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
         # 其他环境变量...
  3. 分别启动两个容器,通过不同端口(如8000和8001)访问。

注意事项

  1. 资源限制:虚拟服务器可能有CPU、内存限制,需监控资源使用。
  2. 备份策略:定期备份数据库和文件,避免相互影响。
  3. 安全隔离:确保每个站点有独立的用户权限(如PHP-FPM运行用户)。
  4. HTTPS配置:若使用域名,为每个站点申请SSL证书(可通过Let’s Encrypt免费获取)。

选择方案取决于需求:

  • 测试/开发:方案一或四。
  • 简单共享域名:方案二。
  • 正式生产环境:方案三(域名分离)或四(容器化)。
未经允许不得转载:云服务器 » 在同一个虚拟服务器部署2套wordpress?