• 在nginx中配置支持php_info的参数


    条件:nginx >=7.03;
    PHP 4 >= 4.0.3;
    启动fastcgi

    设置:
    一、nginx.conf
            location ~ \.php {
    root html;
    fastcgi_pass 127.0.0.1:9090;
    fastcgi_index index.php;
    fastcgi_param SCRIPT_FILENAME html$fastcgi_script_name;
    #include fastcgi_params;
    ##[配置支持php的path_info]
    include fastcgi.conf;
    ##---------------------------
    }
    要点:原来location ~ \.php${后面的$要去掉,以支持index.php/view形式;因为fastcgi要设置正则形式,故把include fastcgi_params屏蔽掉。
    二、fastcgi.conf

    ## 放在开头设置参数变量

    ## [配置支持php的path_info] 下面这段需要关闭php.ini中的cgi.fix_pathinfo(即cgi.fix_pathinfo = 0)

    set $path_info "";
    set $real_script_name $fastcgi_script_name;
    if ($fastcgi_script_name ~ "^(.+?\.php)(/.+)$") {
    set $real_script_name $1;
    set $path_info $2;
    }
    ##------------------ 原来参数省略不写 --------------------

    #fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;

    #fastcgi_param SCRIPT_NAME $fastcgi_script_name;
    ## [配置支持php的path_info]
    fastcgi_param SCRIPT_FILENAME $document_root$real_script_name;
    fastcgi_param SCRIPT_NAME $real_script_name;
    fastcgi_param PATH_INFO $path_info;
    ##------------------ 下面的原有参数省略不写 ---------------------

    下一步就是重启,试下xxx/index.php/view能不能正确解析
    在nginx文档中也举了另一个匹配path_info的例子:
    location ~ ^.+\.php {
    (...)
    fastcgi_split_path_info ^(.+\.php)(.*)$;
    fastcgi_param SCRIPT_FILENAME /path/to/php$fastcgi_script_name;
    fastcgi_param PATH_INFO $fastcgi_path_info;
    fastcgi_param PATH_TRANSLATED $document_root$fastcgi_path_info;
    (...)
    }
    第一个引用(.+\.php)加上/path/to/php将作为SCRIPT_FILENAME,第二个引用(.*)为PATH_INFO,例如请求的完整URI为show.php/article/0001,则上例中SCRIPT_FILENAME的值为/path/to/php/show.php,PATH_INFO则为/article/0001。
    下面是第三种,风雪之隅的配置(php.ini  cgi.fix_pathinfo = 1)

    location ~ .php {
    fastcgi_index index.php;
    fastcgi_pass 127.0.0.1:9000;
    include fastcgi_params;
    fastcgi_param PATH_INFO $fastcgi_script_name;
    }


    这个指令通常用于一些通过PATH_INFO美化URI的框架(例如CodeIgniter)。
  • 相关阅读:
    ABAP学习(13):OO SALV使用实例
    ABAP学习(12):Table Control显示
    某元素之外点击触发事件
    Windows打开文件
    'webpack'提示 不是内部或外部命令
    webpack提示安装webpack-cli
    Windows代替touch命令
    webstorm破解版
    如何获取对象的属性及属性值
    Array.apply(null,{length:6}).map()
  • 原文地址:https://www.cnblogs.com/sumsung753/p/3821518.html
Copyright © 2020-2023  润新知