在Windows下安装PHP运行环境主要是为了方便开发和页面的调试。

安装

其实安装过得非常简单,下面只描述简单步骤。

    1. 下载nginx,如果没有特殊需求,下载最新版本,解压即可。
    1. 下载PHP,我建议下载zip压缩包,因为对于nginx没有必要下载安装版本。
    1. 配置nginx与在Linux下一样
    1. 配置PHP,跟Linux下也一样

启动与停止

  1. 启动Nginx:
D:/nginx-1.0.4/nginx.exe -p D:/nginx-1.0.4
  1. 启动PHP-CGI
D:/php/php-cgi.exe -b 127.0.0.1:9001 -c D:/php/php.ini

为了方便可以写到一个批处理文件中,这里用到了一个RunHiddenConsole,可以在这里下载:

@echo off
REM Windows 下无效
REM set PHP_FCGI_CHILDREN=5

REM 每个进程处理的最大请求数,或设置为 Windows 环境变量
set PHP_FCGI_MAX_REQUESTS=1000
 
echo Starting PHP FastCGI...
REM RunHiddenConsole C:/php5/php-cgi.exe -b 127.0.0.1:9000 -c C:/php5/php.ini
D:/nginx-1.0.4/RunHiddenConsole.exe D:/php/php-cgi.exe -b 127.0.0.1:9001 -c D:/php/php.ini

echo Starting nginx...
D:/nginx-1.0.4/RunHiddenConsole.exe D:/nginx-1.0.4/nginx.exe -p D:/nginx-1.0.4
exit
  1. 停止Nginx
D:/nginx-1.0.4/nginx.exe -p D:\nginx-1.0.4 -s stop
  1. 停止PHP-CGI
taskkill /F /IM php-cgi.exe > nul

同样可以写到一个批处理文件中:

@echo off
echo Stopping nginx...
REM taskkill /F /IM nginx.exe > nul
D:/nginx-1.0.4/nginx.exe -p D:\nginx-1.0.4 -s stop

echo Stopping PHP FastCGI...
taskkill /F /IM php-cgi.exe > nul

Nginx配置的路径问题

由于在Windows下文件路径可以用”\”, 也可以用”\”, 也可以用”/”作为路径做分隔符。但”\”最容易引发问题,所以要尽量避免使用。

例如下面的配置可以正常运行

root   G:\ezdemo;

但是这样

root G:\tweb;

就会出现问题,访问程序时会出现500错误。

在logs/error.log里面会发现这类似这样的错误日志:

2011/06/16 22:07:28 [crit] 4756#5412: *2 GetFileAttributesEx() "G:	web" failed (123: The filename, directory name, or volume label syntax is incorrect), client: 127.0.0.1, server: php.lab, request: "GET / HTTP/1.1", host: "php.lab"
2011/06/16 22:13:38 [crit] 4756#5412: *5 CreateFile() "G:	pweb/test.html" failed (123: The filename, directory name, or volume label syntax is incorrect), client: 127.0.0.1, server: php.lab, request: "GET /test.html HTTP/1.1", host: "php.lab"

注意到G:后而有一个tab空格,你应该明白怎么回事了:)