返回首页 - Notes - 2017

LNMP 环境处理 no input file specified 错误


问题

访问 Web 站点,服务器间或报 no input file specified 错误,上服务器重启 PHP-FPM 就恢复正常,但过一段时间又会重现该错误


排查

NGINX 错误日志找下如下报错信息:

2017/12/11 16:05:38 [error] 16879#0: *14981 FastCGI sent in stderr: "PHP message: PHP Warning:  Unknown: open_basedir restriction in effect. File(/home/wwwroot/xgs/test1/index.php) is not within the allowed path(s): (/home/wwwroot/default/:/tmp/:/proc/) in Unknown on line 0
PHP message: PHP Warning:  Unknown: failed to open stream: Operation not permitted in Unknown on line 0

出错原因:站点路径不在 PHP 允许的路径内,被 open_basedir 拦截


解决

NGINXfastcgi.conf 中,找到下面这样的语句:

fastcgi_param PHP_ADMIN_VALUE "open_basedir=$document_root/:/tmp/:/proc/";

问题就出在这,NGINX 改写了错误的 open_basedir 路径列表。将这行配置注释掉,然后重启 NGINX,问题解决


后记

为什么 $document_root 的值间或正确、间或不正确,不知道是什么原因导致,还需要更多研究


date:2017-12-11