首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Debian9+ PHP7.0-FPM + NGINX 1.10.3-1 path_info问题

Debian9是一种基于Linux的操作系统,它提供了稳定和安全的基础设施。PHP7.0-FPM是PHP的一种运行模式,它通过FastCGI进程管理器来处理PHP脚本。NGINX 1.10.3-1是一种高性能的Web服务器和反向代理服务器,它可以处理大量并发连接并提供高效的静态文件传输。

在Debian9上使用PHP7.0-FPM和NGINX 1.10.3-1时,可能会遇到path_info问题。Path_info是URL中的一部分,用于指示服务器如何解析请求。当使用PHP-FPM和NGINX时,需要正确配置服务器以处理path_info。

解决path_info问题的步骤如下:

  1. 配置NGINX:
    • 在NGINX的配置文件中,找到与PHP处理相关的位置块。
    • 添加或修改以下指令:location ~ \.php$ { fastcgi_split_path_info ^(.+\.php)(/.+)$; fastcgi_pass unix:/var/run/php/php7.0-fpm.sock; fastcgi_index index.php; include fastcgi_params; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; fastcgi_param PATH_INFO $fastcgi_path_info; }
    • 保存并退出配置文件。
    • 重新加载NGINX配置:sudo service nginx reload
  2. 配置PHP-FPM:
    • 打开PHP-FPM的配置文件:sudo nano /etc/php/7.0/fpm/php.ini
    • 搜索并找到以下指令:;cgi.fix_pathinfo=1
    • 将其修改为:cgi.fix_pathinfo=0
    • 保存并退出配置文件。
    • 重新启动PHP-FPM:sudo service php7.0-fpm restart

通过以上步骤,你可以解决Debian9上使用PHP7.0-FPM和NGINX 1.10.3-1时的path_info问题。这样配置后,NGINX将正确解析URL中的path_info,并将其传递给PHP-FPM进行处理。

推荐的腾讯云相关产品:

以上是腾讯云提供的一些与云计算相关的产品,可以根据具体需求选择适合的产品来支持和扩展你的云计算应用。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

  • 在 Ubuntu 16.04 下配置 Nginx + PHP 7.0 + MySQL 环境

    ,PHP7.0和php7.0-fpm 直接用apt一键安装,一般都不需要下载源码编译 apt-get -y install nginx php7.0 php7.0-fpm 检查nginxphp7.0-...fpm服务运行情况 systemctl status nginx systemctl status php7.0-fpm 如无异常它应该会出现绿色的 active (running) 的提示,输入 q...chown 命令: chown -R www-data:www-data /var/www 以后每次上传网站文件之后,都可以运行一下这个命令,保证 php 对网站的文件都可写,避免出现各种奇奇怪怪的问题...修改 Nginx 配置 第二步安装nginx php7.0 php7.0-fpm的时候,一个基本的php服务器就已经搭建起来了,但我们还没有配置好,所以它暂时并不能按照我们的预期去运行。...一般来说,我们的预期是,当nginx收到的请求是指向一个静态文件的时候,nginx会将相应的文件返回给客户端,当nginx收到的请求指向php脚本时,nginx会将请求转向php7.0-fpm中处理,将处理结果返回给客户端

    1.9K20

    Ubuntu下安装Nginx+PHP+MySql环境

    最近刚好有个朋友想要学习下ubuntu系统,然后我就把一个闲置的云服务器给她玩,顺手发个她上次讲课时候的教程(教程地址)然而呢,忘记一个问题,我们当时教学用的服务器是14.2的版本,而我给她重装的是,16.04...原本的php5也因为apt源的问题无法安装,于是自己度娘加一顿操作,在ubuntu下安装了php7+mysql5.7,顺带把过程记录下来,方便以后查阅。...#apt-get -y install php7.0-fpm 这个安装应该是没有什么问题的啦。 下面就是配置喽!...重新加载 PHP-FPM: # service php7.0-fpm reload 怎么看PHP是不是跑起来了?HelloWorld?肯定不行,探针走起!...APCu可以安装如下: #apt-get -y install php-apcu 重新加载 PHP-FPM: #service php7.0-fpm reload 刷新 ip/info.php 浏览器看看模块安装情况

    4.2K71

    PHP path_info,Thinkphp controller not exists indexphp

    问题背景: php7.2 nginx thinkphp5 问题体现: url如果以/为结尾 比如index.php/admin/,不会自动访问默认控制器、方法index,而是报错 controller...值来解析的,甚至传参也可以带在path_info中 排查path_info的值 一路追踪源码,在thinkphp\library\think\Request.php 路径中,找到以下代码 /**...服务器 经过找一些资料,我得知了该变量的值是来自web服务器,也就是我使用的nginx 宝塔安装的nginx,会自动维护很多常用配置,比如不同版本的php配置、path_info配置等等(有些自己编译安装的...php没有path_info 需要自己添加) 在/www/server/nginx/conf 下有多个php版本的配置文件,在其中有一个配置项 fastcgi_index index.php; fastcgi...报错变为:controller not exists:app\admin\controller\index2\Php 可以证实是该配置影响结果 总结处理 Web服务器该配置影响了程序运行,那么我们如何解决该问题

    1.8K10

    续:让nginx支持pathinfo

    续上一篇《让nginx支持pathinfo》 原文的配置在我本机(Win,Nginx1.2.4)还算可以,但是有一个bug,就是如果url里面包含trailing slash(最后的斜杠/)的话,PATH_INFO...捕捉到的值有误,为ATH_INFO,同时$_SERVER数组里面多了一个键名为ORIG_PATH_INFO的元素其值为我们期望的path_info,非常怪异,一开始以为是$path_info变量未定义的问题...,$p不见了,剩下ath_info,后面改过变量名之后还是不行,证明不是这个问题。...同样的配置搬到服务器上面用(CentOS6,Nginx1.0.10)完全行不通,根据官方指引(PHPFcgi Common Errors、Nginx Pitfalls)排查无果,再在网上找了许许多多的方案来来回回测试了好几十遍...折腾了很久之后还是有各种问题,其实很多PHP框架(如Yii、CI、ThinkPHP)、流行的应用系统(Wordpress、Joomla)等都支持另外一种兼容模式的pathinfo,就是通过其他方法获取path_info

    57830

    PHP-fpm 远程代码执行漏洞(CVE-2019-11043)分析

    也就是说,当path_info被%0a截断时,path_info将被置为空,回到代码中我就不难发现问题所在了。...部分全局变量会在nginx的配置中定义 其中变量会在堆上相应的位置储存 回到利用过程中,这里我们通过控制path_info指向request->env来使request->env->pos置零。...而问题就在于,我们怎么能向我们想要的位置写数据呢?又怎么向我们指定的配置写文件呢?...这个漏洞在实际研究过程中对真实世界危害有限,其主要原因都在于大部分的nginx配置中都携带了对文件的检查,且默认的nginx配置不包含这个问题。...但也正是由于这个原因,在许多网上的范例代码或者部分没有考虑到这个问题的环境,例如Nginx官方文档中的范例配置、NextCloud默认环境,都出现了这个问题,该漏洞也正真实的威胁着许多服务器的安全。

    1.1K30

    PHP-fpm 远程代码执行漏洞(CVE-2019-11043)分析

    也就是说,当path_info被%0a截断时,path_info将被置为空,回到代码中我就不难发现问题所在了。 ?...其中env_path_info就是变量path_info的地址,path_info为0则plien为0. slen变量来自于请求后url的长度 int ptlen = strlen(pt);...而问题就在于,我们怎么能向我们想要的位置写数据呢?又怎么向我们指定的配置写文件呢?...这个漏洞在实际研究过程中对真实世界危害有限,其主要原因都在于大部分的nginx配置中都携带了对文件的检查,且默认的nginx配置不包含这个问题。...但也正是由于这个原因,在许多网上的范例代码或者部分没有考虑到这个问题的环境,例如Nginx官方文档中的范例配置、NextCloud默认环境,都出现了这个问题,该漏洞也正真实的威胁着许多服务器的安全。

    1.2K30

    nginx的一个奇葩问题 500 Internal Server Error phpstudy2018

    [nginx]nginx的一个奇葩问题 500 Internal Server Error 解决方案 nginx 一直报500 Internal Server Error 错误,配置是通过phpstudy2018...修改成这样就好了  root   "D:\\php\\phpstudy\\PHPTutorial\\WWW\\foxphp"; 查找了很多资料,因为很奇葩,木有多少可供参考的,之前配置单斜杠一直木有问题...有人说是地址问题,或许是单斜杠被当成转义符号了吧,那就再加一个,然后就没有然后了,php网站可以通过域名正常访问了。 好吧,nginx我确实没有系统的从头到尾学习,一般能有就好。...个人愚见,遇见了奇葩问题就记录了下来进行分享,或许能够给别人带来帮助。...fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; fastcgi_param PATH_INFO

    1.8K20

    Linux 下 Nginx + PHP 环境的配置

    所以,我们需要解决的问题是,如何配置 Nginx,调用 fastcgi 模块来让需要执行PHP的请求正确地转发到 PHP-FPM 中运行呢?...Nginx 默认不会提供 PHP_INFO,因此,如果需要这个功能,我们需要为 Nginx 的 fastcgi_param 设置关于 PATH_INFO 的信息。...include fastcgi.conf; } 经过测试,这样的配置又衍生出了新的问题,使用这个配置的时候,虽然 PHP 可以正常执行,但PHP脚本是获取不到 PATH_INFO 信息,这是为什么呢...只有当我们在了解了具体的执行流程的情况下,遇到故障,我们可以更容易更好地排查问题所在,这也是了解 PATH_INFO 的意义所在。.../nginx/ticket/321 set $path_info $fastcgi_path_info; fastcgi_param PATH_INFO $path_info; fastcgi_index

    3.6K40

    Windows 下 Nginx + PHP5 的安装与配置

    在 Windows 下,需要注意的是 root 的路径,最好使用 "/" 作为路径分隔符,而不是 Windows 默认的 "\",否则容易出问题,比如,这个路径:D:\public_html\test,...默认是不支持 CGI PATH_INFO,SCRIPT_NAME 的值也不标准(糅合了 PATH_INFO) # 下面的两行指令,可以从 SCRIPT_NAME 中剥离出 PATH_INFO fastcgi_split_path_info...^(.+\.php)(.*)$; fastcgi_param PATH_INFO $fastcgi_path_info;   include fastcgi_params; 创建一个独立的...默认是不支持 CGI PATH_INFO,SCRIPT_NAME 的值也不标准(糅合了 PATH_INFO) # 下面的两行指令,可以从 SCRIPT_NAME 中剥离出 PATH_INFO...fastcgi_split_path_info     ^(.+\.php)(.*)$; fastcgi_param PATH_INFO     $fastcgi_path_info;   include

    1.5K30

    php-fpm在nginx特定环境下的任意代码执行漏洞(CVE-2019-11043)

    nginx上,fastcgi_split_path_info处理带有%0a的请求时,会因为遇到换行符\n,导致PATH_INFO为空,而在php-fpm对PATH_INFO进行处理时,对其值为空时的处理存在逻辑问题...,从而导致远程代码执行漏洞 在fpm_main.c文件的第1150行代码可以很明显的看出来,问题的所在 https://github.com/php/php-src/blob/master/sapi/fpm...0x02 漏洞影响 服务器环境为nginx + php-fpm,并且nginx的配置像下面这样 location ~ [^/]\.php(/|$) { ......\.php)(/.*)$; fastcgi_param PATH_INFO $fastcgi_path_info; fastcgi_pass php:9000; ... } 另外,...如果使用了nginx官方提供的默认配置,将会收到影响 https://www.nginx.com/resources/wiki/start/topics/examples/phpfcgi/ ? ?

    84710
    领券