Trellis部署失败:报错“Error: This is not a multisite install”求助
我帮你一步步排查和解决这个问题,毕竟用Bedrock+Trellis部署多站点时,配置细节很容易踩坑:
1. 先确认多站点配置是否完整
你提到补加了WP_ALLOW_MULTISITE,但完整的多站点配置需要一整套定义,Bedrock下这些配置应该放在config/application.php或者对应环境的配置文件(比如生产环境的config/environments/production.php)里。确保你的配置包含以下完整内容:
/* Multisite */ define('WP_ALLOW_MULTISITE', true); define('MULTISITE', true); define('SUBDOMAIN_INSTALL', false); // 子文件夹多站点必须设为false define('DOMAIN_CURRENT_SITE', 'your-domain.com'); // 替换成你的实际主域名 define('PATH_CURRENT_SITE', '/'); // 子文件夹多站点这里填根路径即可 define('SITE_ID_CURRENT_SITE', 1); define('BLOG_ID_CURRENT_SITE', 1);
注意:生产环境建议把这些配置放在config/environments/production.php里,避免和开发环境的配置冲突。
2. 检查配置文件的加载优先级
Bedrock的配置加载顺序是:config/application.php → config/environments/{environment}.php → 环境变量。如果你的生产环境配置文件里没有包含多站点定义,甚至不小心写了define('MULTISITE', false),会直接覆盖application.php的配置,这是很常见的疏漏。
3. 排查新主题是否干扰多站点检测
广告公司提供的Bedrock主题可能自带了多站点检测逻辑,或者有代码修改了WordPress的全局配置。你可以临时切换回默认主题测试:
- 在
config/application.php里添加define('WP_DEFAULT_THEME', 'twentytwentyfour'); - 提交代码后重新执行Trellis部署命令:
./trellis deploy production your-domain.com
如果切换主题后部署成功,说明问题出在新主题上,需要检查主题的functions.php或自定义配置文件,看是否有禁用多站点的代码。
4. 清理缓存并重新同步配置
Trellis部署时可能缓存了旧配置,或者没有正确同步新文件:
- 执行Trellis的配置同步命令:
./trellis provision production your-domain.com,确保服务器上的配置是最新的 - 登录服务器清理PHP OPcache(避免旧配置被缓存):
sudo service php8.2-fpm reload # 替换成你服务器上的PHP版本
如果有安装缓存插件,也记得在后台清理站点缓存。
5. 验证数据库中的多站点表是否存在
首次部署多站点时,WordPress会自动创建wp_blogs、wp_site等核心表。你可以通过MySQL客户端连接服务器数据库,执行以下SQL检查:
SHOW TABLES LIKE '%blogs%'; SHOW TABLES LIKE '%site%';
如果这些表不存在,说明首次部署的多站点配置没有正确写入数据库,这种情况建议重新执行Trellis的部署+初始化命令,避免手动修改数据库。
内容的提问来源于stack exchange,提问作者Vincent

