首页 > 代码库 > 夺命雷公狗---linux NO:38 linux下nginx的pathinfo的支持

夺命雷公狗---linux NO:38 linux下nginx的pathinfo的支持

我们在nginx 中使用 thinkphp   的时候会遇到很多的问题,比如:

技术分享

没权限,这个就是linux  权限管理的好处,我们给他权限。。

技术分享

我们给他权限即可正常访问了:

技术分享

 

然后我们为 IndexController  控制器下添加一个lists的方法:

技术分享

然后我们添加一个lists的方法,如下所示:

技术分享

保存退出。对她进行访问。。

技术分享

没戏。。。因为nginx 不支持php后面的url 那里带斜线和后面带一串的参数。。所以我们要想办法让他支持pathinfo。。

不过我们先来windows下的apache下测试,创建一个名字为:test.php 的文件,代码如下所示:

<?php
    echo "<pre>";
    print_r($_SERVER);

 

技术分享

保存,然后对她进行访问。。。

技术分享

这里很明显他已经认出来了。。

然后我们在 nginx  的html 目录下一样创建一个 test.php  的文件代码和上面的一样,如下所示:

技术分享

不加参数如下所示:

技术分享

一加参数则报错,如下所示:

技术分享

我们的解决方案是修改 nginx.conf   文件,如下所示:

技术分享

 

技术分享

        location ~ \.php(.*)$ {
            root           html;
            fastcgi_pass   127.0.0.1:9000;
            fastcgi_index  index.php;
            fastcgi_param  SCRIPT_FILENAME  /usr/local/nginx/html$fastcgi_script_name;
            fastcgi_param  PATH_INFO $1;
            include        fastcgi_params;
        }

然后在去     目录下重置下配置文件即可。。

./nginx -s reload

 

技术分享

 

然后再来访问测试测试:

技术分享

ok,nginx 已经完美支持pathinfo了。。。

夺命雷公狗---linux NO:38 linux下nginx的pathinfo的支持