前几天收到一个网友反馈,出现了一个错误提示“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”文件,好了,问题至此应该算是解决了,有问题留言反馈吧。