一个服务器部署两个wordpress?

在一个服务器上部署两个 WordPress 站点是完全可行的,常见的做法有以下几种方式:


✅ 一、使用不同的域名或子目录部署两个 WordPress

方法1:使用不同域名(如 example1.comexample2.com

步骤如下:

  1. 配置虚拟主机(适用于 Apache 或 Nginx)

    • 配置两个不同的虚拟主机块,绑定不同的域名。
    • 每个虚拟主机指向不同的 WordPress 安装目录。

    Apache 示例:

    <VirtualHost *:80>
       ServerName example1.com
       DocumentRoot /var/www/wordpress1
       <Directory /var/www/wordpress1>
           Options Indexes FollowSymLinks
           AllowOverride All
           Require all granted
       </Directory>
    </VirtualHost>
    
    <VirtualHost *:80>
       ServerName example2.com
       DocumentRoot /var/www/wordpress2
       <Directory /var/www/wordpress2>
           Options Indexes FollowSymLinks
           AllowOverride All
           Require all granted
       </Directory>
    </VirtualHost>

    Nginx 示例:

    server {
       listen 80;
       server_name example1.com;
       root /var/www/wordpress1;
       index index.php index.html;
    
       location / {
           try_files $uri $uri/ /index.php?$args;
       }
    
       location ~ .php$ {
           include snippets/fastcgi-php.conf;
           fastcgi_pass unix:/run/php/php-fpm.sock;
       }
    }
    
    server {
       listen 80;
       server_name example2.com;
       root /var/www/wordpress2;
       index index.php index.html;
    
       location / {
           try_files $uri $uri/ /index.php?$args;
       }
    
       location ~ .php$ {
           include snippets/fastcgi-php.conf;
           fastcgi_pass unix:/run/php/php-fpm.sock;
       }
    }
  2. 分别安装两个 WordPress

    • 下载 WordPress 解压到 /var/www/wordpress1/var/www/wordpress2
    • 创建两个独立的数据库,并在各自的 wp-config.php 中配置对应的数据库信息。
  3. 重启 Web 服务

    sudo systemctl restart apache2
    # 或者
    sudo systemctl restart nginx

方法2:使用一个域名下的子目录(如 example.com/site1example.com/site2

这种方式适合共享主域名的情况。

步骤如下:

  1. 将两个 WordPress 分别放在:

    /var/www/html/site1
    /var/www/html/site2
  2. 配置 .htaccess 或 Nginx 规则支持子目录访问(WordPress 默认支持)。

  3. 在安装时确保正确设置站点地址和首页地址。


✅ 二、使用 Docker 部署多个 WordPress 实例(高级)

你也可以用 Docker Compose 同时运行多个 WordPress 容器,每个容器使用不同的端口、数据库和挂载目录。

version: '3'
services:
  wordpress1:
    image: wordpress
    ports:
      - "8001:80"
    environment:
      WORDPRESS_DB_NAME: wordpress1
      WORDPRESS_DB_USER: user1
      WORDPRESS_DB_PASSWORD: pass1
    volumes:
      - ./wordpress1:/var/www/html

  wordpress2:
    image: wordpress
    ports:
      - "8002:80"
    environment:
      WORDPRESS_DB_NAME: wordpress2
      WORDPRESS_DB_USER: user2
      WORDPRESS_DB_PASSWORD: pass2
    volumes:
      - ./wordpress2:/var/www/html

  mysql1:
    image: mysql:5.7
    environment:
      MYSQL_ROOT_PASSWORD: rootpass1
      MYSQL_DATABASE: wordpress1
      MYSQL_USER: user1
      MYSQL_PASSWORD: pass1
    volumes:
      - ./mysql1:/var/lib/mysql

  mysql2:
    image: mysql:5.7
    environment:
      MYSQL_ROOT_PASSWORD: rootpass2
      MYSQL_DATABASE: wordpress2
      MYSQL_USER: user2
      MYSQL_PASSWORD: pass2
    volumes:
      - ./mysql2:/var/lib/mysql

然后通过 http://localhost:8001http://localhost:8002 访问两个网站。


📝 注意事项:

  • 每个 WordPress 应该使用独立的数据库,避免冲突。
  • 如果使用相同的 PHP-FPM,注意区分 php.ini 设置或资源限制。
  • 若需绑定正式域名,请配置 SSL 证书(可以使用 Let’s Encrypt)。
  • 建议为每个站点配置独立的用户权限和日志路径,便于维护。

❓常见问题解答:

Q1:能否共用同一个数据库?

不推荐。容易造成表名冲突,管理复杂,建议使用独立数据库。

Q2:如何让两个站点共享用户数据?

可以通过插件(如 Multisite User Management)或自定义开发实现跨站登录同步。


如果你告诉我你使用的服务器环境(比如 Ubuntu + Apache 还是 CentOS + Nginx),我可以提供更具体的配置示例。

需要我帮你写完整的配置文件吗?

未经允许不得转载:CLOUD技术博 » 一个服务器部署两个wordpress?