加油
努力

在同一台服务器上搭建多个WordPress网站的方法是什么?

在同一台服务器上搭建多个 WordPress 网站是常见需求,可以通过以下几种方法实现。以下是详细步骤和推荐方案:


✅ 方法一:使用虚拟主机(Virtual Hosts) + Apache/Nginx(推荐)

适用于 Linux 服务器(如 Ubuntu/CentOS),通过配置 Web 服务器为每个网站分配独立的域名或子域名。

步骤概览:

  1. 安装 LAMP 或 LEMP 环境

    • LAMP:Linux + Apache + MySQL/MariaDB + PHP
    • LEMP:Linux + Nginx + MySQL/MariaDB + PHP

    示例(Ubuntu 上安装 LAMP):

    sudo apt update
    sudo apt install apache2 mysql-server php libapache2-mod-php php-mysql
  2. 为每个 WordPress 站点创建独立目录

    sudo mkdir -p /var/www/site1.com
    sudo mkdir -p /var/www/site2.com
  3. 下载并解压 WordPress 到各个目录

    cd /tmp && wget https://wordpress.org/latest.tar.gz
    tar -xzf latest.tar.gz
    sudo cp -r wordpress/* /var/www/site1.com/
    sudo chown -R www-data:www-data /var/www/site1.com
  4. 为每个站点创建独立数据库

    CREATE DATABASE wp_site1;
    CREATE USER 'user1'@'localhost' IDENTIFIED BY 'strongpassword';
    GRANT ALL PRIVILEGES ON wp_site1.* TO 'user1'@'localhost';
    FLUSH PRIVILEGES;

    同理创建 wp_site2 和用户 user2

  5. 配置虚拟主机(Apache 示例)
    创建配置文件:

    sudo nano /etc/apache2/sites-available/site1.com.conf

    内容如下:

    <VirtualHost *:80>
        ServerName site1.com
        ServerAlias www.site1.com
        DocumentRoot /var/www/site1.com
        <Directory /var/www/site1.com>
            AllowOverride All
        </Directory>
        ErrorLog ${APACHE_LOG_DIR}/site1_error.log
        CustomLog ${APACHE_LOG_DIR}/site1_access.log combined
    </VirtualHost>

    同样创建 site2.com.conf

  6. 启用站点并重启 Apache

    sudo a2ensite site1.com.conf
    sudo a2ensite site2.com.conf
    sudo systemctl reload apache2
  7. 完成 WordPress 安装
    访问 http://site1.com,按向导填写数据库信息完成安装。


✅ 方法二:使用子目录部署多个 WordPress(共享主域名)

例如:

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

操作方式:

  • 将不同 WordPress 实例放在 /var/www/html/blog1, /var/www/html/blog2
  • 配置时注意 .htaccess 和数据库前缀避免冲突
  • 适合内容隔离但共享主域名的场景

⚠️ 注意:需修改 wp-config.php 中的 $table_prefix 避免数据库表名冲突。


✅ 方法三:使用 Docker 容器化部署(高级推荐)

每个 WordPress 独立容器,环境隔离、易于管理。

示例(使用 docker-compose):

# docker-compose.yml
version: '3.8'
services:
  db1:
    image: mysql:8.0
    environment:
      MYSQL_ROOT_PASSWORD: rootpass
      MYSQL_DATABASE: wp_site1
      MYSQL_USER: user1
      MYSQL_PASSWORD: pass1
    volumes:
      - db1_data:/var/lib/mysql

  wordpress1:
    image: wordpress:latest
    depends_on:
      - db1
    environment:
      WORDPRESS_DB_HOST: db1:3306
      WORDPRESS_DB_USER: user1
      WORDPRESS_DB_PASSWORD: pass1
      WORDPRESS_DB_NAME: wp_site1
    ports:
      - "8080:80"
    volumes:
      - wp1_data:/var/www/html

  db2:
    image: mysql:8.0
    environment:
      MYSQL_ROOT_PASSWORD: rootpass
      MYSQL_DATABASE: wp_site2
      MYSQL_USER: user2
      MYSQL_PASSWORD: pass2
    volumes:
      - db2_data:/var/lib/mysql

  wordpress2:
    image: wordpress:latest
    depends_on:
      - db2
    environment:
      WORDPRESS_DB_HOST: db2:3306
      WORDPRESS_DB_USER: user2
      WORDPRESS_DB_PASSWORD: pass2
      WORDPRESS_DB_NAME: wp_site2
    ports:
      - "8081:80"
    volumes:
      - wp2_data:/var/www/html

volumes:
  db1_data:
  db2_data:
  wp1_data:
  wp2_data:

运行:

docker-compose up -d

访问:

  • http://your-server-ip:8080 → 第一个网站
  • http://your-server-ip:8081 → 第二个网站

可配合 Nginx 反向X_X绑定域名,实现 site1.comsite2.com 的正常访问。


✅ 方法四:使用宝塔面板(可视化管理,适合新手)

  1. 安装宝塔面板(bt.cn)
  2. 登录后台,添加多个“网站”
  3. 为每个网站设置域名、根目录、PHP 版本
  4. 上传 WordPress 文件到对应目录
  5. 创建数据库并完成安装向导

优点:图形化操作,无需命令行。


🔐 安全建议

  • 为每个站点使用独立数据库和用户
  • 设置正确的文件权限(www-data 所属)
  • 定期更新 WordPress 核心、主题和插件
  • 使用 SSL(Let’s Encrypt 免费证书)
  • 避免使用 root 权限运行服务

总结

方法 适用人群 优点 缺点
虚拟主机(Apache/Nginx) 中级用户 高效、标准、性能好 需要手动配置
子目录部署 初学者 简单易操作 域名结构不优雅
Docker 容器 高级用户 隔离性好、可扩展 学习成本高
宝塔面板 新手 图形化、一键部署 占用资源稍多

📌 推荐:生产环境使用「虚拟主机 + Nginx」或「Docker」;测试/学习可用「宝塔」

如有具体环境(如 Ubuntu + Nginx),我可以提供更详细的配置文件。

云服务器