问题症状
1、其他什么文件都可以正常访问,PHP文件访问就是提示:**No input file specified.**
2、网上各种资料查找均无果,Nginx配置文件什么都对
3、你觉得你快疯了
解决办法
先说可能答案,确认下PHP配置文件是否有设置open_basedir
,如果有,请注释,重启PHP服务后重试,如果正常了,恭喜!如果还不行,可以尝试下列办法。
strace调试大法
这里不具体介绍 strace 命令,详情请自行了解。
我们先把PHP-FPM设为静态模式,子进程数量固定为1
# 编辑PHP-FPM配置
vi /data/app/php/etc/php-fpm.conf
#php-fpm为静态模式
pm = static
#子进程数量固定为1
pm.max_children = 1
# 重启PHP服务
systemctl restart php-fpm.service
获得PHP进程ID
ps -aux | grep php-fpm
查得PID为119109,用strace追踪这个子进程,然后访问网址,观察调用情况
# 绑定pid为2773的进程,设置字符串长度为1000
strace -p 119109 -s 1000
然后过程中发现了异常,真相大白!原来是open_basedir的问题!我表示也不知道什么什么加上去了!注释open_basedir,重启PHP服务,问题解决!
#注释open_basedir
vi /data/app/php/etc/php.ini
; open_basedir = /data/app/nginx/html:/data/app/php/tmp
# 重启PHP服务
systemctl restart php-fpm.service
备注:php-fpm原配置记得恢复哦。