Nginx ("engine x") 是一个高性能的 HTTP 和 反向代理 服务器,也是一个 IMAP/POP3/SMTP 代理服务器。 Nginx 是由 Igor Sysoev 为俄罗斯访问量第二的 Rambler.ru 站点开发的,它已经在该站点运行超过两年半了。Igor 将源代码以类BSD许可证的形式发布。尽管还是测试版,但是,Nginx 已经因为它的稳定性、丰富的功能集、示例配置文件和低系统资源的消耗而闻名了。

nginx下载地址: 下载nginx for Windows 版本
php下载地址: 下载php for Windiowns版本

第 二,解压下载好的nginx压缩包(假如放到到了C:\WWW\SERVER\nginx-0.8.24),然后以Fastcgi 模式安装php C:\WWW\SERVER\php5,接下来就是nginx 配置啦,打开nginx-0.8.24下的conf文件下的nginx.conf

下面这写代码内容就是我的nginx 配置单:

server {         listen       4000;                       //web端口号,我在本地测试用4000这个端口         server_name localhost;        #charset koi8-r;        #access_log logs/host.access.log main;        location / {             root   html;             index index.html index.htm index.php;         }        #error_page 404              /404.html;        # redirect server error pages to the static page /50x.html         #         error_page   500 502 503 504 /50x.html;         location = /50x.html {             root   html;         }        # proxy the PHP scripts to Apache listening on 127.0.0.1:80         #         #location ~ \.php$ {         #    proxy_pass   [url]http://127.0.0.1;[/url]         #}       pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000       //开启这一段,因为nginx本身不支持php,需用用FastCGI模式支持php           location ~ \.php$ {             root           html;             fastcgi_pass   127.0.0.1:9000;             fastcgi_index index.php;             fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;      //修改web目录,默认为nginx下的html文件夹             include        fastcgi_params;         }        # deny access to .htaccess files, if Apache's document root         # concurs with nginx's one         #  Nginx并不支持cgi方式运行,原因是可以减少因此带来的一些程序上的漏洞。那么我们必须使用FastCGI方式来执行PHP程序。 可以有两种方法来实现 fastcgi,一种是直接使用 php5-cgi 来实现,另一种是利用 Lighttpd的spawn-fcgi 来实现,下面介绍如何利用 php5-cgi 单独来完成支持 php 和 cgi 安装完以后 修改 php.ini ,打开cgi.fix_pathinfo选项:cgi.fix_pathinfo=1;这样php-cgi方能正常使用SCRIPT_FILENAME这个变量。 单独运行方法:php5-cgi -b 127.0.0.1:9000   第三 启动nginx 服务器,再启动php 的cgi sever 。关于php cgi server 可以使用以下命令:        php-cgi.exe -b 127.0.0.1:9000 -q        C:\WWW\SERVER\php>php-cgi.exe -b 127.0.0.1:9000 -q(在CMD命令符下运行,直接打开不能启动) 这样做,缺陷是命令行窗口一直打开,若关闭那FastCGI server 也关闭啦。到网上下载RunHiddenConsole.exe 可以使命令行窗口隐藏啦。在命令行下进入到 RunHiddenConsole.exe所在目录即可执行以下命令,这样就可以关闭了命令行窗后台运行了。       RunHiddenConsole.exe C:\WWW\SERVER\php\php-cgi.exe -b 127.0.0.1:9000 -q  当然也可以自己写3个批处理文件来执行启动、停止、重启,命名3个文件为start.bat,stop.bat,restart.bat  下面是我写的三个批处理文件,仅供参考  start.bat  @ECHO OFF echo Starting PHP_Fast_Cgi RunHiddenConsole.exe C:\WWW\SERVER\php\php-cgi.exe -b 127.0.0.1:9000echo Starting nginx RunHiddenConsole.exe nginx.exeEXIT  stop.bat  @echo off echo Stopping nginx... taskkill /F /IM nginx.exe > nul echo Stopping PHP FastCGI... taskkill /F /IM C:\WWW\SERVER\php\php-cgi.exe > nul exit   restart.bat  @ECHO OFF call stop.bat call start.bat EXIT   最后 就是写一个简单PHPINFO 来验证PHP 是否工作正常。  三、用命令行启动或终止php-cgi和nginx进程     在Windows隐藏命令行窗口启动或终止进程运行          1、下载RunHiddenConsole:用来隐藏dos窗口          2、启动php-cgi,新建一个bat文件,如start.bat,用记事本打开,并编写如下代码:               @echo off               echo Starting PHP FastCGI...               RunHiddenConsole.exe d:/php/php-cgi.exe -b 127.0.0.1:9000 -c d:/php/php.ini           3、终止php和nginx进程,如stop.bat,同样用记事本打开,并编写如下代码:               @echo off               echo Stopping nginx...               taskkill /F /IM nginx.exe > nul               echo Stopping PHP FastCGI...               taskkill /F /IM php-cgi.exe > nul               exit  四、 注意:start.bat和stop.bat要和RunHiddenConsole.exe放于同一个目录       如果运行start.bat系统提示缺少zlib.dll,则需要下载zlib.dll,并拷到C:/WINDOWS/system目录下 最后罗嗦一下,很多不知道如何以fastCGI模式安装php,这个你可以去百度或Google去.  nginx在windows下的命令 检测conf文件 nginx -t 重载配置并重启 nginx -s reload 停止 nginx -s stop 开始 start /B nginx 关于windows下nginx和php结合 使用RunHiddenConsole的问题 目前百度到的windows下nginx和php结合 都会提到使用RunHiddenConsole来隐藏命令行窗口 其实可以不用,哥的方法是写一个php_start.vbs文件  里面内容如:createobject("wscript.shell").run "d:/php/php-cgi -b 127.0.0.1:9000",0 0的作用就是隐藏窗口 可是 在windows下的nginx 用ab测试结果并不比apache快。 不知道是什么原因,可能还是要用linux吧。 
posted on 2012-06-05 23:30  Yorian  阅读(1013)  评论(0)    收藏  举报