这里的is not within the allowed path(s) 意思是没权限访问那个文件夹
解决方法1:
因为宝塔默认启用"防止跨站攻击"后,网站打不开,出现错误,主要原因是:我们用的PHP框架默认将首页放在public目录下,但open_basedir参数使用的变量为$document_root,而thinkphp框架又调用了../thinkphp/base.php文件,结果PHP不允许跨上级目录访问,于是就报错给你。
在使用宝塔的时候,如果细心的话,你会发现当启用”防止跨站攻击“选项后,网站根目录会多出一个文件.user.ini。对头,只要修改此文件中的open_basedir为你网站根目录的上级目录即可。
比如下面这个是宝塔自动生成的public目录下的.user.ini内容:
open_basedir=/www/wwwroot/xxx.com/public/:/tmp/:/proc/
应该去掉public,修改为这样即可:
open_basedir=/www/wwwroot/xxx.com/:/tmp/:/proc/
如果需要添加其他路径.可以直接在后面添加即可,每个路径之间用:隔开
添加以后 不用重启下Nginx即可生效. 其他环境应该也都一样.
解决方法2:
根据方法1的思路,只需要将宝塔-网站-设置-网站目录-取消勾选【防跨站攻击】,即可生效。
解决方法3:
根据方法2的思路,实际上删除public目录下.user.ini即可。
chattr -i .user.ini
rm -rf .user.ini
其他教程1:链接地址。
其他教程2:链接地址。