以下仅LNMP 1.4版本的解决办法,LNMP其他版本请参考官网https://lnmp.org/faq/lnmp-vhost-add-howto.html#user.ini
解决方法一:LNMP 1.4上也可以直接使用lnmp1.4/tools/ 目录下的 ./remove_open_basedir_restriction.sh,输入网站的全路径(如/www/wwwrooter/testweb) 回车既可
解决方法二:LNMP 1.4上如果不想用防跨目录或者修改.user.ini的防跨目录的目录还需要将 /usr/local/nginx/conf/fastcgi.conf 里面的fastcgi_param php_ADMIN_VALUE "open_basedir=$document_root/:/tmp/:/proc/"; 在该行行前添加 # 或删除改行,需要重启nginx。
这里我试过了是无效的,大家可以尝试,修改完fastcgi.conf后执行
service nginx restart
service php-fpm restart
说明; 由于我的服务器php环境是使用lnmp集成包搭建,原因也来于此
在Thinkphp、codeigniter、Laravel等框架下,网站目录一般是在public下,但是public下的程序要跨目录调用public上级目录下的文件,因为LNMP默认是不允许跨目录访问的,所以都是必须要将防跨目录访问的设置去掉,有时候这些框架类的程序提示500错误也可能是这个问题引起的。(官网上写的https://lnmp.org/faq/lnmp-vhost-add-howto.html#user.ini)
问了找了好久,还是通过tp5官网文档的评论发现解决方法,tp5文档https://www.kancloud.cn/manual/thinkphp5/336757