宝塔面板出现“open_basedir restriction in effect. ”的解决方法


Posted in PHP onMarch 14, 2021

1、只需要在相应的网站目录,勾选掉防跨站攻击(open_basedir)即可!

2、必须重启PHP;

宝塔面板出现“open_basedir restriction in effect. ”的解决方法

 

LNMP/LAMP 出现“open_basedir restriction in effect. ”的解决方法

我今天也遇到了这样的情况,我用的是LNMP一键安装包+Thinkphp,然后根目录绑定到的是public目录下,再访问首页的时候出现500错误,后来去 php.ini 把 display_errors 设置为 on 后,报的错误和文章讲的一模一样;

 

我的解决方法其实和文章也差不多,原理都是一样的:

 

我是看到LNMP官方提供的“防跨目录设置”方法,如下:

LNMP 1.1及之前的版本使用php.ini里面,open_basedir设置。

LNMP 1.2及更高版本防跨目录功能使用.user.ini,该文件在网站根目录下,可以修改.user.ini 里面的open_basedir的值来设置限制访问的目录或删除来移除防跨目录的设置。

.user.ini文件无法直接修改,如要修或删除需要先执行:chattr -i /网站目录/.user.ini

可以使用winscp文件管理、vim编辑器或nano编辑器进行修改。

删除的话rm -f /网站目录/.user.ini 就可以。

修改完成后再执行:chattr +i /网站目录/.user.ini

.user.ini不需要重启一般5分钟左右生效,也可以重启一下php-fpm立即生效。

如果要更改网站目录必须要按上述方法修改防跨目录的设置,否则肯定报错!!

 

LNMP 1.4上如果不想用防跨目录或者修改.user.ini的防跨目录的目录还需要将 /usr/local/nginx/conf/fastcgi.conf 里面的fastcgi_param PHP_ADMIN_VALUE “open_basedir=$document_root/:/tmp/:/proc/”; 在该行行前添加 # 或删除行,需要重启nginx。

LNMP 1.4上也可以直接使用lnmp1.4/tools/ 目录下的 ./remove_open_basedir_restriction.sh 进行移除。

在Thinkphp、codeigniter、Laravel等框架下,网站目录一般是在public下,但是public下的程序要跨目录调用public上级目录下的文件,因为LNMP默认是不允许跨目录访问的,所以都是必须要将防跨目录访问的设置去掉,有时候这些框架类的程序提示500错误也可能是这个问题引起的。

LNMPA或LAMP 模式1.2版本以上的防跨目录的设置使用的对应apache虚拟主机配置文件(lnmp管理工具添加的话文件是 /usr/local/apache/conf/vhost/域名.conf )里的php_admin_value open_basedir参数进行设置。如果不需要设置可以在前面加 # 进行注释,或自行修改目录的限制。

重启apache生效。

PHP 相关文章推荐
PHP_MySQL教程-第一天
Mar 18 PHP
用phpmyadmin更改mysql5.0登录密码
Mar 25 PHP
PHP 程序员的调试技术小结
Nov 15 PHP
PHP+MySQL投票系统的设计和实现分享
Sep 23 PHP
str_replace只替换一次字符串的方法
Apr 09 PHP
PHP5中GD库生成图形验证码(有汉字)
Jul 28 PHP
php使用curl获取https请求的方法
Feb 11 PHP
PHP判断数组是否为空的常用方法(五种方法)
Feb 08 PHP
Laravel框架下载,安装及路由操作图文详解
Dec 04 PHP
PHP随机生成中文段落示例【测试网站内容时使用】
Apr 26 PHP
PHP设计模式概论【概念、分类、原则等】
May 01 PHP
基于ThinkPHP删除目录及目录文件函数
Oct 28 PHP
open_basedir restriction in effect. 原因与解决方法
Mar 14 #PHP
aec加密 php_php aes加密解密类(兼容php5、php7)
Mar 14 #PHP
PHP配置文件php.ini中打开错误报告的设置方法
Jan 09 #PHP
imagettftext() 失效,不起作用
Mar 09 #PHP
PHP高并发和大流量解决方案整理
Mar 09 #PHP
PHP获取php,mysql,apche的版本信息及更多服务器信息
Mar 09 #PHP
PHP 出现 http500 错误的解决方法
Mar 09 #PHP
You might like
深入探讨<br />和 \r\n两者有什么区别??
2013/06/05 PHP
php中Socket创建与监听实现方法
2015/01/05 PHP
php输出文字乱码的解决方法
2019/10/04 PHP
基于jquery的修改当前TAB显示标题的代码
2010/12/11 Javascript
取得窗口大小 兼容所有浏览器的js代码
2011/08/09 Javascript
兼容ie、firefox的图片自动缩放的css跟js代码分享
2012/01/21 Javascript
Jquery Validate 正则表达式实用验证代码大全
2013/08/23 Javascript
使用jQuery简单实现模拟浏览器搜索功能
2014/12/21 Javascript
JQuery节点元素属性操作方法
2015/06/11 Javascript
jQuery实现垂直半透明手风琴特效代码分享
2015/08/21 Javascript
JavaScript简单获取系统当前时间完整示例
2016/08/02 Javascript
详解AngularJS中$filter过滤器使用(自定义过滤器)
2017/02/04 Javascript
Angularjs单选框相关的示例代码
2017/08/17 Javascript
使用Angular CLI生成 Angular 5项目教程详解
2018/03/18 Javascript
每周一练 之 数据结构与算法(Stack)
2019/04/16 Javascript
详解vue微信网页授权最终解决方案
2019/06/16 Javascript
微信小程序的授权实现过程解析
2019/08/02 Javascript
JavaScript判断浏览器版本的方法
2019/11/03 Javascript
node.JS的crypto加密模块使用方法详解(MD5,AES,Hmac,Diffie-Hellman加密)
2020/02/06 Javascript
JSON获取属性值方法代码实例
2020/06/30 Javascript
[38:44]DOTA2上海特级锦标赛A组小组赛#2 Secret VS CDEC第二局
2016/02/25 DOTA
解决pycharm工程启动卡住没反应的问题
2019/01/19 Python
python实现画五角星和螺旋线的示例
2019/01/20 Python
python之yield和Generator深入解析
2019/09/18 Python
python实现的读取网页并分词功能示例
2019/10/29 Python
python+Django实现防止SQL注入的办法
2019/10/31 Python
Python 如何调试程序崩溃错误
2020/08/03 Python
python opencv pytesseract 验证码识别的实现
2020/08/28 Python
python matlab库简单用法讲解
2020/12/31 Python
意大利宠物用品购物网站:Bauzaar
2018/09/15 全球购物
腾讯公司的一个sql题
2013/01/22 面试题
小饰品店的创业计划书范文
2013/12/28 职场文书
个人党性分析总结
2015/03/05 职场文书
2016年大学迎新工作总结
2015/10/14 职场文书
教你使用Ubuntu搭建DNS服务器
2022/09/23 Servers
MySQL索引失效十种场景与优化方案
2023/05/08 MySQL