nginx php-fpm file not found错误

完美解决:Nginx访问PHP出现File not found. Nginx访问PHP出现File not found.的两种解决方法。 阅读详情

使用php-fpm解析PHP,"No input file specified","File not found"是令nginx新手头疼的常见错误,原因是php-fpm进程找不到SCRIPT_FILENAME配置的要执行的.php文件,php- fpm返回给nginx的默认404错误提示。

比如我的网站doucument_root下没有test.php,访问这个文件时通过抓包可以看到返回的内容。

HTTP/1.1 404 Not Found
Date: Fri, 21 Dec 2012 08:15:28 GMT
Content-Type: text/html
Proxy-Connection: close
Server: nginx/1.2.5
X-Powered-By: PHP/5.4.7
Via: 1.1 c3300 (NetCache NetApp/6.0.7)
Content-Length: 16

File not found.

 

很多人不想用户直接看到这个默认的404错误信息,想自定义404错误.

给出解决办法前我们来先分析下如何避免出现这类404错误,然后再说真的遇到这种情况(比如用户输入一个错误不存在的路径)时该怎么办,才能显示自定义的404错误页。

一、错误的路径被发送到php-fpm进程

出现这类错误,十个有九个是后端fastcgi进程收到错误路径(SCRIPT_FILENAME),而后端fastcgi收到错误路径的原因大都是配置错误。

常见的nginx.conf的配置如下:

 

server {
    listen   [::]:80;
    server_name  example.com www.example.com;
    access_log  /var/www/logs/example.com.access.log;  

    location / {
        root   /var/www/example.com;
        index  index.html index.htm index.pl;
    }

    location /images {
        autoindex on;
    }

    location ~ \.php$ {
        fastcgi_pass   127.0.0.1:9000;
        fastcgi_index  index.php;
        fastcgi_param  SCRIPT_FILENAME  /var/www/example.com$fastcgi_script_name;
        include fastcgi_params;
    }
}

这个配置中有很多不合理的地方,其中一个明显的问题就是root指令被放到了location / 块。如果root指令被定义在location块中那么该root指令只能对其所在的location生效。其它locaiont中没有root指令,像 location /images块不会匹配任何请求,需要在每个请求中重复配置root指令来解决这个问题。因此我们需要把root指令放在server块,这样各个 location就会继承父server块定义的$document_root,如果某个location需要定义一个不同 的$document_root,则可以在location单独定义一个root指令。

另一个问题就是fastCGI参数SCRIPT_FILENAME 是写死的。如果修改了root指令的值或者移动文件到别的目录,php-fpm会返回“No input file specified”错误,因为SCRIPT_FILENAME在配置中是写死的并没有随着$doucument_root变化而变化,我们可以修改 SCRIPT_FILENAME配置如下:

fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;

 

所以我们不能忘记在server块中配置root指令,不然$document_root的值为空,只会传$fastcgi_script_name到php-fpm,这样就会导致“No input file specified”错误。

 

二、请求的文件真的不存在

当nginx收到一个不在的.php文件的请求时,因为nginx只会检查$uri是否是.php结尾,不会对文件是否存在进行判断,.php结尾 的请求nginx会直接发给php-fpm处理。php-fpm处理时找不到文件就会返回“No input file specified”带着“404 Not Found”头。

解决办法

我们在nginx拦截不存在的文件,请求并返回自定义404错误

使用 try_files 捕捉不存在的urls并返回错误。

location ~ .php$ {
 try_files $uri =404;
 fastcgi_pass 127.0.0.1:9000;
 fastcgi_index index.php;
 fastcgi_param SCRIPT_FILENAME ....
 ...................................
 ...................................
}

上面的配置会检查.php文件是否存在,如果不存在,会返回404页面。

点云配准实战:用DGCNN+Transformer+SVD搞定3D模型对齐(附PyTorch代码) 本文详细介绍了基于深度学习的点云配准实战方法,重点解析了Deep Closest Point (DCP)模型。该模型融合了DGCNN、Transformer和可微分SVD三大核心模块,能够端到端地预测点云间的刚性变换,有效克服传统ICP算法对初始位置敏感、易陷入局部最优的缺点。文章提供了完整的PyTorch代码实现、ModelNet40数据集处理、训练策略及显存优化技巧,旨在帮助开发者在机器人、自动驾驶等领域实现精准的3D模型对齐。 阅读详情

相关推荐

EGE基础入门篇(一):绘图基础知识

EGE绘图所需要了解的相关基础知识

依稀_yixy的博客 2万+

关于php-fpm启动之后出现file not found情况的原因分析

这两天遇到个特别诡异的问题,系统centOS7,有两种方式可以启动php-fpm: 1,/usr/sbin/php-fpm直接启动(我的可执行文件在这个路径) 2,通过service启动,即systemctl start php-fpm 然而会出现一个诡异的现象,通过方式1启动的进程没有任何问题,而通过service启动的php-fpm进程在加载php文件时却会出现file not found

vikie.Q的专栏 1万+

发那科机器人弧焊指令实战:从Search指令到组掩码设置的完整避坑指南

本文详细解析了发那科机器人弧焊指令系统的实战应用,从Search指令的正确使用到组掩码设置的避坑技巧。通过实际案例和参数优化建议,帮助工程师提升焊接质量和生产效率,避免常见错误操作。特别针对T2模式示教难题和外部轴协调运动提供了专业解决方案。

weixin_29040367的博客 185

php-fpm FIle not found问题

nginx+php-fpm 报“File not found.” 在php-fpm的www.conf中找到用户,将用户修改为工程文件的所有用户

Heimdall_vata的博客 1083

S型速度曲线C程序实现

S型速度曲线C语言程序实现 前言 S型曲线相较于梯形速度曲线具有运行更加平稳的特点,S型曲线共有八种运行情况,感兴趣可以查阅相关文献 代码段 #include <stdio.h> #include <math.h> #define FP64 double int main(void) { /**************************** 定义相关变量(需要映射到PLC寄存器才能进行监控) ***********************/ FP6

LSX312441548的博客 8392

RAGFlow本地部署遇阻:解析进度卡顿的排查与修复指南

本文针对RAGFlow本地部署中常见的文档解析进度卡顿问题,提供了详细的排查与修复指南。核心原因是模型下载网络受阻,解决方案是通过修改环境配置文件,将模型下载源切换至国内镜像站,从而快速解决解析停滞问题。

weixin_29297127的博客 341

nginx配置pathinfo

server {         listen       8080;         server_name  localhost 127.0.0.0;         #charset koi8-r;         #access_log  logs/host.access.log  main;         location / {

m0_37520284的博客 426

GhidrAssist:AI驱动的逆向工程助手实战指南

逆向工程是分析软件内部工作原理、理解二进制代码逻辑的关键技术,广泛应用于软件安全、恶意代码分析和漏洞挖掘等领域。其核心原理在于通过反编译、控制流与数据流分析等手段,将机器码还原为可理解的高级语言表示。传统逆向分析高度依赖人工经验,面对海量代码时效率低下且易出错。随着大语言模型(LLM)技术的发展,其强大的代码理解与推理能力为自动化逆向分析提供了新的可能。通过将LLM与成熟的逆向工程框架(如Ghidra)相结合,可以构建智能辅助系统,实现代码意图的自动解释、变量/函数的智能重命名以及潜在漏洞模式的辅助识别,从

weixin_42547335的博客 596

Nginx+PHP-FPM——Nginx日志:[Primary script unknown] && 网页:[file not found. ]解决方案

问题描述 访问Nginx服务器中.php文件,提示 file not found。 Nginx-error.log日志: 2020/02/07 13:01:38 [error] 26483#26483: *398 FastCGI sent in stderr: "Primary script unknown" while reading response header from upstr...

无限迭代中...... 2557

实例讲解CANoe报文解析使用方法

在日常工作中,经常需要分析车辆产生故障的原因,在电动汽车中,分布式控制器及线束在其中某一个地方出现问题,就有可能造成车辆故障,但是由于电气零件无法直观的观察到哪个部位发生了故障,所以要借助工具测量电气变量或者采集报文信息通过分析,解析出故障原因,从而为车辆的开发,测试,维修提供支持。其中汽车行业最通用的通讯方式就是CAN通讯,本文针对使用CANoe对CAN报文离线分析的使用方法做详细介绍。

qq_43011586的博客 1万+

YOLO + Qwen3-VL-Seg 深度诊断:双引擎协同完成AI质检

本文提出了一种创新的工业质检双引擎架构,结合YOLO实时检测与Qwen3-VL-Seg精细化诊断,有效解决了传统检测方法中检测与诊断割裂的问题。YOLO部署在边缘端实现高效定位(3.2MB模型,<10ms延迟),Qwen3-VL-Seg在云端完成语义级缺陷分析(仅17M参数的解码器实现像素级分割)。该方案通过6步闭环流程,从实时感知到工艺反哺,显著提升了工业质检的准确性和可解释性,为智能制造提供了从"发现"到"解决"的完整技术路径。

mingo_敏 221

nginx+php-fpm出现file not found错误

最近有朋友在搭建lnmp环境的时候,访问php文件,一直提示 File not found. ,这里记录下解决方法,帮助其他遇到同样问题的小伙伴。 遇到这种问题,一般就是两种情况: nginx的配置文件不对 在nginx.conf中,我们能看到一段被注释掉的默认配置 location ~ \.php$ { root html;

qq_33227519的博客 2887

人工智能---什么是Transformer?

Transformer是一种强大的神经网络架构,最初由Google的研究人员在论文《Attention is All You Need》中提出,用于自然语言处理任务,特别是在机器翻译方面取得了巨大成功。Transformer的核心思想是完全基于自注意力机制(self-attention mechanism)来实现序列到序列(sequence-to-sequence)的学习。它在自然语言处理(NLP)和其他序列到序列任务中表现出色,逐渐成为该领域的主流模型。近些年也逐渐在自动驾驶领域有所应用。

智能汽车人的博客 3955

nginx运行出现 file not found 错误处理原因

在阿里云装nginx+php+mysql nginx运行出现 file not found 错误处理原因 1,第一情况 location ~ \.php$ { # root html; fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; fastc...

weixin_30784501的博客 1105

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

nginx File not found 错误(Nginx无法解析PHP文件)

当我没初始配在lnmp的时候,用浏览器打开查看php能否解析网页的时出现File not found 不用惊奇让我我们分析一下 使用php-fpm解析PHP,“No input file specified”,"File not found"是令nginx新手头疼的常见错误,原因是php-fpm进程找不到SCRIPT_FILENAME配置的要执行的.php文件,php-fpm返回给nginx的默认404错误提示。 一、错误的路径被发送到php-fpm进程 出现这类错误,十个有九个是后端fastcgi进.

IChen.的博客 5971

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

linux系统上使用nginx访问php文件返回File not found错误处理方案

linux系统上使用nginx访问php文件返回File not found错误处理方案

徊忆羽菲 678

docker中建立Nginx和php-pfm 报file not find .错误。

在docker中创建Nginx与php-pfm 报file not find. 错误;1、检查nginx.conf中的fastcgi_param 是否是SCRIPT_FILENAME $document_root$fastcgi_script_name;2、检查docker php的文件映射目录和Nginx是的文件映射目录是否一致。注:我就...

weixin_33672109的博客 4414

nginx File not found 错误

nginx File not found 错误 使用php-fpm解析PHP,"No input file specified","File not found"是令nginx新手头疼的常见错误,原因是php-fpm进程找不到SCRIPT_FILENAME配置的要执行的.php文件,php-fpm返回给nginx的默认404错误提示。 比如我的网站doucument_ro...

786

docker nginx 访问404_Nginx + PHP-fpm File not found.问题解决记录

这篇文章介绍的内容是关于Nginx + PHP-fpm File not found.问题解决记录,有着一定的参考价值,现在分享给大家,有需要的朋友可以参考一下现象确认:打开浏览器的开发者工具,查看请求信息700粉丝福利,感谢大家一直以来的支持,特此整理了进阶资料分享给大家程序猿的生活:【社群福利】30G-PHP进阶资料,助力大家都能30K​zhuanlan.zhihu.comHTTP/1.1 4...

weixin_34342091的博客 2833

Linux deepin系统下配置nginx+php-fpm+PHPstorm并解决403/404/502/file not found错误

在一台全新Linux上安装PHP并使用PHPstorm进行编辑,包括对nginx的一些配置和中途遇到的403 forbidden、404 not found、502 bad gateway、file not found等错误的处理和解决思路的指引

学渣的博客 4966

nginx File not found

出现 nginx File not found 错误 首先判断这个文件是否 真的存在 如果文件确实存在 那么应该是 php-fpm 路径有问题了 解决办法 1查看 php-fpm 的配置文件 我的 文件位置在 /etc/php-fpm.d/www.conf 中 这里有个 listen 查看一下 这个后面的参数要与 nginx 中的 配置文件的路径保持一直 比如 127.0.0.1:900...

weixin_30826761的博客 101

docker配置nginx+php各种坑

docker部署nginx+php的介绍很多,我也是安装上面的来部署,发现各种坑,在这给列举下,供大家参考。 1、安装好docker的nignx 和php 2、修改nginx.conf配置,加上php解析 其中 location ~ .php$ { include fastcgi_params; fastcgi_param SCRIPT_FILENAME documentroot document...

千门公子襄 1074

nginx File not found 错误(附nginx.conf)

使用php-fpm解析PHP,"No input file specified","File not found"是常见错误,原因是php-fpm进程找不到SCRIPT_FILENAME配置的要执行的.php文件,php-fpm返回给nginx的默认404错误提示。 出现这类错误,十个有九个是后端fastcgi进程收到错误路径(SCRIPT_FILENAM...

weixin_44694538的博客 384

oneproxy php,Nginx与PHP环境搭建问题及解决办法

今天需要搭建一个ngine+php的服务器环境,之前都是使用lamp的环境,因此在搭建的过程中遇到了很多问题,在此总结如下:ngine本身不支持php,所以需要安装php-fpm的支持,怎样安装程序以及php拓展在这就不多说了,百度一下就会解决。首先安装ngine,安装成功后打开ngine的配置文件,配置文件路径:/usr/local/ngine/conf/ngine.conf.修改配置信息如下...

weixin_39945445的博客 147

mac nginx加载php 配置,Mac下Nginx安装环境配置详解

环境信息:Mac OS X 10.11.1Homebrew 0.9.5正文一、安装 Nginx1.终端执行:brew search nginxbrew install nginx当前版本 1.6.2安装完以后,可以在终端输出的信息里看到一些配置路径:/usr/local/etc/nginx/nginx.conf (配置文件路径)/usr/local/var/www (服务器默认路径)/usr/lo...

weixin_39916355的博客 232
上一篇: PHP Excel
下一篇: vsftp虚拟用户pam认证文件的创建和配置
sr_csdn
博客等级 码龄13年 0粉丝 11原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值