需求
需求:多个项目共用一个tp5.1核心库(原来的thinkphp 是在项目的根目录下面,现在需要提出来)
如:
要保证其他的项目正常运行,需要配置那些东西呢?
配置
项目的think
文件配置
你按照需求将thinkphp
移到上一级目录,这时候你进入到项目目录打开命令行窗口运行
php think route:list
查看路由,你会发现它会警告你base.php
找不到,如
要解决这个问题,需要将think
文件里面的一处内容修改下
内容如下:
require __DIR__ . '/thinkphp/base.php';
改成
require __DIR__ . '/../thinkphp/base.php';
将目录往上跳一级
再次运行,就不会出现刚刚的警告
项目的public/index.php
的配置
没改之前你访问路由你会发现
还是说base.php,找不到,进入index.php
require __DIR__ . '/../thinkphp/base.php';
改成
require __DIR__ . '/../../thinkphp/base.php';
apache虚拟主机的配置
进入apacheconfextra
目录下的httpd-vhosts.conf
文件,配置网站的跟目录到虚拟主机的最外层目录
例如
原来的配置是:项目根路径/public
D:/php_code/tp5.1/public
想在需要配置成: 多个项目的根目录
D:/php_code/
参考配置
# 设置虚拟主机
<VirtualHost *:80>
# 设置网站根目录
#DocumentRoot "D:/php_code/tp5.1/public"
DocumentRoot "D:/php_code"
# 设置网站域名
ServerName www.tp5.com
# 错误日志
#ErrorLog "D:/php_code/tp5.1//logs/error.log"
# 成功日志
#CustomLog "D:/php_code/tp5.1//logs/access.log" combined
# 设置目录访问权限
#<Directory "D:/php_code/tp5.1/public">
<Directory "D:/php_code">
# 指定目录启用特怀
Options Indexes FollowSymLinks
# 是否允许使用.htaccess文件
AllowOverride All
# 访问目录权限
Require all granted
</Directory>
</VirtualHost>
配置到最外层目录,你访问我们的虚拟主机,你会发现,其实就是进了我们在虚拟主机配置的目录
只不过之前我们配置虚拟主机的时候一直将根目录配置到项目的public
目录下
那么我们现在该如何访问,我们的各个子项目,和路由呢?
项目访问和路由
子项目访问格式
主机:端口(80可不写)/子项目名/public
例:
http://www.tp5.com/login/public/
子项目路由访问格式
主机:端口(80可不写)/子项目名/public/子项目配置的路由点
例:
http://www.tp5.com/login/public/test