共计 705 个字符,预计需要花费 2 分钟才能阅读完成。
今天 PHP 突然报 open_basedir restriction 错误,改了 php.ini 还是报错,于是百度查了查,总结如下:
问题原因
原来 LNMP1.2 的防跨目录由原来在 php.ini 中设置 移至网站根目录下的 .user.ini 进行控制。所以要修改 open_basedir 的目录,得修改网站根目录下的 .user.ini
1. 修改.user.ini
.user.ini 文件无法直接修改
如要修改,需要先执行:chattr -i / 网站目录 /.user.ini
修改完成后再执行:chattr +i / 网站目录 /.user.ini
.user.ini 不需要重启一般 5 分钟左右生效,也可以重启一下 php-fpm 立即生效。
提示
如果要更改网站的防跨目录,必须按上述方法修改防跨目录的设置,否则肯定报错!!
2. 去除防跨目录
如果不想用防跨目录的限制:
LNMP 1.4 以下,直接删除.user.ini 再重启 php-fpm 即可。
LNMP 1.4 上 还需要将 /usr/local/nginx/conf/fastcgi.conf 里面的 fastcgi_param PHP_ADMIN_VALUE “open_basedir=$document_root/:/tmp/:/proc/”; 删除,需要重启 nginx。
LNMPA 或 LAMP 1.2 上的防跨目录的设置
使用的对应 apache 虚拟主机配置文件里的 php_admin_value open_basedir 参数进行设置。
如果不需要设置可以在前面加 # 进行注释,或自行修改目录的限制。
重启 apache 生效。
转自:https://blog.csdn.net/qq331300729/article/details/87890153