宝塔面板tp项目部署报错:is not within the allowed path(s) 解决方法

这里的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:链接地址