首页
登录 | 注册

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

PHP
这几天忙着组织开源项目,自己给整了一个云主机。在学校的时候就接触到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

相关文章

  • 官网地址: http://nginx.org/ 下载地址: http://nginx.org/en/download.html 官网地址: https://github.com/kohsuke/winsw/ 下载地址: http://rep ...
  • 1.安装pcre tar -zxvf pcre-7.8.tar.gz ./configure 2.安装Nginx tar -zxvf nginx-0.7.26.tar.gz ./configure --prefix=/usr/local/n ...
  • rewrite模块介绍 nginx的重写模块是一个简单的正则表达式匹配与一个虚拟堆叠机结合.依赖于PCRE库,因此需要安装pcre.根据相关变量重定向和选择不同的配置,从一个location跳转到另一个location,不过这样的循环最多可 ...
  • 一台云服务器:CentOS 7 多个一级域名 开发测试过程中,因为某些原因,想要让手头的A.B域名同时指向云服务器的443端口,支持HTTPS. 安装Nginx [root]# wget https://nchc.dl.sourceforg ...
  • Nginx中进行优化FastCGI配置的步骤
    例子:
  • 1.简言 达者回头看往往觉得建站就是非常简单的事情:买个服务器,申请域名备案(等着审核),然后一键集成环境,然后把源码部署到服务器上,最后使劲用力敲下回车启动服务器.整个过程乏善可陈没什么需要注意的,就是买买买,点点点就可以了. 但是事实上 ...

2020 unjeep.com webmaster#unjeep.com
12 q. 0.013 s.
京ICP备10005923号