加油
努力

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

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


✅ 方法一:使用虚拟主机(Virtual Hosts) + 子目录或子域名

适用于 Apache 或 Nginx 服务器,通过配置不同的虚拟主机来运行多个独立的 WordPress 站点。

步骤概览:

  1. 准备服务器环境

    • 操作系统:Ubuntu / CentOS(推荐)
    • Web 服务器:Apache 或 Nginx
    • 数据库:MySQL/MariaDB
    • PHP 环境(PHP 7.4+)
  2. 为每个站点创建独立的目录

# 创建两个站点的根目录
sudo mkdir -p /var/www/site1.com
sudo mkdir -p /var/www/site2.com
  1. 下载并安装 WordPress 到每个目录
cd /var/www/site1.com
wget https://wordpress.org/latest.tar.gz
tar -xzf latest.tar.gz --strip-components=1

site2.com 重复此操作。

  1. 为每个站点创建独立的数据库
CREATE DATABASE wordpress_site1;
CREATE DATABASE wordpress_site2;
CREATE USER 'user_site1'@'localhost' IDENTIFIED BY 'strong_password';
CREATE USER 'user_site2'@'localhost' IDENTIFIED BY 'strong_password';

GRANT ALL PRIVILEGES ON wordpress_site1.* TO 'user_site1'@'localhost';
GRANT ALL PRIVILEGES ON wordpress_site2.* TO 'user_site2'@'localhost';

FLUSH PRIVILEGES;
  1. 配置 Web 服务器(以 Nginx 为例)

创建两个配置文件:

/etc/nginx/sites-available/site1.com

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

/etc/nginx/sites-available/site2.com

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

启用站点:

sudo ln -s /etc/nginx/sites-available/site1.com /etc/nginx/sites-enabled/
sudo ln -s /etc/nginx/sites-available/site2.com /etc/nginx/sites-enabled/
sudo nginx -t && sudo systemctl reload nginx
  1. 完成 WordPress 安装
    • 访问 http://site1.comhttp://site2.com
    • 按照向导填写数据库信息(分别使用各自的数据库)
    • 完成安装

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

如果你只有一个域名,但想运行多个 WordPress,可以放在不同子目录中:

  • example.com/blog1/
  • example.com/blog2/

注意:不推荐用“多站点网络(Multisite)”时随意混用子目录和子域名,需提前规划。

配置示例(Nginx):

server {
    server_name example.com;

    location /blog1/ {
        alias /var/www/blog1/;
        index index.php;
        try_files $uri $uri/ /blog1/index.php?$args;
    }

    location /blog2/ {
        alias /var/www/blog2/;
        index index.php;
        try_files $uri $uri/ /blog2/index.php?$args;
    }

    # 处理 PHP
    location ~ ^/(blog1|blog2)/(.+.php)$ {
        alias /var/www/$1/$2;
        include snippets/fastcgi-php.conf;
        fastcgi_pass unix:/run/php/php8.1-fpm.sock;
    }
}

然后在对应目录安装 WordPress 即可。


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

如果你想用一个 WordPress 实例管理多个站点(共享用户、插件等),可以启用 Multisite 功能。

启用步骤:

  1. wp-config.php 中添加:

    define('WP_ALLOW_MULTISITE', true);
  2. 登录后台 → 工具 → 网络设置 → 选择子域名或子目录模式。

  3. 按提示添加配置代码到 wp-config.php.htaccess(Apache)或 Nginx 规则。

⚠️ 注意:

  • 多站点适合品牌统一管理多个子站。
  • 一旦启用,后期难以关闭。
  • 插件和主题对所有站点共享(可单独启用)。

🔐 安全与维护建议

  1. 每个站点使用独立数据库用户,避免权限扩散。
  2. 定期更新 WordPress、主题和插件
  3. 使用缓存插件(如 WP Super Cache)提升性能。
  4. 配置 SSL(Let’s Encrypt 免费证书):
    sudo certbot --nginx -d site1.com -d www.site1.com
  5. 设置文件权限:
    sudo chown -R www-data:www-data /var/www/site1.com
    sudo find /var/www/site1.com -type d -exec chmod 755 {} ;
    sudo find /var/www/site1.com -type f -exec chmod 644 {} ;

总结对比

方法 优点 缺点 适用场景
独立虚拟主机 完全隔离,安全灵活 资源占用略高 多个独立客户网站
子目录部署 节省域名 管理稍复杂 同一主站下多个栏目
WordPress 多站点 统一管理,共享用户 故障影响大,配置复杂 品牌旗下多个子站

✅ 推荐:使用独立虚拟主机 + 独立数据库 是最清晰、安全、易维护的方式。

如有具体环境(如 Ubuntu + Nginx + PHP 8.1),我可以提供完整脚本配置。需要的话请告诉我你的服务器环境。

云服务器