lnmp一键安装包装上过后,发现thinkphp的pathinfo模式无法使用。 
百度一番,发现nginx/conf/vhost/域名 文件里有开启pathinfo的说明,于是启动了pathinfo。 
但是项目仍然无法运行,于是我在本地和服务器同时运行了一下代码:
发现php_self这一项有区别,so问题可能就在这里。 
接下来在项目里搜索php_self,找到了这个文件: 
thinkphp.php
if(is_cgi) {            //cgi/fastcgi模式下            $_temp  = explode('.php',$_server['php_self']);            define('_php_file_',   rtrim(str_replace($_server['http_host'],'',$_temp[0].'.php'),'/'));        }else {            define('_php_file_',    rtrim($_server['script_name'],'/'));        }
也就是thinkphp在cgi模式下依赖了php_self,问题果然在这里 
最后又百度了一番,原来是php.ini里为了屏蔽一个漏洞设置了:
cgi.fix_pathinfo=0
正是因为这一行设置,导致了php_self的值出现了偏差。
然而lnmp集成包里的pathinfo.conf已经使用
try_files $fastcgi_script_name =404
解决了这个漏洞,所以我们可以修改php.ini为
cgi.fix_pathinfo=1
重启服务器,ok,问题解决
                    以上就介绍了nginx服务器下使用thinkphp的pathinfo模式的问题,包括了方面的内容,希望对php教程有兴趣的朋友有所帮助。
   
 
   