Nginx服务器下使用ThinkPHP的pathinfo模式的问题
来源:互联网 发布:mac弹丸论破怎么退出 编辑:程序博客网 时间:2024/03/29 23:05
LNMP一键安装包装上过后,发现thinkphp的pathinfo模式无法使用。
百度一番,发现nginx/conf/vhost/域名 文件里有开启pathinfo的说明,于是启动了pathinfo。
但是项目仍然无法运行,于是我在本地和服务器同时运行了一下代码:
<?phpvar_dump($_SERVER);
发现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,问题解决
0 0
- Nginx服务器下使用ThinkPHP的pathinfo模式的问题
- nginx+thinkphp下解决pathinfo的问题
- thinkphp在Nginx下使用PATHINFO模式显示no input file specified的解决方法
- 设置 nginx 支持 thinkPHP 的 pathinfo 模式
- Nginx上ThinkPHP的PATHINFO模式支持
- 设置 nginx 支持 thinkPHP 的 pathinfo 模式
- nginx环境支持thinkphp的pathinfo模式
- 解决ThinkPHP在nginx下的pathinfo问题即url问题
- Nginx下实现ThinkPHP的pathinfo及URL Rewrite模式支持
- Nginx下实现pathinfo及ThinkPHP的URL Rewrite模式支持
- Nginx下实现pathinfo及ThinkPHP的URL Rewrite模式支持
- Nginx下实现pathinfo及ThinkPHP的URL Rewrite模式支持
- Nginx下实现pathinfo及ThinkPHP的URL Rewrite模式支持
- Nginx下实现pathinfo及ThinkPHP的URL Rewrite模式支持
- Nginx下实现pathinfo及ThinkPHP的URL Rewrite模式支持
- Nginx下实现pathinfo及ThinkPHP的URL Rewrite模式支持
- [转]Nginx下实现pathinfo及ThinkPHP的URL Rewrite模式支持
- 解决thinkphp在不支持pathinfo的nginx上的问题
- 更新SDK和ADT后提示"This Android SDK requires Android Developer Toolkit version 23.x.x or above"
- Mac添加新建文本文档
- Swap Nodes in Pairs(递归和非递归)
- LinkedMap的C++实现
- Win32调试内存错误提示
- Nginx服务器下使用ThinkPHP的pathinfo模式的问题
- Preparing Your Cluster
- Codeforces Round #153 (Div. 1) C Number Transformation bfs
- pring for Android 参考手册
- zookeeper日志清理
- Linux 下系统调用的三种方法
- 2个找图标的网址
- 1004. Counting Leaves (30)
- TypeError: col.cellSelector is undefined