配置Windows下Nginx + PHP 开发环境

用 Windows 2008 和Windows 2008 R2 一年多了。
为了追新和探索,一直使用的 IIS7.0/7.5 + FastCgi 的方式来运行PHP。
1则太笨重 2来各种配置的测试不方便。
IIS7/7.5的特性基本已经了解了,而且短期内也 不准备学习.net程序,so为了保持和服务器的一致,将本机也配制成了Nginx + PHP的环境,用来开发与测试。
1 先到以下地址下载合适的版本

http://nginx.org/en/download.html
http://windows.php.net/download
我下载的版本是 Nginx/Windows-0.8.36 和 PHP-5.3.2(VC9 x86 Non Thread Safe)Zip包。
分别解压到了
D:/webserver/nginx

D:/webserver/php
2 配置nginx

打开D:/webserver/nginx/conf/nginx.conf
将从 server开始的 每一行前面都增加#注释掉包括server,但是不要注释掉最后一个 } 。
然后在#server前面粘贴以下内容


这代表着配置了第一个虚拟主机
localhost域名 将配置在D:/web/new/localhost 目录下
而这里必须 使用/符号 而不能使用windows格式的/符号
否则会启动不来,查看日志会发现被告知找不到 D:/webew 这个目录。
在新 配置的server 上一行加入

以打开查看目录选项,便于开发。

然后运行d:/webserver/nginx/nginx.exe
在建立 D:/web/new/localhost
并在该 文件夹随便建立几个文件和文件夹。
在浏览器中输入 http://localhost
可以浏览目录,说明nginx启动成功。
3 配置 php
复制 D:/webserver/php/php.ini-development
并改名为 D:/webserver/php/php.ini
打 开php.ini
查找short_open_tag = Off
修改为 short_open_tag = On
在文件末 尾加入


以打开常用的扩展,并设置默认时区为重庆。
保存之。
下面运行
D:/webserver/php/php-cgi.exe -b 127.0.0.1:9000 -c D:/webserver/php/php.ini
再 d:/web/new/localhost 目录下建立 phpinfo.php
输入

<?php
phpinfo();
?>

再浏览器里输入 http://localhost/phpinfo.php
可以看到phpinfo信息 表示配置完成。
4 制作维护脚本,并设置为开机自启动。
由 于是开发环境,所以不必添加为系统服务,只要开机能启动就可以了。
将 d:/webserver/nginx/nginx.exe 创建一个狂接方式,并添加到 开始菜单-->启动项 里面去。
这样开机nginx就启动了。
在 d:/webserver 文件夹下建立 nginx_reload.txt文件。
里面输入

d:
cd /webserver/nginx/
nginx.exe -s reload

然后修改扩展名,为nginx_reload.bat。
这样当修改虚拟主机配置后,或修改rewrite规则后,可直接双击该文件完成 nginx配置的重新加载。
而不必再在任务管理器内结束2个nginx.exe进程,再双击nginx.exe以完成重启。
php的 启动比较特殊,启动后控制台窗口会一直停留着,如果关闭控制台,或按Ctrl C ,则php-cgi.exe进程会被终止。
所以要建立一个后 台运行的vbs脚本。
在 d:/webserver 文件夹下建立一个 php.txt文件
输入

Set objShell = CreateObject("Wscript.Shell")
objShell.Run("tskill php-cgi"), 0, TRUE
objShell.Run("D:/webserver/php/php-cgi.exe -b 127.0.0.1:9000 -c D:/webserver/php/php.ini"), 0, TRUE

并改名为php.vbs
这时候双击此文件,会杀掉所有正在运行的php-cgi.exe进程,并重新启动一个php-cgi.exe进 程。
由于是开发环境,我们只启动一个php-cgi.exe进程就可以了。
将此文件创建一个快捷方式,并添加到 开始菜单-->启动项 里面去。
这样 php就开机自动启动了。
下面可以修改一下php.ini文件,和重启一下电脑测试看看 是否管用。
5 配置PATH_INFO 变量,以支持PHP框架中的URL路由。
现有的各种 php框架中,都有url路由功能,使url格式都为 http://example.com/index.php/object/action/value/
这是基于 php的全局变量 $SERVER['PATH_INFO']的。
而nginx只对 php-cgi.exe进行简单的代理,并不支持 PATH_INFO。
所以我们需要略微修改配置
打开 d:/webserver/nginx/conf/fastcgi.conf
加入一行

fastcgi_param PATH_INFO $fastcgi_script_name;

打开 d:/webserver/nginx/conf/nginx.conf
修改所有虚拟主机配置里的

 

location ~ /.php$ {
....
}

去掉 /.php$ 后面的$
(当然,本文中的已去掉)。
然后我们运行 d:/webserver/nginx_reload.bat。
这时 我们的nginx 就支持 url路由了。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值