Tp6.0.2版本前后端多应用配置

Author Avatar
yyq 2020-06-20 16:01:43
  • 二维码

Tp6.0.2版本前后端多应用配置

        之前记录过6.0.0的前后端分离部署操作,最近升级到了Tp6.0.2版本,折腾了下多应用配置,貌似还是有点差异,记录下。


        NO1:下载TP6.0.2版本,可直接在指定目录下执行命令如下:

            composer create-project topthink/think=6.0.x-dev tp

        当前稳定版本是6.0.2,后续应该会更新,下载完成后为单应用模式,开启多应用需自行配置了


        NO2:首先是参照官方文档操作了,安装多应用扩展,执行命令如下:

            composer require topthink/think-multi-app

        在6.0.0配置时貌似木有这个,可能是优化处理了


        NO3:参照官方文档删减无用的应用目录,折腾好后的目录结构一般如下

            

    ├─app 应用目录
   │  ├─home               主应用
   │  │  ├─controller      控制器目录
   │  │  ├─model           模型目录
   │  │  ├─view            视图目录
   │  │  ├─config          配置目录
   │  │  ├─route           路由目录
   │  │  └─ ...            更多类库目录
   │  │ 
   │  ├─admin              后台应用
   │  │  ├─controller      控制器目录
   │  │  ├─model           模型目录
   │  │  ├─view            视图目录
   │  │  ├─config          配置目录
   │  │  ├─route           路由目录
   │  │  └─ ...            更多类库目录
   │
   ├─public                WEB目录(对外访问目录)
   │  ├─index.php          入口文件 (此处我用的同一入口文件,方便.htaccess隐藏index.php)
   │  ├─router.php         快速测试文件
   │  └─.htaccess          用于apache的重写
   │
   ├─config                全局应用配置目录
   ├─runtime               运行时目录
   │  ├─home               home应用运行时目录
   │  └─admin              admin应用运行时目录

        可以看到路由编写文件都放入到了各自的应用下,互不干扰

        

        NO4:此处注意,需要解析两个子域名来访问前后端,如 前端:home.xxx.com,后端:admin.xxx.com,两个域名都是指向项目的public下。找了一圈多应用模式的开启设置项 auto_multi_app,木有看到,应该是优化了


        NO5:之后按官方文档处理域名绑定,在conf/app.php内的域名绑定内添加如下:

            // 域名绑定(自动多应用模式有效)

            'domain_bind'      => [

                'home.xx.com'  => 'home',

                'admin.xx.com' => 'admin',

            ],

            这样访问home.xx.com与admin.xx.com即分别指向项目home与admin了


        NO6:其他与TP6.0一样,在app下也新建自定义应用目录及相关的控制器、模型、视图,也可加当前应用配置等


            app\home\controller\Index.php

            app\admin\controller\Index.php


        注意,各个Index.php头部引用的命名空间是不同的,

            home引用的是 namespace app\home\controller;  

            admin引用的是 namespace app\admin\controller;


        NO7:配置项目文件我的开启了强制路由,文件为 conf/route.php

            // 是否强制使用路由

            'url_route_must'        => true,


        NO8:最后重要的一点是修改.htaccess如下:


            将最后这句:

            RewriteRule ^(.*)$ index.php/$1 [QSA,PT,L]

            替换为:

            RewriteRule ^(.*)$ index.php [L,E=PATH_INFO:$1]

            之后就可以正常访问前后端了


上一篇 返回列表 下一篇

发表评论

Tips:评论内容请文明用语