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

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

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

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

第一种情况

可以在你的location php 里面添加当文件不存在时返回404而不是交给php-fpm进行处理

location ~ \.php$
{
	...
	#文件不存在转404
	try_files	$uri = 404;
	...
}

然后,在你的配置文件中找到下面这段

fastcgi_param  SCRIPT_FILENAME  /scripts$fastcgi_script_name;

替换成下面

fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;

然后重新加载nginx配置文件

/etc/init.d/nginx reload

第二种情况

两种解决方法:
第一种,就是把你root文件夹设为其他用户允许
第二种,找到你的php-fpm的配置文件,找到下面这段,把apache替换成你要的用户组

; RPM: apache Choosed to be able to access some dir as httpd
user = apache
; RPM: Keep a group allowed to write in log dir.
group = apache

Nginx访问PHP文件的File not found错误处理,两种情况》有2个想法

  1. 唐权

    我的是在Nginx目录下html里面的php目录能进行访问PHP文件,设置了try_files $uri =404,访问根目录下的Php会显示file not found,如果访问的是不存在的Php会返回404,nginx和php-fpm的用户和用户组已设置为nobody,php访问目录已设置权限777,麻烦看看,谢谢

    回复

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注