ThinkPHP多应用模式部署究竟需要哪些配置【部署】
作者:吹吹风会发光
时间:2026-07-05
浏览:0
ThinkPHP多应用模式部署需完成四步:安装并启用think-multi-app扩展,手动创建规范的应用目录结构,在全局route.php中显式导入各应用路由,在入口文件public/index.php中完成应用绑定。每一步均不可缺失,否则导致404或类未找到错误。
ThinkPHP 的多应用模式要是真能靠改两个配置就跑起来,那网上也不会有那么多“404 满天飞”的求助帖了。说到底,这玩意是一套结构、加载、路由、绑定的协同机制。核心就四件事:扩展装对、目录建实、路由导进、应用绑准。少一个环节,轻则 404,重则 Class not found 直接给你甩脸上。

从实操层面拆开看,四个步骤一个都不能偷懒。
必须安装并启用 think-multi-app 扩展
TP6.1+ 从设计上就不默认支持多应用,topthink/think-multi-app 属于硬性依赖,不装就等于地基没打。
- 先跑
composer require topthink/think-multi-app装好扩展 - 然后检查
config/app.php里有没有'app_multi_module' => true - 再确认
providers数组是否包含think\multi\App\ServiceProvider::class,没有就手动加上 - 最后别忘执行
php think service:discover,让服务提供器注册生效
这一步漏了,后面所有操作都是白费功夫。
必须手动创建规范的应用目录结构
框架不会自动给你生成 app/admin、app/api 这些目录——要么手敲,要么用命令生成。而且命名和内容必须严格合规,否则等着报错就行。
- 用命令创建:
php think app:create admin,它会顺便生成app/admin/下的完整子结构 - 应用名只允许小写字母加下划线,比如
admin、user_v2;要是写成Admin或user-api,直接失败 - 记得删掉原始的
app/controller目录——单应用模式的残留文件,不删的话框架会强制降级回单应用 - 检查
app/admin/config/app.php里的'app_namespace' => 'app\admin',命名空间必须跟目录名完全一致
必须在全局 route.php 中显式导入各应用路由
TP6 不会主动去扫描 app/*/route.php,你不手动 import,子应用的路由文件就是死的。
- 打开
config/route.php,在 return 数组前面加上use think\facade\Route; - 然后写导入语句:
Route::import('admin', 'admin');(第二个参数大小写敏感,必须跟目录名一致) - 每个新增应用都要追加一行,比如
Route::import('api', 'api'); - 子应用自己的
app/admin/route.php里只写实际路由就行,别套Route::group('admin', [...]),否则路径会变成双重复,比如/admin/admin/xxx
必须在入口文件中完成应用绑定
这点坑踩的人最多。config/app.php 里的 domain_bind 在多应用模式下压根不生效,绑定动作必须落在 public/index.php 里。
- 在
require __DIR__ . '/../vendor/autoload.php';之后、App::run()之前插入绑定逻辑 - 按域名绑定的示例:
if ($_SERVER['HTTP_HOST'] === 'admin.example.com') { \think\App::bind('admin'); } - 有人喜欢按子目录识别,但更推荐域名直绑,逻辑清晰,不容易出幺蛾子
- 绑定之后,后面的所有加载——配置、路由、视图路径、runtime 目录——都会基于该应用上下文运行
四步到位,再跑起来就很稳了。要是还报错,回头检查每个步骤的细节,多半是命名不规范或者漏了某条命令。
作者最新文章
iphone蓝牙连接ipad有什么用及连接方法教程
2026-09-21 17:28
PDF怎么取消密码保护?4种解锁方法整理
2026-09-08 18:23
三星 Galaxy Z Fold8 内屏边角支撑偏软?实测与官方回应
2026-09-08 16:39
手机Excel表格制作教程:小屏幕高效录入与格式调整指南
2026-09-04 09:27
PDF文档按页转换成图片怎么做?在线转换步骤整理
2026-09-03 11:06
热门文章
更多
精品专题
更多
Mac软件
更多
WINDOWS
更多


































