返回顶部
首页 > 资讯 > 后端开发 > PHP编程 >nginx 中找不到php进程如何解决
  • 626
分享到

nginx 中找不到php进程如何解决

2023-06-20 16:06:25 626人浏览 独家记忆
摘要

本篇文章给大家分享的是有关Nginx 中找不到PHP进程如何解决,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。nginx找不到php进程的解决办法:1、修改nginx.conf

本篇文章给大家分享的是有关Nginx 中找不到PHP进程如何解决,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。

nginx找不到php进程的解决办法:1、修改nginx.conf的配置;2、使用try_files捕捉不存在的urls并返回错误。

nginx 找不到php进程怎么办?

nginx找不到php文件

使用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 FoundDate: Fri, 21 Dec 2012 08:15:28 GMTContent-Type: text/htmlProxy-Connection: closeServer: nginx/1.2.5X-Powered-By: PHP/5.4.7Via: 1.1 c3300 (NetCache NetApp/6.0.7)Content-Length: 16File 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块定义的documentroot,如果某个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  documentrootfastcgi_script_name;

所以我们不能忘记在server块中配置root指令,不然documentroot的值为空,只会传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 .... ................................... ...................................}

以上就是nginx 中找不到php进程如何解决,小编相信有部分知识点可能是我们日常工作会见到或用到的。希望你能通过这篇文章学到更多知识。更多详情敬请关注编程网PHP编程频道。

--结束END--

本文标题: nginx 中找不到php进程如何解决

本文链接: https://lsjlt.com/news/298382.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • nginx 中找不到php进程如何解决
    本篇文章给大家分享的是有关nginx 中找不到php进程如何解决,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。nginx找不到php进程的解决办法:1、修改nginx.conf...
    99+
    2023-06-20
  • pecl php找不到如何解决
    本篇内容主要讲解“pecl php找不到如何解决”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“pecl php找不到如何解决”吧!pecl php找不到的解决办法:1、打开命令窗口;2、检查通过...
    99+
    2023-07-04
  • php use类找不到如何解决
    这篇文章主要讲解了“php use类找不到如何解决”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“php use类找不到如何解决”吧!php use类找不到的解决办法:1、打开相应的PHP文件...
    99+
    2023-07-04
  • php找不到文件如何解决
    这篇文章主要介绍“php找不到文件如何解决”,在日常操作中,相信很多人在php找不到文件如何解决问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”php找不到文件如何解决”的疑惑有所帮助!接下来,请跟着小编一起来...
    99+
    2023-07-05
  • centos找不到php命令如何解决
    这篇文章主要介绍“centos找不到php命令如何解决”,在日常操作中,相信很多人在centos找不到php命令如何解决问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”centos找不到php命令如何解决”的疑...
    99+
    2023-06-20
  • apache找不到php文件如何解决
    这篇“apache找不到php文件如何解决”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“apache找不到php文件如何解决...
    99+
    2023-07-05
  • 如何解决php domdocument找不到的问题
    具体问题: php - 找不到 'DOMDocument'类 我在Magento应用程序的页面上发现错误;当我访问它时,它总是显示此消息错误: Fatal error: Class...
    99+
    2024-04-02
  • php警告找不到文件如何解决
    这篇“php警告找不到文件如何解决”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“php警告找不到文件如何解决”文章吧。这个警...
    99+
    2023-07-05
  • php找不到临时路径如何解决
    这篇文章主要讲解了“php找不到临时路径如何解决”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“php找不到临时路径如何解决”吧!问题的原因当PHP无法找到临时路径时,它通常是因为服务器上的临...
    99+
    2023-07-05
  • mongodb服务中找不到如何解决
    如果您无法找到MongoDB服务,请尝试以下解决方法:1. 检查MongoDB服务是否已安装:确保您已正确安装MongoDB,并且已...
    99+
    2023-08-30
    mongodb
  • 如何解决PHP找不到模块的问题
    在进行PHP语言开发过程中,经常会遇到"找不到模块"的错误提示,这是由于PHP配置文件中没有引用正确的扩展模块所导致的。PHP虽然是一门开放源代码的脚本语言,但在很多方面都需要进行配置,以便让代码正常运行。接下来,我们就...
    99+
    2023-05-14
  • win7找不到驱动程序如何解决
    在Windows 7中找不到驱动程序的问题,可以尝试以下解决方法:1. Windows更新:打开控制面板,点击“系统与安全”,选择“...
    99+
    2023-09-18
    win7
  • eclipse找不到tomcat如何解决
    如果Eclipse找不到Tomcat服务器,你可以尝试以下解决方法:1. 确保你已经正确安装了Tomcat服务器,并且知道Tomca...
    99+
    2023-09-26
    eclipse tomcat
  • windows找不到regsvr32jscript.dll如何解决
    如果Windows找不到"regsvr32 jscript.dll"文件,可以尝试以下方法来解决问题:1. 检查文件路径:确保“js...
    99+
    2023-09-29
    Windows
  • win11找不到gpedit.msc如何解决
    Windows 11 Home 版本没有内置 gpedit.msc (组策略编辑器) 工具。但你可以尝试以下方法来解决这个问题:1....
    99+
    2023-09-02
    win11
  • idea找不到WebApplication如何解决
    如果你找不到Web应用的创意,可以尝试以下方法来解决:1. 寻找灵感源:浏览网络上的各种网站、应用和论坛,以获得他人的创意和思路。观...
    99+
    2023-09-21
    idea
  • pycharm找不到pygame如何解决
    如果您安装了Pygame但PyCharm无法找到该库,可以尝试以下解决方法:1. 确认已经正确安装Pygame库。可以在命令行中运行...
    99+
    2023-09-13
    pycharm pygame
  • windows gpedit.msc找不到如何解决
    这篇文章主要介绍了windows gpedit.msc找不到如何解决的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇windows gpedit.msc找不到如何解决文章都会有所收获,下面我们一起来看看吧。解决方...
    99+
    2023-07-01
  • win10找不到gpedit如何解决
    这篇“win10找不到gpedit如何解决”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“win10找不到gpedit如何解决...
    99+
    2023-07-05
  • win10找不到gpedit.msc如何解决
    本文小编为大家详细介绍“win10找不到gpedit.msc如何解决”,内容详细,步骤清晰,细节处理妥当,希望这篇“win10找不到gpedit.msc如何解决”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。win...
    99+
    2023-07-01
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作