Thinkphp框架网站 nginx环境 访问页面access denied

今日不熟一个tiinkphp框架网站的时候,由于服务器环境是centos6.5+nginx1.8,已经运行php商城项目很正常,

本以为一切比较简单,直接新建了项目文件夹,xftp上传了程序,并配置nginx.conf文件,添加新的server块,

绑定了子域名跟项目文件夹的关系,一开始访问是No input file specified页面报错,很显然是联想到是不是php文件

解析不成功造成了,检查新添加的server块,一切配置正常,为发现明细错误,php引擎调用也是复制原来php项目的

应该出不来问题的,就是这个问题上徘徊了很近,偶然发现网上这个问题其实狠毒,基本大概的都是修改php location

的fastcgi_param 的值,并添加include fastcgi_param ,但是fastcgi_param的值的修改又有好几种说法,经过多次尝试之后

修改如下:

fastcgi_param  SCRIPT_FILENAME/data//wwwroot/default/victdo_ws/$fastcgi_script_name;
include        fastcgi_params;

reload配置文件,访问页面这次报错编程了access denied,访问被拒绝,查看了error日志没有发现错误提示,继续百度,

最终发现thinkphp框架的网址需要修改php环境的一个参数,引起问题的原因可能是:ThinkPHPURL_MODEL问题导致ngnix解析问题。

于是我是这样解决的:

进入服务器,改php.ini文件。将cgi.fix_pathinfo的值改成1。重启php-fpm。

结果终于访问正常了。解决问题。至此thinkphp框架的网站可以访问了,接下来研究了下cgi.fix_pathinfo

似乎这个配置如果改成1形成一个上传漏洞,具体大家可以百度参考下,所以接下来我把nginx配置文件进一步修改

修改为php文件在上传目录的执行,也就是如下代码:值得注意的是这个代码需要添加php文件解析location块之前,否则无效!

                location ~ ^/public/.*\.(php|php5)$
                {
                        deny all;
                }

 

posted @ 2017-04-21 09:42  忙碌在路上  阅读(875)  评论(0编辑  收藏  举报