Rootop 服务器运维与web架构

php网站访问提示No input file specified

访问网站首页index.php提示错误:
No input file specified.

wordpress提示的错误,其实这个错误不仅仅在wp框架下出来,任何php程序都会出现,
我这里出现这个问题是由于开启防跨目录功能导致,此功能一般是防止恶意代码写入到其他网站目录文件,导致挂马之类的攻击。
这个功能由open_basedir参数控制。在php.ini里可配置,在每个网站根目录下的.user.ini也可以配置。
参考:https://www.php.net/manual/zh/configuration.file.per-user.php

查看下此站的 .user.ini 文件:

root@rootop:/home/web/test.rootop.org# cat .user.ini 
open_basedir=/www/wwwroot/test.rootop.org:/tmp

查看php.ini配置:

root@rootop:/etc/php/7.2/fpm# cat php.ini | grep user.ini
; Name for user-defined php.ini (.htaccess) files. Default is ".user.ini"
;user_ini.filename = ".user.ini"
;user_ini.filename =
;user_ini.cache_ttl = 300

在nginx中日志会体现为:

2019/12/10 17:55:28 [error] 25190#0: *1062213 FastCGI sent in stderr: "PHP message: PHP Warning:  Unknown: open_basedir restriction in effect. File(/home/web/test.rootop.org/index.php) is not within the allowed path(s): (/www/wwwroot/test.rootop.org:/tmp) 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: /home/web/test.rootop.org/index.php (Operation not permitted)" while reading response header from upstream, client: 223.104.210.230, server: test.rootop.org, request: "GET /index.php HTTP/1.1", upstream: "fastcgi://unix:/run/php/php7.2-fpm.sock:", host: "test.rootop.org"

解决方法:
要么直接删除.user.ini,要么修改为正确的防跨目录路径(正确的网站目录路径)。

另外出现此错误,也有可能是其他原因导致,需要从日志里排查。

原创文章,转载请注明。本文链接地址: https://www.rootop.org/pages/4638.html

作者:Venus

服务器运维与性能优化

评论已关闭。