如何在同一台服务器上搭建多个WordPress站点?

在同一台服务器上搭建多个WordPress站点有多种方法,以下是几种主流方案:

一、使用虚拟主机控制面板(推荐新手)

cPanel/Plesk/DirectAdmin 等面板可一键部署:

  • 每个站点有独立FTP、数据库和域名绑定
  • 自动配置SSL证书(Let’s Encrypt)
  • 资源隔离和访问统计

二、手动配置方案(更灵活)

方案A:基于子域名(推荐)

example.com       → 主站
blog.example.com  → 第二个站点
shop.example.com  → 第三个站点

Nginx配置示例

# 主站点
server {
    server_name example.com;
    root /var/www/example;
    # WordPress配置...
}

# 子站点
server {
    server_name blog.example.com;
    root /var/www/blog;
    # WordPress配置...
}

方案B:基于子目录

example.com       → 主站
example.com/blog  → 第二个站点

需要配置WordPress地址和站点地址不同。

方案C:基于不同端口(临时测试用)

example.com:80   → 站点1
example.com:8080 → 站点2

三、详细步骤(以Ubuntu+Nginx为例)

1. 环境准备

# 安装LNMP
sudo apt update
sudo apt install nginx mysql-server php-fpm php-mysql php-curl php-gd php-mbstring php-xml php-xmlrpc php-zip

# 为每个站点创建目录
sudo mkdir -p /var/www/site1 /var/www/site2
sudo chown -R www-data:www-data /var/www/

2. 数据库设置

sudo mysql
# 为每个站点创建独立数据库和用户
CREATE DATABASE site1_db;
CREATE USER 'site1_user'@'localhost' IDENTIFIED BY '强密码';
GRANT ALL ON site1_db.* TO 'site1_user'@'localhost';
FLUSH PRIVILEGES;
# 重复以上步骤创建site2_db...

3. Nginx站点配置

# 复制默认配置
sudo cp /etc/nginx/sites-available/default /etc/nginx/sites-available/site1
sudo cp /etc/nginx/sites-available/default /etc/nginx/sites-available/site2

# 编辑site1配置
sudo nano /etc/nginx/sites-available/site1

site1配置内容

server {
    listen 80;
    server_name site1.com www.site1.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:/var/run/php/php8.1-fpm.sock;
    }

    location ~ /.ht {
        deny all;
    }
}

4. 启用站点

sudo ln -s /etc/nginx/sites-available/site1 /etc/nginx/sites-enabled/
sudo ln -s /etc/nginx/sites-available/site2 /etc/nginx/sites-enabled/
sudo nginx -t  # 测试配置
sudo systemctl reload nginx

5. 安装WordPress

# 下载并解压到每个站点目录
cd /var/www/site1
sudo wget https://wordpress.org/latest.tar.gz
sudo tar -xzvf latest.tar.gz --strip-components=1
sudo rm latest.tar.gz

# 复制配置文件
sudo cp wp-config-sample.php wp-config.php
sudo nano wp-config.php  # 修改数据库信息

四、高级方案

1. 使用Docker(推荐生产环境)

# docker-compose.yml 示例
version: '3'
services:
  wordpress1:
    image: wordpress:latest
    container_name: wp-site1
    ports:
      - "8080:80"
    environment:
      WORDPRESS_DB_HOST: db
      WORDPRESS_DB_NAME: site1_db
      WORDPRESS_DB_USER: site1_user
      WORDPRESS_DB_PASSWORD: password1

  wordpress2:
    image: wordpress:latest
    container_name: wp-site2
    ports:
      - "8081:80"
    environment:
      WORDPRESS_DB_HOST: db
      WORDPRESS_DB_NAME: site2_db
      WORDPRESS_DB_USER: site2_user
      WORDPRESS_DB_PASSWORD: password2

  db:
    image: mysql:8.0
    environment:
      MYSQL_ROOT_PASSWORD: root_password

2. 使用Multisite模式(单一安装管理多个站点)

  • 适合内容关联的站点群
  • 共享插件、主题和用户
  • 在wp-config.php中添加:define('WP_ALLOW_MULTISITE', true);

五、重要注意事项

  1. 资源分配:监控CPU、内存和磁盘使用
  2. 安全隔离:每个站点使用独立数据库用户
  3. 备份策略:分别备份每个站点的文件和数据库
  4. SSL证书:使用Let’s Encrypt为每个域名配置HTTPS
  5. 性能优化:考虑使用Redis/Memcached对象缓存

六、推荐工具

  • 管理面板:aaPanel(免费中文版)
  • 本地开发:Local by Flywheel
  • 批量管理:ManageWP或MainWP

选择方案时考虑:

  • 新手:使用控制面板
  • 开发者:手动配置或Docker
  • 企业多站点:WordPress Multisite
  • 完全隔离需求:独立安装或容器化

需要更详细的某个步骤说明吗?

云服务器