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进程,执行下面这个命令
但是这个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 的耦合度比较小,所以相互影响会减到最低限度。