PHP报错:open_basedir restriction in effect

突然想改改我主页上某个跳转用的文件,却发现这个页面打不开了。。。

image

提示 No input file specified()

但是在同一个服务器不同的网站的却没有报这个问题,试着又新建了个 phpinfo.php ,结果依旧不行,一样的报错。。。

那就检查日志吧

1
2
3
4
5
2020/03/21 12:30:49 [error] 20151#20151: *104 FastCGI sent in stderr: "PHP message: PHP Warning:  Unknown: open_basedir restriction in effect. File(/var/www/home/conn.php) is not within the allowed path(s): (/home/wwwroot/home:/tmp/:/proc/) in Unknown on line 0

PHP message: PHP Warning: Unknown: failed to open stream: Operation not permitted in Unknown on line 0

Unable to open primary script: /var/www/home/conn.php (Operation not permitted)" while reading response header from upstream, client: 172.69.34.190, server: home.asec01.net, request: "GET /conn.php HTTP/1.1", upstream: "fastcgi://unix:/var/run/php/php7.2-fpm.sock:", host: "home.asec01.net"

得知是 open_basedir 在作怪,检查 /etc/php/x.x/fpm/php.ini,这个功能并没有被配置,很奇怪

查了查资料,发现 网站目录/.user.ini 也可以配置这个功能

image

果然如此,那就干掉它,重启nginx,一切正常。

解释下为啥会出这个问题哈:

前一阵子重装服务器系统,网站目录直接被我 tar czvf 的打包了,原来的web环境是用lnmp一键安装包装的,这个东西新建网站会自动创建 .user.ini 保证安全,但我重装系统直接 apt install 了所有需要的东西,web目录也都变了。。所以emmmm

Author: 张哲
Link: https://blog.asec01.net/php-open-basedir-lnmp/
Copyright Notice: All articles in this blog are licensed under CC BY-NC-SA 3.0 中国大陆 unless stating additionally.