Windows下配置Nginx使之支持PHP(转)

平台描述:Windows下,使用PHP套件 xampp,因为是测试玩,所以没在服务器 Linux 环境中配置。

1. 首先,将 nginx.conf 中的 PHP 配置注释去掉。

01 # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
02 #
03 #location ~ \.php$ {
04 #    root           html;
05 #    fastcgi_pass   127.0.0.1:9000;
06 #    fastcgi_index  index.php;
07 #    fastcgi_param  SCRIPT_FILENAME  /scripts$fastcgi_script_name;
08 #    include        fastcgi_params;
09 #}
10  
11 location ~ \.php$ {
12     root           html;
13     fastcgi_pass   127.0.0.1:9000;
14     fastcgi_index  index.php;
15     fastcgi_param  SCRIPT_FILENAME  /scripts$fastcgi_script_name;
16     include        fastcgi_params;
17 }

2. 这里使用的 PHP 是以 cgi 的形式,所以要启用 php-cgi,修改 php.ini,把注释去掉:

1 ;cgi.fix_pathinfo=1
2 cgi.fix_pathinfo=1

3. 启动 php-cgi 和 nginx,下面介绍两个脚本:

start_nginx.bat

01 @echo off
02  
03 REM set PHP_FCGI_CHILDREN=5
04 set PHP_FCGI_MAX_REQUESTS=1000
05   
06 echo Starting PHP FastCGI...
07 RunHiddenConsole D:/xampp/php/php-cgi.exe -b 127.0.0.1:9000 -c D:/xampp/php/php.ini
08   
09 echo Starting nginx...
10 RunHiddenConsole D:/nginx/nginx.exe -p D:/nginx/

stop_nginx.bat

1 @echo off
2 echo Stopping nginx... 
3 taskkill /F /IM nginx.exe > nul
4 echo Stopping PHP FastCGI...
5 taskkill /F /IM php-cgi.exe > nul
6 exit

相关下载:RunHiddenConsole.zip

可以看看进程里,如果 nginx 和 php-cgi 都有,那么差不多要成功了。最后,可能会出现 "No input file specified" 的问题,那么修改一下 nginx.conf :

01 location ~ \.php$ {
02     #root           html;
03     root           D:/nginx/html;
04     fastcgi_pass   127.0.0.1:9000;
05     fastcgi_index  index.php;
06     #fastcgi_param  SCRIPT_FILENAME  /scripts$fastcgi_script_name;
07     #fastcgi_param  SCRIPT_FILENAME D:/nginx/html$fastcgi_script_name;
08     fastcgi_param  SCRIPT_FILENAME $document_root$fastcgi_script_name;
09     include        fastcgi_params;
10 }

注意注释的地方,修改成下面那行,请根据你的具体文件配置路径。

编辑 test.php :

1 <?php
2     phpinfo();
3 ?>

运行 http://localhost:81/test.php,OK。

posted @ 2013-08-02 17:21  幻星宇  阅读(236)  评论(0编辑  收藏  举报