问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

为什么nginx无法使用laravel的get请求非php页面报错no input file spe...

发布网友 发布时间:2022-04-23 17:58

我来回答

1个回答

热心网友 时间:2022-04-06 07:31

  打开一个页面<?php phpinfo(); ?> 然后在游览器下运行:页面提示 No input file specified. FastCGI模式下访问php文件时,出现No input file specified.错误 查看access.log 发现是 404
  打开一个页面<?php phpinfo(); ?> 然后在游览器下运行:页面提示
  No input file specified.
  FastCGI模式下访问php文件时,出现No input file specified.错误
  查看access.log 发现是 404
  原因分析:
  1、任何对.php文件的请求,都简单地交给php-cgi去处理,但没有验证该php文件是否存在。PHP文件不存在,没办法返回普通的404错误,它返回 一个404,并带上一句”No input file specified”
  2、还可能跟 路径或者 权限有关系,或者SCRIPT_FILENAME 变量没有被正确的设置(这在nginx是最常见的原因)
  1)如果html也出现404错误,那么就是document root 设置的有问题
  2)检查脚本文件的权限, 可能PHP或者web server不能读取它
  3)SCRIPT_FILENAME设置错误
  网上的解决方法:
  步骤一:修改nginx主配置文件nginx.conf
  默认安装的nginx配置文件中定义fastcgi处是:fastcgi_param SCRIPT_FILENAME /scripts$fastcgi_script_name;
  可以将它改成:
  fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
  必须保证 $document_root 在配置文件中,在astcgi_param SCRIPT_FILENAME前面被用到过一次, 后面有解释为什么。
  步骤二:修改PHP的住配置文件php.ini
  修改/etc/php5/cgi/php.ini中cgi.fix_pathinfo=1
  这样也可让php-cgi正常使用SCRIPT_FILENAME这个变量
  有人说,这样改也行
  fastcgi_param SCRIPT_NAME /home/gavin/nginx/$fastcgi_script_name;
  让我们看看PHP对这两个变量是怎么解释的吧
  SCRIPT_NAME
  SCRIPT_FILENAME
  据说,必须指定正确的SCRIPT_FILENAME, PHP-CGI会忽略SCRIPT_NAME(即使它的值设置的是正确的)
  或者指定特殊的php.ini, 设置doc_root, discard path, fix pathinfo等等
  script_filename 只是被用做一种快捷方式。 如果fix_pathinfo设置打开,init函数将它用来决定真实的路径
  因为配置文件会改变 nginx的变量$fastcgi_script_name
  fastcgi_param SCRIPT_NAME /home/gavin/nginx/$fastcgi_script_name;
  fastcgi_param SCRIPT_FILENAME $fastcgi_script_name;
  和
  fastcgi_param SCRIPT_FILENAME /home/gavin/nginx/$fastcgi_script_name;
  fastcgi_param SCRIPT_NAME $fastcgi_script_name;
  这两种配置都是可以的
  用
  fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
  也是可以的,但必须保证 $document_root 被正确设置过
  ‘SCRIPT_FILENAME’
  当前执行脚本的绝对路径名(pathname)
  ‘SCRIPT_NAME’
  含有当前脚本的路径。当页面需要指向他们自己时,有用. __FILE__ 常量包含路径和文件名
  ; cgi.fix_pathinfo provides *real* PATH_INFO/PATH_TRANSLATED support for CGI. PHP’s
  ; previous behaviour was to set PATH_TRANSLATED to SCRIPT_FILENAME, and to not grok
  ; what PATH_INFO is. For more information on PATH_INFO, see the cgi specs. Setting
  ; this to 1 will cause PHP CGI to fix it’s paths to conform to the spec. A setting
  ; of zero causes PHP to behave as before. Default is 1. You should fix your scripts
  ; to use SCRIPT_FILENAME rather than PATH_TRANSLATED.
  ; cgi.fix_pathinfo=0
  主要跟CGI标准的
  PATH_INFO
  PATH_TRANSLATED
  SCRIPT_NAME
  有关系
  修修改了好多
  我的解决方法:
  把 NGINX DEFAULT 那个文件中的
  fastcgi_param SCRIPT_NAME $fastcgi_script_name;
  改成实际的路径
  我的是fastcgi_param SCRIPT_NAME /var/www/nginx-default/$fastcgi_script_name;
  然后就好了
  以上是转载,下面是个人的解决办法:
  1. 更改php.ini
  首先php.ini的配置中把
  ;cgi.fix_pathinfo=0 改为
  cgi.fix_pathinfo=1
  重启PHP或PHP-FPM
  2. 在nginx/conf/nginx.conf 找到:
  fastcgi_param SCRIPT_FILENAME /scripts$fastcgi_script_name; 改为:
  fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
  然后重启nginx【killall -9 nginx ,./sbin/nginx】
  3、如果还不行,还有一种可能是php的测试页面代码格式有问题,我当初做的时候,phpinfo写成了:<? php phpinfo(); ?> 所以错了,应该是<?phpphpinfo(); ?>
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
社保到期了还有时效吗 2023年河北退休人员认证时间 社保待遇资格认证有效期怎么认证 ...语法How long does it take you to get to school? 此句中“it... 海信电视初始设置后无信号 设置海信电视恢复出厂设置搜不到电视信号 海信一族电视大锅恢复设置没信号怎么? 如何用c程序读取txt文件? 成都膨胀螺丝型号 云南农信个人如何开通手机银行 laravel中button怎样实现页面跳转 laravel 迁移怎么设置int类型 laravel框架下,database怎么建 如何统一访问ip设置centos7 php7.0 laravel? Laravel 服务提供者是如何注册的 Laravel只能通过Laravel安装器进行安装。 怎么禁止laravel自动转义HTML标签? 什么是Laravel? laravel有没有获得汉字拼音首字母的包 从市场上买回来的螃蟹为什么煮完后是咸的? 怎样做咸海蟹 买的咸螃蟹太咸了怎么办? 醉蟹腌的咸了该怎么样淡一点 海蟹蒸完之后肉质会特别咸? 蒸螃蟹时想要没有腥味需要怎么做? 海蟹为什么死之后,蒸出来的肉会那么咸? 熟冻面包蟹太咸,如何去咸 如何腌制咸梭子蟹? 冻海蟹怎样去咸味,朋友买了一些冻海蟹,我蒸了几只,好咸啊,跟咸鱼差不多 海蟹如何去海水味道 如何在 laravel 5 分页中实现自定义页码输入框来跳转到自定义页_百度知... Laravel如何select除id之外的其他字段 laravel input怎样防止sql注入 laravel5.2 centos 运行出错,请问怎么解决 PHP的Laravel如何设置一进去就直接跳转到主页,并且使其路由可用 laravel中所有的跳转都报错怎么回事 就是解析不了form中还有href中的跳转都是原样输出的 哪几种植物放家里招财 冰箱上放什么植物招财 冰箱上放大麦干花可以吗 家里主人是属兔嗯请问那个冰箱上面应该放什么花? 客厅冰箱旁放什么植物好看且对人体有利 红运当头花放在冰箱上面可以吗? 西红柿怎么去皮?西红柿去皮方法,怎样给西红柿去皮妙招 番茄如何快速去皮? 想重新做一个网站用之前的网址,怎么办 我要重新做个网站,怎么做? 急!不想更换公司网站域名的情况下,能重新做网站吗? 网站重新做,域名用原来的话需要怎么做 保留原来的域名重新做网站能做到么? 怎么重装网络系统 公司原来有个网站,不太好管理。现在想换一家公司重新做个网站,网址(域名)都用原来的,请问怎么办啊!