包含 path_info 标签的文章

随便研究了下 Nginx 的 PATH_INFO

今天随便研究了一下 Nginx 服务器,最近还想要学学 Linux 服务器,但是时间实在是紧,完全没有时间学,今天看了 Nginx 才知道 Nginx 最好是用在 php 的 FastCGI 模式下。

关于 PATH_INFO 在网上一搜一大堆实现方法,不过都不怎么好,还有 SCRIPT_NAME 也不标准,我不记的在哪里找到的了,像下面这样设置,可以使用 PATH_INFO,SCRIPT_NAME 也纠正了,记录一下:

location ~ \.php($|/) {
 root           E:/www;
 
 fastcgi_pass   127.0.0.1:9000;
 fastcgi_index  index.php;
 fastcgi_param  SCRIPT_FILENAME  E:/www$fastcgi_script_name;
 #关键是下面两行,用于剥离和启用 PATH_INFO
 fastcgi_split_path_info ^(.+\.php)(.*)$;  
 fastcgi_param PATH_INFO $fastcgi_path_info;  

 include        fastcgi_params;
}

不过朋友说 Nginx 在 Linux 下与 Windows 下配置有些不同的,不知道这两行在 Linux 下有没有用。

至于 PHP,要执行 php-cgi.exe -b 127.0.0.1:9000 来启动 PHP 的 FastCGI 服务,而且启动后的窗口不可以关闭,至于如果不显示这个小窗口,网上是说可以用一个 RunHiddenConsole.exe 来启动 php-cgi.php,或者写一段 vbs 脚本来启动 php-cgi.exe 以达到不显示窗口的目的。

RunHiddenConsole.exe 下载地址:http://depositfiles.com/en/files/v577g6k74

启动参数:
RunHiddenConsole.exe php-cgi.exe -b 127.0.0.1:9000 -q

或者使用命令行:
@echo off
start /min RunHiddenConsole.exe php-cgi.exe -b 127.0.0.1:9000 -q

用 vbs 的方法:
set wscriptObj = CreateObject("Wscript.Shell")
wscriptObj.run "php-cgi.exe -b 127.0.0.1:9000",0

Pader 2011-2-21 2