提醒:本文最后更新于 998 天前,文中所描述的信息可能已发生改变,请谨慎使用。
昨天在LNMP上设置ThinkPHP V5的环境,折腾了好久,差点就放弃了,不过好在有人指点,终于搞定了,现记录了下。
ThinkPHP V5版本的网站运行目录为Public,同级目录还有thinkphp、app等目录,这个不用管,直接指定网站运行目录为public即可,在nginx配置的时候一定要注意:
指定了网站运行目录还不行,因为public里面的文件还要访问public同级目录thinkphp、app等中的文件,单纯的指定了root目录,肯定是运行不了的,还得继续修改nginx的配置文件,此时要修改fastcgi.conf文件:
找到:
允许public下的文件可以访问上级目录(也就是public的同级目录),修改为:
使用LNMP一键包安装的话,网站配置文件只有一行:
而enable-php-pathinfo.conf文件内容是:
看到没,里面包含了fastcgi.conf文件,但如果有虚拟网站的话,不建议直接改fastcgi.conf,所以你可以单独复制一个fastcgi.conf重命名为fastcgi-TP.conf,修改上面提到的内容后,再将enable-php-pathinfo.conf也重新复制一个并重命名为enable-php-pathinfo-TP.conf,修改“include fastcgi.conf”内容为“include fastcgi-TP.conf”,最后在网站配置文件中将include enable-php-pathinfo.conf替换为include enable-php-pathinfo-TP.conf吧,重新加载nginx就可以了。
如果嫌添加修改各个文件比较麻烦,可以直接用下面的代码替换掉网站配置文件中的include enable-php-pathinfo.conf:
最后,得添加重写规则:
好吧,重启LNMP,一切就正常了。
注意:
对于防跨站设置,网站根目录下生成的“.user.ini”中,加载open_basedir是无效的,因为在fastcgi.conf中调用了open_basedir,不会再调用.user.ini中的open_basedir,所以更简单的方法是,注释掉fastcgi.conf关于open_basedir的那一行(前面加#):
此时就要注意写对网站根目录下.user.ini中的open_basedir配置了,改为如下:
最后编辑时间为: 2018年06月27日 20:12:58
本文由 ProgramSay 创作,
采用 知识共享署名 4.0 国际许可协议进行许可
可自由转载、引用,但需署名作者且注明文章出处