最近收到了一位网友的反馈,出现了“open_basedir restriction in effect. file(/opt/rasp_php70/logs/alarm/alarm.log.2022-01-01) is not within the allowed path(s)”的错误提示,我当时对此感到一头雾水,因为之前从未遇到过。直到在设置zblog搜索伪静态时才突然想起这个错误,已经过了十天,我的记忆力真是差。经过一番搜索,发现这应该是宝塔的“防跨站攻击(open_basedir)”功能导致的,通常出现在apache环境中。

解决方案如下:在网站根目录下找到“.user.ini”文件,注意使用FTP是看不到这个文件的,必须通过登录宝塔后台找到网站目录,然后双击编辑文件。在原有的open_basedir设置的最后位置,添加openrasp日志文件的路径:/opt/rasp/logs,如下所示:
open_basedir=/www/wwwroot/talklee.com/:/tmp/:/proc/
在“/proc/”后增加“:/opt/rasp/logs”,修改后的配置如下:
open_basedir=/www/wwwroot/talklee.com/:/tmp/:/proc/:/opt/rasp/logs
完成更改后,记得重启或重载Apache和PHP,然后回到网站查看是否已解决问题。如果觉得麻烦,也可以直接在站点设置中关闭“防跨站攻击”功能,如图所示:
立即学习“PHP免费学习笔记(深入)”;

由于本站未遇到此问题,所以无法确定上述方法是否有效。zblog官方也提到,错误提示的原因是运行环境中使用了百度推出的安全工具OpenRASP,但在部署时未授予相应路径的写入权限。
如有需要,可以参考OpenRASP官方文档:
PHP 服务器 - OpenRASP 官方文档 - 开源自适应安全产品
https://www.php.cn/link/1203cc3f3328867009eb7d59cf5e12f6
如果上述方法无法解决问题,可以尝试以下方案:
在php.ini文件中找到open_basedir设置,并在其后添加/opt/rasp_php56/(根据PHP版本调整),修改后的配置大致如下:
open_basedir = /www/wwwroot/talklee.com/:/tmp/:/proc/:/opt/rasp_php56/
这种方法适用于非宝塔环境,因为只能通过修改php.ini文件来实现。理论上也可以自行创建“.user.ini”文件来解决问题。至此,问题应该已经解决,如果还有疑问,欢迎留言反馈。
以上就是PHP错误提示open_basedir restriction in effect的解决方案的详细内容,更多请关注php中文网其它相关文章!
PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号