⭐ 推荐:社区规则条款 V1.0

多站点安装

lqyyzz
lqyyzz 观望站长
发布于 2026-10-15 08:09 ·1 浏览 ·2 回复
内容摘要

多站点安装可选共享用户与后台的网络模式或分库分目录的独立部署,共享管理选前者、客户隔离选后者;网络模式需在 wp-config 开启并配置,缺泛解析和通配符证书先用子目录,独立站用多个 Nginx server 块部署。

本文转载自 GJ站长论坛,原文地址:https://www.gj0.com/thread-2101.html
转载请注明出处,版权归原作者所有。
—/ 5暂无评分
还没有评分,来打第一分吧

全部回复 2

juming
juming 初级会员萌新站长 1楼 2026-10-15 08:22

先定路线、再动手,尤其是选了 WordPress 网络模式的话,「子目录还是子域名」必须在点确认前想死——这一步没有官方回退路径,改起来比重新装一遍还麻烦。

补一下你断掉的那段 Nginx 配置要点。多站独立部署最关键的不是 server 块,而是 PHP-FPM 进程池隔离:每个站单独建 pool,listen = /run/php/fpm-siteA.sock(或 127.0.0.1:9001/9002),在对应的 server 块里 fastcgi_pass unix:/run/php/fpm-siteA.sock;,同时给每个 pool 配独立的 user、open_basedir、pm.max_children。最常见的错误是几个站全部 fastcgi_pass 127.0.0.1:9000,结果一个站跑飞了把所有 FPM 子进程占满,其他站一起 502,等于白做了隔离。日志也要 access_log /var/log/nginx/siteA.access.log 分开,排查问题时才不会串。

网络模式这边有两个容易踩的点:一是用了 Nginx 就别去抄 .htaccess,WordPress 官方的 multisite rewrite 规则要写进 server 块,否则子站后台 404;二是 DOMAIN_CURRENT_SITE 必须和实际访问域名完全一致(带不带 www 都算不同),写错会直接重定向循环,进不去后台。

最后一个坑:子目录改子域名虽然理论上能靠改 SUBDOMAIN_INSTALL 加批量更新 wp_blogs 表的 domain/path 硬来,但插件、上传文件路径、已发出的链接全都要跟着改,生产环境基本等于重做,所以能提前定就提前定。

域名注册
域名注册 版主萌新站长 👑黑卡会员 #1903 2楼 2026-10-15 08:29
juming:先定路线、再动手,尤其是选了 WordPress 网络模式的话,「子目录还是子域名」必须在点确认前想死——这一步没有官方回退路径,改起来比重新装一遍还麻烦。 …

你这句"没有官方回退路径"是全文最值钱的一句,我顺着补几个配套细节,都是踩过才知道的。

pool 隔离要配全,光有 listen 不够。 独立 pool 还得给每个站配独立的 open_basedir,且必须包含 uploads 目录、/tmp、session 保存路径,少一个就是上传白屏或后台登录态丢失,排查起来很折磨。pm.max_children 别拍脑袋写 50,按「可用内存 ÷ 单进程 RSS」估算,再留 30% 余量——PHP 进程跑起来后常驻内存会涨,按启动时算会爆。

数据库侧要做同等隔离。 每个站建独立 DB 用户,只 GRANT 自己那个库,别几个站共用一个账号。否则一个站被挂马,等于把旁站的数据全递出去了,FPM 隔离白做。

Nginx 那边还有个易漏点: multisite 的 rewrite 规则要写在 server 块的 location / 里,同时确认没有别的 location 把 /wp-admin 截胡,否则表现就是前台正常、子站后台 404,很容易误判成常量写错。

至于子目录改子域名,除了硬改 wp_blogs,也有人用反向代理把 news.example.com 转到 example.com/news 来蒙混过关,但 cookie 域和上传路径照样错乱,只能算演示环境应急,别上生产。

延伸一句:网络模式迁移域名时,wp_blogs、wp_site、wp_options 里的 home/siteurl 必须一起改,用 wp search-replace --all-tables 才彻底,手动 UPDATE 很容易漏表。