PHP错误提示open_basedir restriction in effect的解决方案

2022-01-18 14:13:53 浏览数 (1)

前几天收到一个网友反馈,出现了一个错误提示“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是看不到这个文件的,登录宝塔后台找到网站目录,双击编辑文件,在原来的位置最后位置增加openrasp日志文件:/opt/rasp/logs,如下:

代码语言:javascript复制
open_basedir=/www/wwwroot/talklee.com/:/tmp/:/proc/

在“/proc/”后增加“:/opt/rasp/logs”

代码语言:javascript复制
open_basedir=/www/wwwroot/talklee.com/:/tmp/:/proc/:/opt/rasp/logs

更改完成之后记得重启或者重载Apache和php,然后回到网站查看效果是否已经解决,嫌弃麻烦的可以直接在站点关闭“防跨站攻击”,如图:

因为本站未涉及此问题,所以不知道是否真的好用,zblog官方也给出了说下,造成错误提示的原因是运行环境中使用了百度推行的安全工具OpenRASP,然而部署时没有授予相应路径的写权限。

PHP 服务器 - OpenRASP 官方文档 - 开源自适应安全产品

https://rasp.baidu.com/doc/install/manual/php.html#faq-3

如上无法解决可以尝试如下方案:

官方文档中也有写,找到php.ini,在其中找到open_basedir,在其后附加上/opt/rasp_php56/(php版本)

修改后大概是这样:

代码语言:javascript复制
open_basedir = /www/wwwroot/talklee.com/:/tmp/:/proc/:/opt/rasp_php56/

感觉又回来了是不?嗯嗯是的,毕竟这个是在非宝塔环境修改的,所以只能修改php.ini文件了。理论上说也可以自行创建“.user.ini”文件,好了,问题至此应该算是解决了,有问题留言反馈吧。

0 人点赞