qinling072 发表于 2017-12-23 14:40:07

从入门到删除数据库

  3.nginx配置文件中设置PATH_INFO值
  请求的网址是/abc/index.php/abc
  PATH_INFO的值是/abc
  SCRIPT_FILENAME的值是$doucment_root/abc/index.php
  SCRIPT_NAME /abc/index.php
  nginx默认是不会设置PATH_INFO环境变量的的值,需要php使用cgi.fix_pathinfo=1来完成路径信息的获取,但同时会带来安全隐患,需要把cgi.fix_pathinfo=0设置为0,这样php就获取不到PATH_INFO信息,那些依赖PATH_INFO进行URL美化的程序就失效了。
  以上内容均为百度中搜索得到,虽然我遇到的问题是各位前辈已经遇到过得但是不同的服务器配置问题还是不一样的,我的服务器配置是LNMP但是是直接通过阿里云的镜像市场安装的,在我的php.ini中cgi.fix_pathinfo=1默认值是0但是在百度上搜索好多帖子需要把它设置成1我紧随其后,但是同样的更改后我的服务器反而出现了更大的问题,我点击链接,刷新页面都变成了下载,这时候我意识到了问题的严重性,为什么会变成下载呢,忽然间想起自己更改的值,然后马上将其改为原来的值0然后重新配置nginx重新启动,这时候nginx安然支持path_info
  下面张贴nginx的配置

[*]
[*]
[*]
[*]  添加的代码如下:
  location / {      
  if (!-e $request_filename) {
  rewrite^/(.*)$/index.php/$1last;
  break;
  }
  }
  location ~ \.php {
  fastcgi_pass 127.0.0.1:9000;  //注意自己的ip和端口号
  fastcgi_index index.php;
  include fcgi.conf;             //注意自己nginx中调用的文件
  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$real_script_name;
  fastcgi_param SCRIPT_NAME $real_script_name;
  fastcgi_param PATH_INFO $path_info;
  }
  更改完之后记得重启



页: [1]
查看完整版本: 从入门到删除数据库