Nginx访问PHP文件的File not found错误处理,两种情况
2024-10-18 04:11:26
这个错误很常见,原有有下面两种几种
1. php-fpm找不到SCRIPT_FILENAME里执行的php文件
2. php-fpm不能访问所执行的php,也就是权限问题
第一种情况
可以在你的location php 里面添加当文件不存在时返回404而不是交给php-fpm进行处理
location ~ \.php$
{
...
#文件不存在转404
try_files $uri = 404;
...
}
location ~ \.php$ {
root html;
fastcgi_pass 127.0.0.1:;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME /script$fastcgi_script_name;
include fastcgi_params;
}
然后,在你的配置文件中找到下面这段
fastcgi_param SCRIPT_FILENAME /scripts$fastcgi_script_name;
替换成下面
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
然后重新加载nginx配置文件
systemctl restart nginx(/usr/local/nginx/sbin/nginx)
第二种情况
两种解决方法:
第一种,就是把你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
------------------------------另一个网友的问题,其实问题一样----
问题原因:
fastcgi_param SCRIPT_FILENAME scripts$fastcgi_script_name;
解决办法:改成
fastcgi_param SCRIPT_FILENAME /Users/linchen/Sites$fastcgi_script_name;
其中,/Users/linchen/Sites 是网站的根目录
最终内容如下:
location ~ \.php$ {
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME /Users/linchen/Sites$fastcgi_script_name;
include fastcgi_params;
fastcgi_intercept_errors on;
}
最新文章
- PHP 调用webService方式
- 安卓开发 想要获取某个View的高度(我是在做滚动浮层的时候用到的)
- Linux命令(1) - 查看内存使用情况: free -hm
- HDU 2048 神、上帝以及老天爷(递归,错排,dp,概率)
- iOS开发--调试必备 — NSLog
- 用eval 动态编译代码
- 解决Xcode升级7.0后,部分.a静态库在iOS9.0的模拟器上,link失败的问题
- Java类修饰符
- 201521123111 《Java程序设计》第1周学习总结
- 通过数据分析告诉你北京Python开发的现状
- requestAnimationFrame 持续动画效果
- BZOJ3481 DZY Loves Math III(数论+Pollard_Rho)
- Python Qt的窗体开发的基本操作
- mongodb常用语法
- 修改IntelliJ IDEA字体
- 初识Linux(三)--文件系统基本结构
- Android初体验-D3
- 为啥Spring和Spring MVC包扫描要分开?
- Snowflake Snow Snowflakes【Poj3349】
- 跟我一起玩Win32开发(2):完整的开发流程