首页

windows下通过nginx整合php以支持php脚本解析

标签:服务器,Nginx,集成,web,php,nginx,php5,5.2.16,配置,部署,全局配置,负载均衡配置,HttpGzip模块,负载均衡配置,server虚拟主机,URL匹配配置,StubStatus模块配置,防盗链,日志分割配置实例     发布时间:2015-12-08   

一、前言

使用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“项,去除前分号";"

windows下通过nginx整合php以支持php脚本解析

将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@?>

执行结果如下

windows下通过nginx整合php以支持php脚本解析