如何在一个服务器上搭建多个wordpress?

在一个服务器上搭建多个 WordPress 站点是完全可行的,常见的方法有以下几种:


✅ 一、使用不同的子目录(Subdirectory)部署多个 WordPress

适用场景:

  • 同一个域名下,比如 example.com/site1example.com/site2

步骤:

  1. 安装第一个 WordPress 到根目录(如 /var/www/html
  2. 创建新文件夹用于第二个站点,例如:/var/www/html/site1
  3. 下载并解压另一个 WordPress 到这个文件夹
  4. 为每个 WordPress 创建独立数据库和数据库用户
  5. 配置 wp-config.php 文件,连接各自的数据库
  6. 通过浏览器访问 example.com/site1/wp-admin/install.php 安装

✅ 二、使用子域名(Subdomain)部署多个 WordPress

适用场景:

  • 多个子域名,如 site1.example.comsite2.example.com

步骤:

  1. 在服务器上创建不同目录,例如:
    • /var/www/site1
    • /var/www/site2
  2. 分别为每个目录安装 WordPress
  3. 配置 Web 服务器(Apache/Nginx)虚拟主机指向对应目录
  4. 为每个站点配置独立数据库
  5. 配置 DNS 添加子域名 A 记录或 CNAME 指向服务器 IP

Apache 示例配置:

<VirtualHost *:80>
    ServerName site1.example.com
    DocumentRoot /var/www/site1
</VirtualHost>

<VirtualHost *:80>
    ServerName site2.example.com
    DocumentRoot /var/www/site2
</VirtualHost>

Nginx 示例配置:

server {
    listen 80;
    server_name site1.example.com;
    root /var/www/site1;
    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;
    }
}

✅ 三、使用多站点网络(WordPress Multisite)

适用场景:

  • 所有网站共用一个后台管理界面,适合统一管理多个博客/站点

步骤:

  1. 启用 WordPress 多站点功能
    • 修改 wp-config.php,添加:
      define('WP_ALLOW_MULTISITE', true);
  2. 进入仪表盘 > 工具 > 配置网络
  3. 选择子域名或子目录模式
  4. 根据提示修改 wp-config.php.htaccess 或 Nginx 配置
  5. 创建新站点即可

⚠️ 注意:Multisite 中插件、主题等资源是共享的,权限管理和安全策略需要更细致。


✅ 四、使用 Docker 容器化部署多个 WordPress

适用场景:

  • 想要快速部署多个隔离环境的 WordPress 站点

示例命令(Docker Compose):

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

然后访问:

  • http://localhost:8001
  • http://localhost:8002

🔐 小贴士:

  • 每个 WordPress 使用独立数据库
  • 保持更新和备份,防止相互影响
  • 如果是生产环境,建议配合 HTTPS(可以用 Let’s Encrypt)

📌 总结对比:

方法 优点 缺点
子目录 易于部署 URL 结构不优雅
子域名 多个独立域名 需要 DNS 设置
多站点网络 统一管理 插件兼容性问题
Docker 环境隔离好 技术门槛稍高

如果你告诉我你使用的服务器系统(如 Ubuntu)、Web 服务器(Nginx/Apache)以及用途,我可以给出更具体的部署指南。需要吗?