【Nginx高性能服务器】配置Nginx完美实现PATHINFO

这几天忙着组织开源项目,自己给整了一个云主机。在学校的时候就接触到Nginx了,但从未实践过,这次借此机会部署了LNMP环境,在安装过程中遇到过很多问题,不过后来都一一解决了。
  【实践才是硬道理】



问题一、解决Nginx不支持PATHINFO

  1. server
  2.         {
  3.                 listen       80 default_server;
  4.                 server_name localhost;
  5.                 index index.html index.htm index.php;
  6.                 root  /web/www;
  7.                 location ~ .*\.(php|php5)
  8.                         {
  9.                                 set $path_info '';
  10.                                 set $real_script_name $fastcgi_script_name;
  11.                                 try_files $uri =404;
  12.                                 fastcgi_pass  unix:/tmp/php-cgi.sock;
  13.                                 fastcgi_index index.php;
  14.                                 #**********  set pathinfo *************
  15.                                 if ($real_script_name ~ "^(.+?\.php)(/.+)$") {
  16.                                         set $real_script_name $1;
  17.                                         set $path_info $2;
  18.                                  }
  19.                                 fastcgi_param SCRIPT_FILENAME $document_root$real_script_name;
  20.                                 fastcgi_param SCRIPT_NAME $real_script_name;
  21.                                 fastcgi_param PATH_INFO $path_info;
  22.                                 include fcgi.conf;
  23.                         }
  24.                 location /status
  25.                         {
  26.                                 stub_status on;
  27.                                 access_log   off;
  28.                         }
  29.                 location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$
  30.                         {
  31.                                 expires      30d;
  32.                         }
  33.                 location ~ .*\.(js|css)?$
  34.                         {
  35.                                 expires      12h;
  36.                         }
  37.                 access_log off;
  38.         }


  在include fcgi.conf时,要把fcgi.conf中的fastcgi_param SCRIPT_NAME以及fastcgi_param SCRIPT_FILENAME注释掉,不然SCRIPT_NAME与SCRIPT_FILENAME不会起作用的,PATHINFO是解决了,其它地方又会出问题。
  还有一个地方要注意,Nginx在配置PATHINFO后,$_SERVER['PHP_SELF'] 仍然有问题,在ThinkPHP中会影响到PUBLIC常量,因此需要做下调整,在入口文件里加上
  1. define('_PHP_FILE_',$_SERVER['SCRIPT_NAME']);
原文地址: http://bbs.lampbrother.net/read-htm-tid-152709.html
<script type=text/javascript charset=utf-8 src="http://static.bshare.cn/b/buttonLite.js#style=-1&uuid=&pophcol=3&lang=zh"></script> <script type=text/javascript charset=utf-8 src="http://static.bshare.cn/b/bshareC0.js"></script>
阅读(47) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~
评论热议
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值