Nginx访问PHP文件的File not found错误处理,两种情况

这个错误很常见,原有有下面两种几种

php-fpm找不到SCRIPT_FILENAME里执行的php文件

php-fpm不能访问所执行的php,也就是权限问题

第一种情况

更改配置文件nginx.conf

fastcgi_param SCRIPT_FILENAME /scripts$fastcgi_script_name; 

替换成下面

fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;

CentOS7通过yum安装php7.2的方法

1、安装源

安装php72w,是需要配置额外的yum源地址的,否则会报错不能找到相关软件包。

php高版本的yum源地址,有两部分,其中一部分是epel-release,另外一部分来自webtatic。如果跳过epel-release的话,安装webtatic的时候,会有错误爆出。

所以,这里需要的命令是:

rpm -Uvh https://dl.fedoraproject.org/pub/epel/7/x86_64/Packages/e/epel-release-7-11.noarch.rpm
rpm -Uvh https://mirror.webtatic.com/yum/el7/webtatic-release.rpm

当然,您也可以选择下面的这个命令,也是一样的效果。

配置nginx支持php

确保php-fpm已经安装和启动:

ps -ef | grep php-fpm

如果没有安装,用 yum install -y php-fpm 安装即可,确保php环境都已经安装。
如果没有启动,则启动php-fpm:

/usr/local/sbin/php-fpm &

查看是否启动成功:

[root@localhost ~]# ps -ef | grep php-fpm
root       6465   2679  0 11:11 pts/2    00:00:00 php-fpm: master process (/etc/php-fpm.conf)
apache     6467   6465  0 11:11 pts/2    00:00:00 php-fpm: pool www
apache     6468   6465  0 11:11 pts/2    00:00:00 php-fpm: pool www
apache     6469   6465  0 11:11 pts/2    00:00:00 php-fpm: pool www
apache     6470   6465  0 11:11 pts/2    00:00:00 php-fpm: pool www
apache     6471   6465  0 11:11 pts/2    00:00:00 php-fpm: pool www
root       6495   2679  0 11:12 pts/2    00:00:00 grep --color=auto php-fpm

[root@localhost ~]# netstat -lpn |grep 9000
tcp        0      0 127.0.0.1:9000          0.0.0.0:*               LISTEN      6465/php-fpm: maste