1. 首先,将 nginx.conf 中的 PHP 配置注释去掉。01# pass the PHP scripts to FastCGI server listening on 127.0.0.1:900002#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#}1011location ~ .php$ {12root html;13fastcgi_pass 127.0.0.1:9000;14fastcgi_index index.php;15fastcgi_param SCRIPT_FILENAME /scripts$fastcgi_script_name;16include fastcgi_params;17}
2. 这里使用的 PHP 是以 cgi 的形式,所以要启用 php-cgi,修改 php.ini,把注释去掉:1;cgi.fix_pathinfo=12cgi.fix_pathinfo=1
3. 启动 php-cgi 和 nginx,下面介绍两个脚本:
start_nginx.bat01@echo off0203REM set PHP_FCGI_CHILDREN=504set PHP_FCGI_MAX_REQUESTS=10000506echo Starting PHP FastCGI...07RunHiddenConsole D:/xampp/php/php-cgi.exe -b 127.0.0.1:9000 -c D:/xampp/php/php.ini0809echo Starting nginx...10RunHiddenConsole D:/nginx/nginx.exe -p D:/nginx/
stop_nginx.bat1@echo off2echo Stopping nginx...3taskkill /F /IM nginx.exe > nul4echo Stopping PHP FastCGI...5taskkill /F /IM php-cgi.exe > nul6exit
可以看看进程里,如果 nginx 和 php-cgi 都有,那么差不多要成功了。最后,可能会出现 "No input file specified" 的问题,那么修改一下 nginx.conf :01location ~ .php$ {02#root html;03root D:/nginx/html;04fastcgi_pass 127.0.0.1:9000;05fastcgi_index index.php;06#fastcgi_param SCRIPT_FILENAME /scripts$fastcgi_script_name;07#fastcgi_param SCRIPT_FILENAME D:/nginx/html$fastcgi_script_name;08fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;09include fastcgi_params;10}
注意注释的地方,修改成下面那行,请根据你的具体文件配置路径。
编辑 test.php :1<?php2phpinfo ();3?>
运行 http://localhost:81/test.php,OK。