WordPress多站点(Multisite)搭建指南:一台VPS管理10个子站的完整配置

WordPress Multisite(多站点网络)允许用一套WordPress程序、一台服务器,同时运行多个独立网站,共享主题和插件库,统一后台管理。对于SEO站群运营、多品牌企业、多语言站点来说,是大幅降低运维成本的利器。

一、Multisite适用场景

  • SEO站群:多个细分主题站共用一台服务器,独立域名、独立内容、统一管理
  • 多品牌企业:集团旗下多个品牌各有独立网站,共享开发和运维资源
  • 多语言站点:同一业务的英语、中文、西班牙语版本分站运营
  • 多区域子站:总站 + 各城市/地区子站的组合结构

二、开启Multisite前的准备

  • 全新WordPress安装(已有内容的站点开启Multisite可能遇到兼容问题)
  • 服务器:建议4核4G以上,多站点并发请求较高
  • 决定网络结构:子目录模式(site.com/shop/)或子域名模式(shop.site.com)
  • 若使用子域名模式,需在DNS中配置泛域名解析(*.yourdomain.com → 服务器IP)

三、开启WordPress Multisite

第一步:修改wp-config.php

/* 在 "That's all, stop editing!" 注释前添加 */
define('WP_ALLOW_MULTISITE', true);

第二步:进入后台安装网络

刷新WordPress后台,进入 工具 → 安装网络,选择子目录或子域名模式,按提示完成安装。WordPress会生成需要添加到 wp-config.php.htaccess 的代码。

第三步:更新wp-config.php

按WordPress提示,在wp-config.php中添加:

define('MULTISITE', true);
define('SUBDOMAIN_INSTALL', false); // 子目录模式为false,子域名模式为true
define('DOMAIN_CURRENT_SITE', 'yourdomain.com');
define('PATH_CURRENT_SITE', '/');
define('SITE_ID_CURRENT_SITE', 1);
define('BLOG_ID_CURRENT_SITE', 1);

四、Nginx多站点配置

子目录模式Nginx配置

server {
    listen 443 ssl http2;
    server_name yourdomain.com www.yourdomain.com;

    root /var/www/html;
    index index.php;

    # Multisite子目录规则
    if (!-e $request_filename) {
        rewrite /wp-admin$ $scheme://$host$uri/ permanent;
        rewrite ^(/[^/]+)?(/wp-.*) $2 last;
        rewrite ^(/[^/]+)?(/.*\.php) $2 last;
    }

    location / {
        try_files $uri $uri/ /index.php?$args;
    }

    location ~ \.php$ {
        fastcgi_pass unix:/run/php/php8.1-fpm.sock;
        fastcgi_index index.php;
        include fastcgi_params;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
    }

    # 多站点文件上传路径规则
    location ~* ^/files/(.+) {
        try_files /wp-content/blogs.dir/$blogid/$uri /wp-includes/ms-files.php?file=$1 =404;
        access_log off; log_not_found off;
        expires max;
    }
}

子域名模式额外配置

# 额外添加泛域名匹配
server {
    listen 443 ssl http2;
    server_name *.yourdomain.com;

    ssl_certificate /etc/letsencrypt/live/yourdomain.com/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/yourdomain.com/privkey.pem;

    root /var/www/html;
    # ... 其余配置同上
}

泛域名SSL证书申请

# Let's Encrypt通配符证书(需要DNS验证)
certbot certonly --manual --preferred-challenges dns \
  -d yourdomain.com \
  -d *.yourdomain.com

五、为子站映射独立域名

Multisite默认使用子目录或子域名,但可以为每个子站配置完全独立的域名(如 shop.com、blog.net),这是SEO站群的常用模式。

安装WordPress MU Domain Mapping插件

  1. 网络后台 → 插件 → 安装 WordPress MU Domain MappingMercator
  2. 网络后台 → 站点 → 选择某个站点 → 编辑 → 在"域名"字段填入独立域名
  3. 在DNS控制台将独立域名的A记录指向同一台服务器IP
  4. 为新域名申请独立SSL证书(或使用通配符证书覆盖)

六、性能优化建议

优化方向具体措施效果
数据库为每个子站开启Redis对象缓存减少80%的数据库查询
页面缓存使用W3 Total Cache的Multisite模式动态页面静态化
CDNCloudflare代理所有子站域名全球加速+隐藏真实IP
资源共享全网络激活核心插件,避免重复加载减少插件资源冗余

七、常见问题排查

  • 子站后台出现404:检查Nginx的Multisite rewrite规则是否正确添加
  • 图片无法上传:检查 /wp-content/blogs.dir/ 目录权限,应为755
  • 子域名无法访问:确认DNS泛域名解析 *.yourdomain.com 已生效
  • SSL错误:确认通配符证书已覆盖所有子域名,或为每个子站单独申请
  • 插件仅对部分子站生效:区分"网络激活"(所有站点生效)和"单站激活"的差异

八、总结

WordPress Multisite是运营多站点业务的高效方案,一台4核4G的香港VPS完全可以支撑10~20个小型子站的稳定运行。IDC.Net的香港VPS独立服务器均支持多IP绑定,搭配Multisite可以为每个子站分配独立IP,进一步强化SEO隔离效果。

THE END