首页 > 编程语言 >ThinkPHP部署域名绑定步骤详解

ThinkPHP部署域名绑定步骤详解

来源:互联网 2026-07-15 19:29:09

实现ThinkPHP多应用域名绑定,需要先安装多应用扩展,删除默认的控制器目录,创建各个子应用目录并配置域名绑定数组,在路由配置文件中注册各域名对应的路由规则,同时务必确保Nginx或Apache正确透传主机头。

搞ThinkPHP二级域名绑定,很多人以为改个配置就完事了,其实远没那么简单。你得让框架识别出访问的是哪个域名,然后自动加载对应的应用模块,这才是核心。而要实现这个效果,需要把结构、配置、路由、服务器这四样东西都安排明白,缺一环都不行。下面就把关键操作和常见踩坑点掰开揉碎了讲清楚。

一、搭好多应用目录结构

这是前提,结构不对,后面全白忙。

长期稳定更新的攒劲资源: >>>点此立即查看<<<

  • 先执行 composer require topthink/think-multi-app 安装多应用扩展
  • 删除根目录下的 app/controller 目录——这是单应用的标志,不删掉,框架就不会进入多应用模式
  • 用命令创建独立应用:php think build adminphp think build api,生成 app/admin/app/api/ 等目录
  • 每个子应用目录必须包含标准结构:controller/route.phpconfig/middleware.php
  • 确认 config/app.php 中已设置 'auto_multi_app' => true'app_namespace' => 'app'

二、开启域名识别并配 domain_bind

TP6/8 已经废弃了 APP_SUB_DOMAIN_DEPLOY,必须用 domain_bind 数组做硬绑定,否则框架无法切换应用上下文。

  • config/app.php 中添加或修改:
    'url_domain_deploy' => true,
    'domain_bind' => [
    'admin.example.com' => 'admin',
    'api.example.com' => 'api',
    '*' => 'index'
    ]
  • 键必须是完整域名(如 admin.example.com),不能只写 admin;本地开发时若用 localhost:8000,就得写 'localhost:8000' => 'admin'
  • 值必须是 app/ 下的目录名,且该目录存在、结构完整

三、在 route/app.php 中注册域名路由规则

这一步不是可选的,而是必须——只有写在这里,框架才会把域名作为路由解析入口。

  • 打开 route/app.php(注意,不是 config/route.phpapp/common/route.php
  • 写入规则,例如:
    use thinkRoute;
    Route::domain('admin.example.com', function () {
    Route::get('login', 'index/login');
    });
  • 注意:Route::domain() 第二个参数只能是闭包或数组,不能是字符串路径(如 'admin/index/login' 会报错)
  • 泛域名用 Route::domain('*', ...),但要放在精确匹配之后

四、Web 服务器正确透传 Host 头

如果 Nginx 或 Apache 没把原始域名传给 PHP,框架连 $_SERVER['HTTP_HOST'] 都拿不到,前面所有配置都白搭。

  • Nginx:server 块里确保有
    fastcgi_param HTTP_HOST $host;
    且 root 指向项目 public/ 目录
  • Apache:启用 mod_rewrite,虚拟主机中设置 DocumentRootpublic/,并开启 AllowOverride All
  • 本地开发时,别忘了改 hosts 文件,例如加一行:127.0.0.1 admin.example.com
  • 调试时可以用 var_dump($_SERVER['HTTP_HOST']) 确认实际收到的值是否与配置一致

ThinkPHP部署域名绑定步骤详解

侠游戏发布此文仅为了传递信息,不代表侠游戏网站认同其观点或证实其描述

热游推荐

更多
湘ICP备14008430号-1 湘公网安备 43070302000280号
All Rights Reserved
本站为非盈利网站,不接受任何广告。本站所有软件,都由网友
上传,如有侵犯你的版权,请发邮件给xiayx666@163.com
抵制不良色情、反动、暴力游戏。注意自我保护,谨防受骗上当。
适度游戏益脑,沉迷游戏伤身。合理安排时间,享受健康生活。