多站点安装只有两种路线:一套程序开「多站点网络」(各站共享用户表、插件和后台),或一台服务器装多个互相独立的站点(各自独立数据库和目录)。选错路线的代价很高——WordPress 的子目录网络装完之后无法直接改成子域名网络,只能重装或整站迁移,所以动手前先确定你属于哪一种。
多站点安装该选「网络模式」还是「独立部署」?
结论:需要跨站共享用户、统一管理插件主题、一个后台管所有站,选网络模式;站点分属不同客户、技术栈不同、要独立备份和独立数据库,选独立部署。
网络模式的典型场景是站群、高校各院系站点、同一品牌的多个地区站,用户在一站注册即可登录全部子站。独立部署的典型场景是给不同客户做站、主站和商城用不同程序,一个站被入侵不影响其他站。
两者的运维差别很大:网络模式下所有站点共用一份 PHP 代码和一套数据库连接,一个插件出问题会同时打挂全部站点;独立部署下每个站有自己的目录、数据库、PHP-FPM 进程池,故障被隔离在单站内。磁盘占用上,网络模式省空间但共享风险,独立部署多占 1 倍以上空间但更安全。
WordPress 多站点网络怎么安装?
结论:WordPress 3.0 起内置多站点功能,核心操作是先在配置文件开开关,再到后台「工具 → 配置网络」完成。步骤如下:
- 完整备份数据库和
wp-config.php、.htaccess 两个文件,多站点开启后回退很麻烦。
- 编辑
wp-config.php,在 /* That's all, stop editing! */ 之前加入 define( 'WP_ALLOW_MULTISITE', true );,注意常量名是 MULTISITE,拼错不生效。
- 登录后台,进入「工具 → 配置网络」,此时会让你选子域名或子目录。
- 选完模式后,把页面给出的两段代码分别粘回
wp-config.php(含 MULTISITE、SUBDOMAIN_INSTALL、DOMAIN_CURRENT_SITE 等常量)和 .htaccess,然后重新登录。
- 到「我的站点 → 网络管理 → 站点 → 添加新站点」建站,或用 WP-CLI 执行
wp site create --slug=news --title="News" --email=admin@example.com。
- 检查数据库里是否新增了
wp_site、wp_blogs、wp_sitemeta、wp_signups 表——这些是多站点的核心表,每个子站的数据则存在 wp_2_posts、wp_3_posts 这类带编号前缀的表里。
子域名和子目录的选择标准很明确:子目录模式(example.com/news)只需要主域名解析和一张普通 SSL 证书,改造成本最低;子域名模式(news.example.com)必须配置泛域名解析(*.example.com 指向同一 IP)和通配符证书(*.example.com),Let's Encrypt 的通配符证书只能用 DNS-01 方式签发。结论:没有泛解析和通配符证书的条件,就先选子目录模式。
一台服务器装多个独立站点,Nginx 怎么配?
结论:用多个 server 块,每个站点一个独立目录、独立数据库、独立 PHP-FPM 进程池,SSL 证书用 certbot 逐站签发。
server {
listen 443 ssl http2;
server_name a.com www.a.com;
root /www/a.com;
ssl_certificate /etc/letsencrypt/live/a.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/a.com/privkey.pem;
location ~ \.php$ {
fastcgi_pass unix:/run/php/php8.2-fpm-a.sock;
include fastcgi_params;
}
}
关键动作有三个:一是给每个站在 /etc/php/8.2/fpm/pool.d/ 下建独立池文件,listen 指向不同的 socket,这样 A 站被刷爆不会耗尽 B 站的 PHP 进程;二是每个站建独立的数据库和数据库用户,不要所有站共用一个 root 账号;三是证书逐站签发,命令是 certbot --nginx -d a.com -d www.a.com,多个域名就重复执行。
多站点安装最容易踩的坑有哪些?
结论:90% 的「装完子站 404」都出在伪静态规则和证书范围上。
- 子目录模式必须补全重写规则。Nginx 下要加
rewrite ^/(wp-.*\.php)$ /$1 last; 和 if (!-e $request_filename) { rewrite ^/(.*)$ /index.php?q=$1 last; },Apache 下依赖 .htaccess 的 RewriteRule,缺了这段子站一律 404。
- 插件和主题要区分「网络启用」和「单站启用」。网络启用后所有子站都被强制加载,数量控制在 10 个以内,否则每个子站的每个请求都要多跑这些代码。
- 备份要按整库备份。多站点是共享数据库的,单独导出
wp_2_* 表导不出用户和站点配置,恢复时会缺 wp_site 和 wp_sitemeta,站点直接打不开。
- 迁移时注意常量同步。改域名要同时改
wp-config.php 里的 DOMAIN_CURRENT_SITE 和数据库 wp_site、wp_blogs 两张表里的域名,漏一处就跳转到旧域名。
多站点安装的本质是「先定架构,再敲命令」:共享用户和统一后台就走网络模式,需要隔离和独立备份就走独立部署。网络模式记住三件事——配置文件开关、子目录/子域名一次选定、重写规则不能漏;独立部署记住三件事——独立目录、独立数据库和数据库用户、独立 PHP-FPM 池。把这几个动作做完,多站点才能稳定跑起来,而不是上线三天后开始互相拖累。