一个服务器搭建两个WordPress网站?

是的,一个服务器可以搭建两个(甚至多个)WordPress网站。这在实际应用中非常常见,无论是个人博客、企业官网,还是为客户托管多个站点,都可以通过合理配置实现。

以下是几种常见的实现方式:


✅ 方法一:使用虚拟主机(Virtual Hosts)——推荐(适用于 Apache 或 Nginx)

这是最常见的方式,适用于 Linux 服务器(如 Ubuntu/CentOS),通过 Web 服务器(Apache 或 Nginx)配置不同的“虚拟主机”来区分多个网站。

示例:Nginx 配置两个 WordPress 站点

  1. 准备两个域名或子域名

    • site1.com
    • site2.comblog.yoursite.com
  2. 为每个网站创建独立目录

    /var/www/site1
    /var/www/site2
  3. 分别下载并安装 WordPress 到两个目录

    cd /var/www/site1 && wget https://wordpress.org/latest.tar.gz
    tar -xzf latest.tar.gz --strip-components=1
    # 同样操作 site2
  4. 创建两个数据库(或同一个数据库不同前缀)

    CREATE DATABASE wordpress_site1;
    CREATE DATABASE wordpress_site2;
    CREATE USER 'wpuser1'@'localhost' IDENTIFIED BY 'password';
    GRANT ALL ON wordpress_site1.* TO 'wpuser1'@'localhost';
    -- 同样配置 site2
  5. 配置 Nginx 虚拟主机

    创建两个配置文件:

    # /etc/nginx/sites-available/site1.com
    server {
       listen 80;
       server_name site1.com www.site1.com;
       root /var/www/site1;
       index index.php;
    
       location / {
           try_files $uri $uri/ /index.php?$args;
       }
    
       location ~ .php$ {
           include snippets/fastcgi-php.conf;
           fastcgi_pass unix:/var/run/php/php8.1-fpm.sock;
       }
    }
    # /etc/nginx/sites-available/site2.com
    server {
       listen 80;
       server_name site2.com www.site2.com;
       root /var/www/site2;
       index index.php;
    
       location / {
           try_files $uri $uri/ /index.php?$args;
       }
    
       location ~ .php$ {
           include snippets/fastcgi-php.conf;
           fastcgi_pass unix:/var/run/php/php8.1-fpm.sock;
       }
    }
  6. 启用站点

    ln -s /etc/nginx/sites-available/site1.com /etc/nginx/sites-enabled/
    ln -s /etc/nginx/sites-available/site2.com /etc/nginx/sites-enabled/
    nginx -t && systemctl reload nginx
  7. 分别访问域名进行 WordPress 安装


✅ 方法二:使用子目录部署(单服务器多站点)

如果你只有一个域名,也可以用子目录:

  • yoursite.com/blog1/
  • yoursite.com/blog2/

配置方法类似,只是 root 目录共享主站,每个子目录对应一个 WordPress 实例。

⚠️ 注意:如果是子目录结构,需确保 .htaccess 和 rewrite 规则正确,避免冲突。


✅ 方法三:使用 Docker(高级但灵活)

使用 Docker 可以更清晰地隔离环境:

# docker-compose.yml
version: '3.8'
services:
  db-site1:
    image: mysql:8.0
    environment:
      MYSQL_ROOT_PASSWORD: rootpass
      MYSQL_DATABASE: wordpress1
      MYSQL_USER: wp1
      MYSQL_PASSWORD: wp1pass

  wordpress1:
    image: wordpress:latest
    ports:
      - "8080:80"
    environment:
      WORDPRESS_DB_HOST: db-site1
      WORDPRESS_DB_USER: wp1
      WORDPRESS_DB_PASSWORD: wp1pass
      WORDPRESS_DB_NAME: wordpress1
    volumes:
      - ./site1:/var/www/html

  db-site2:
    image: mysql:8.0
    environment:
      MYSQL_ROOT_PASSWORD: rootpass
      MYSQL_DATABASE: wordpress2
      MYSQL_USER: wp2
      MYSQL_PASSWORD: wp2pass

  wordpress2:
    image: wordpress:latest
    ports:
      - "8081:80"
    environment:
      WORDPRESS_DB_HOST: db-site2
      WORDPRESS_DB_USER: wp2
      WORDPRESS_DB_PASSWORD: wp2pass
      WORDPRESS_DB_NAME: wordpress2
    volumes:
      - ./site2:/var/www/html

然后通过反向X_X(Nginx)将不同域名指向不同容器端口。


✅ 方法四:WordPress 多站点网络(Multisite)

如果你想用一个 WordPress 安装管理多个站点,可以启用 WordPress 的“多站点”功能:

  • 子域名形式:site1.yoursite.com, site2.yoursite.com
  • 子目录形式:yoursite.com/site1, yoursite.com/site2

缺点:所有站点共享用户、插件、主题系统,管理统一,灵活性较低。


🧩 总结:如何选择?

需求 推荐方案
完全独立的两个网站(不同域名) 虚拟主机(Nginx/Apache)
快速部署、环境隔离 Docker
共享一个域名下的多个博客 WordPress Multisite
测试或开发多个项目 子目录 + 虚拟主机

🔐 安全建议

  • 每个站点使用独立数据库和用户。
  • 设置正确的文件权限(www-data 用户)。
  • 定期更新 WordPress、主题和插件。
  • 使用 SSL(Let’s Encrypt 免费证书)。

如果你提供你的服务器环境(如:Ubuntu + Nginx + PHP 还是宝塔面板?),我可以给出更具体的配置步骤。