nginx php-fpm 出现 No input file specified 的解决方法

2020年4月16日00:14:11 评论 351

安装 php-fpm 后,浏览器访问 php 时可能会报 No input file specified. 错误,意思是说找不到相应的 PHP 文件。这个是 PHP 常见的错误之一,主要原因是找不到工作目录所导致的,需要编辑 php.ini 文件,在 open_basedir 参数中加入 nginx 的 root 目录。

 

解决方法

查看 nginx 日志,错误提示:failed to open stream: Operation not permitted,意思是权限不足。

2020/03/23 22:39:12 [error] 885#0: *80 FastCGI sent in stderr: "PHP message: PHP Warning: Unknown: open_basedir restriction in effect. File(/Users/pieruo/www/version.php) is not within the allowed path(s): (/Users/pieruo/Documents/www/:/usr/local/var/www/:/tmp/:/proc/) in Unknown on line 0PHP message: PHP Warning: Unknown: failed to open stream: Operation not permitted in Unknown on line 0Unable to open primary script: /Users/pieruo/www/version.php (Operation not permitted)" while reading response header from upstream, client: 127.0.0.1, server: 127.0.0.1, request: "GET /version.php HTTP/1.1", upstream: "fastcgi://127.0.0.1:9000", host: "localhost"

解决方法:编辑 php.ini 文件,在 open_basedir 参数中添加 PHP 的工作目录,本例以 /Users/pieruo/www 为例。

1. 进入 php-fpm 的根目录

cd /usr/local/etc/php/7.3/

2. 编辑 php.ini 文件

vim php.ini

3. 修改 open_basedir

修改 open_basedir 参数的值,加入 nginx 的 root 目录,修改后的内容如下。

open_basedir = /Users/pieruo/Documents/www/:/Users/pieruo/www/:/usr/local/var/www/:/tmp/:/proc/

结束语

我们手动安装 LNMP 环境的时候,经常会遇到各种各样的一些错误提示,当我们遇到访问 php 提示 No input file specified 的时候可以通过在 php.ini 中添加工作目录的方式解决。如果有任何意见或建议,欢迎在下方留言。

 

本文已通过「原本」原创作品认证,未经作者授权请勿直接转载,负责将依法追究其法律责任。
匿名

发表评论

匿名网友

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: