很多新手朋友对于tp6的多应用模式使用很是恼火,无从下手,部署过程也是各种不顺,这篇文章是我个人针对tp6多应用部署使用的一个简单记录,希望可以给不会的朋友提供一些帮助,如有问题欢迎指正,我会第一时间修改。
安装过程就不说了,直接composer安装,这里假定你本地已经安装好了tp6.下面开始进入正题。
tp6多应用模式部署大概是有两种方法,一种是单入口自动多应用模式,第二种是一个入口文件对应一个应用,我们先讲第一种部署模式,单入口自动多应用模式。
这里要提一下就是要使用多应用模式光安装tp6主体框架是不行的,还需要安装多应用模式扩展。
composer require topthink/think-multi-app
安装好扩展后就可以开始配置了。先说明一下为了简化url,我会采用域名绑定的方式访问各应用,如果你还不知道如何使用域名绑定可以去看看手册,(手册说明:如果你的多应用使用多个子域名或者独立域名访问,你可以在config/app.php配置文件中定义域名和应用的绑定。)
'domain_bind' => [
'blog' => 'blog', // blog子域名绑定到blog应用
'shop.tp.com' => 'shop', // 完整域名绑定
'*' => 'home', // 二级泛域名绑定到home应用
],
因为牵扯到域名绑定所以本地需要设置两个或多个虚拟域名作为备用,我只建两个应用,前台和后台应用,所以建了两个虚拟域名。
准备工作做完了后现在开始配置服务器,我用的apache,所以配置如下,两个域名都指向index.php这个入口文件。
打开config目录下面的app.php配置域名绑定,将主域名绑定到index应用,admin子域名绑定到admin应用
在app目录下新建index,admin两个文件,并复制原来的controller文件夹分别到新建的两个应用文件下下面,并修改各自controller文件的命名空间,将原来的controller文件夹删掉。复制route文件夹到两个应用文件夹下面备用,最后目录结构是这样。
现在我们可以开始多应用模式访问了,我index应用index方法返回应用名。
浏览器访问www.tp6.cn,结果正确
接着我们访问admin,admin控制器内也是返回应用名。
可以看到结果也是正确的。
说明我们单入口自动多应用模式基本部署完了,我们可以给应用加上路由访问试试。我在各应用的index控制器下新建一个名为ceshi的方法,然后对其设置路由访问。比如index应用控制器内是这样。
然后在app/index/route/route.php文件里面设置路由
现在我们可以用www.tp6.cn/ceshi 这个地址去访问ceshi方法了
后台应用也是一样的道理。
如果访问提示:No input file specified.打开public文件夹修改htaccess文件,在index.php后面加一个问号
PS:其他常用扩展安装
composer require topthink/think-view //模板渲染
composer require topthink/think-captcha //验证码