一、前言
使用nginx做HTTP高性能、IMAP/POP3/SMTP、反向代理缓存及负载均衡服务器,如果想让它支持php脚本,使其成为业务数据服务容器,下面在nginx配置FastCGI方式来运行php解析。更多关于nginx的配置-"Nginx的全局配置"、“负载均衡配置实例”、“HttpGzip模块配置”、“负载均衡配置”、“server虚拟主机配置”、“URL匹配配置”、“StubStatus模块配置”等,还有更多关于常用的配置实例-“虚拟主机配置实例”、“负载均衡配置实例”、“防盗链配置实例”、“日志分割配置实例”及更多性能优化技巧等
二、配置步骤
1. 下载nginx解压包、nts的php服务包、RunHiddenConsole.zip包(隐式调用执行dos命令)
2. 整合部署,先创建wnmp整合目录(如D:/Users/NJ/server/wnmp),将下载的php服务包命名为php5,copy到wnmp目录下
3. 配置php,将php5目录下的php.ini-recommended文件为php.ini,打开配置ext扩展目录,找到extension_dir项(默认如下)
extension_dir = "./"
改到当前目录php5的ext目录下,如下
extension_dir = "D:/Users/NJ/server/wnmp/php5/ext"
配置常用扩展包功能支持(php_mysql.dll、php_mysqli.dll和php_mbstring.dll等),在php.ini分别查找对应的”;extension=php_mbstring.dll、;extension=php_mysql.dll、;extension=php_mysqli.dll“项,去除前分号";"
将php5目录下的libmysql.dll文件复制到C:/Windows目录下,然后修改php的cgi设置(使nginx可以FastCGI整合运行),在php.ini中查找";cgi.fix_pathinfo=1",去除前分号,具体如下
;cgi.fix_pathinfo=1
改为
cgi.fix_pathinfo=1
4. 配置nginx,将下载的nginx解压命名为nginx,copy到wnmp目录下,然后到其conf目录下,打开"nginx.conf"配置文件,做如下变更
location / {@b@ root html;#默认站点根目录@b@ index index.html index.htm;@b@}
在wnmp目录下创建www文件夹,然后将上面脚本区域改为
location / {@b@ root D:/Users/NJ/server/wnmp/www;@b@ index index.html index.htm;@b@}
再查找代码区域,如下
# pass the PHP scripts to FastCGI serverlistening on 127.0.0.1:9000@b@#@b@#location ~ .php$ {@b@# root html;@b@# fastcgi_pass 127.0.0.1:9000;@b@# fastcgi_index index.php;@b@# fastcgi_param SCRIPT_FILENAME /scripts$fastcgi_script_name;@b@# include fastcgi_params;@b@#}
改为
# pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000@b@#@b@location ~ .php$ {@b@ root D:/Users/NJ/server/wnmp/www;@b@ fastcgi_pass 127.0.0.1:9000;@b@ fastcgi_index index.php;@b@ fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;@b@ include fastcgi_params;@b@}
保存php.ini文件,完成了nginx的配置
5. 配置运行指令,将下载的RunHiddenConsole.zip包解压将RunHiddenConsole.exe文件copy到nginx目录下,首先创建运行启动批处理文件(start_all.bat),内容如下:
@echooff@b@ @b@rem 每个进程处理的最大请求数设置为1000@b@set PHP_FCGI_MAX_REQUESTS=1000@b@@b@echo Starting PHPFastCGI...@b@RunHiddenConsole D:/Users/NJ/server/wnmp/php5/php-cgi.exe -b 127.0.0.1:9000 -c D:/Users/NJ/server/wnmp/php5/php.ini@b@ @b@echo Starting nginx...@b@RunHiddenConsole D:/Users/NJ/server/wnmp/nginx/nginx.exe -p D:/Users/NJ/server/wnmp/nginx
然后再创建停止服务批处理(shutdown_all.bat),内容如下:
@echooff@b@echo Stoppingnginx... @b@taskkill /F /IM nginx.exe > nul@b@echo Stopping PHPFastCGI...@b@taskkill /F /IM php-cgi.exe > nul@b@exit
6. 到此完成所有配置整合工作(完整的wnmp整合配置包,点击下载),下面测试一下,在wnmp的www目录下创建个testphp.php文件,内容如下:
<?php@b@ phpinfo();@b@?>
执行结果如下