记录我的一些生活写照、无聊的牢骚、内心世界的活动 注册 | 登陆

win 下 ngnix-0.7.50+php-5.2.9+fastcgi安装

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 ,内容如下:


<?php
  echo phpinfo()
?>


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

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

« 上一篇 | 下一篇 »

发表评论

评论内容 (必填):