<?xml version="1.0"?>
<!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.1//EN" "http://www.wapforum.org/ DTD/wml_1.1.xml">

<wml>
<head>
<meta http-equiv="cache-control" content="max-age=180,private" />
</head>
<card title="win 下 ngnix-0.7.50+php-5.2.9+fastcgi安装">
<p>
作者:<a href="index.php?action=showuser&amp;userid=1&amp;hash=">admin</a><br />时间:2009-12-07 10:24<br />分类:<a href="index.php?action=list&amp;cid=4&amp;hash=">免费资源</a><br />内容:
win 下 ngnix-0.7.50+php-5.2.9+fastcgi安装


目前 ngnix for windows 主要有两种:
1、官方出的 http://www.nginx.org/ ，目前最新版本 0.7.58 ，下载地址 http://sysoev.ru/nginx/nginx-0.7.58.zip ，具体的安装方法参见 http://wiki.nginx.org/NginxInstall，很简单的
2、三方出的 http://www.kevinworthington.com/category/computers/nginx/ ，目前最新版本 0.7.50 ，安装方法见下文
这两种的区别我理解是这样的：
其一、官方出的可以放到任意目录，而三方出的只能安装在 c:\ngnix，这个难道是编译的问题，具体啥原因未知
其二、官方出的可以动态重新加载配置文件，而不需要停止www服务，而三方的必须要停止www服务后再开启，这个应该是三方的版本问题，这个功能是0.7.53以后才加的好像
其三、官方出的在 root alias 后可以直接跟路径，如 d:\www\ 或 ..\www 这样的，而三方的必须要写为 /cygdrive/e/www 这样，这点官方是做的很好的，因为三方是集成的cygwin环境

就以上几点区别，不过个人觉得哪个都一样，在这里说明这些区别就是为了让大家清楚，不要你用的是官方的而看了下面的这篇文章后说我的是错误的


好了，下面重点说三方的，如你用官方的，注意上面提到的区别就可以了，官方用起来没有这么多问题
参考自：http://sudone.com/nginx/nginx_php_windows.html
测试php的网站目录 E:\httpd\wwwroot ，请自行先创建好

准备软件：
ngnix-0.7.50 http://www.kevinworthington.com/category/computers/nginx/
php-5.2.9 http://php.net

步骤如下：
1、执行下载下来的 nginx-0.7.50-win32-setup.exe 安装ngnix，是安装到 C:\nginx 目录的，好像win下是建议安装到这的，接下来执行 C:\nginx\conf\start-nginx.bat ，如果启动成功，访问 http://127.0.0.1 会看到一个默认网页的，如没有看到，请确认你的80口未被占用
2、解压下载下来的 php-5.2.9-2-Win32.zip 到 E:\httpd\php-5.2.9-2-Win32
3、启动fastcgi进程，执行下面这个命令


E:\httpd\php-5.2.9-2-Win32\php-cgi.exe -b 127.0.0.1:512



但是这个cmd窗口不会关闭的，想要隐藏窗口，用vbs等都可以实现，我是这样做的，用一个小程序来隐藏的，我在E:\httpd\php-5.2.9-2-Win32目录下建了个批处理，以后直接点击这个就可以了，内容如下：



::start_phpcgi.cmd
::cmdow.exe请自行到http://www.vkill.net/tools.html下载
cmdow.exe @ /hid
php-cgi.exe -b 127.0.0.1:512




如需制造多个php-cgi进程监听同样端口则多次运行这个批处理就可以了，当然也可以用php-cgi的参数来实现
4、配置ngnix测试支持php
修改 C:\nginx\conf\nginx.conf ，在 http {} 中增加下面这段使增加一个虚拟主机，修改完后重新启动一下ngnix



server {
  listen 192.168.9.222:8080;
  server_name localhost;
  location / {
    root /cygdrive/e/httpd/wwwroot;
    index index.php;
  }
  location ~ \.php$ {
    fastcgi_pass 127.0.0.1:512;
    fastcgi_index index.php;
    fastcgi_param SCRIPT_FILENAME e:/httpd/wwwroot$fastcgi_script_name;
    include fastcgi_params;
  }
}




5、E:\httpd\wwwroot 目录下新建php测试文件 index.php ，内容如下：



&lt;?php
  echo phpinfo()
?&gt;




6、浏览器中输入 http://127.0.0.1:8080/index.php 测试

后记：nginx php的工作原理
nginx以一种类似代理的模式，去连接fastcgi的端口，php需要开启cgi引擎，然后监听相应的端口即可，fastcgi下nginx和php 的耦合度比较小，所以相互影响会减到最低限度。 

</p><p>
<a href="index.php?action=login&amp;hash=">立即登陆发表评论</a><br />
</p>
<p><a href="index.php?action=list&amp;hash=">返回日志列表</a><br /><a href="index.php?action=index&amp;hash=">返回主页</a></p>
</card>
</wml>
