Nginx是一个 Web服务器,是一款免费开源软件,可用作反向代理,负载平衡器和 HTTP缓存。 相对于Apache、IIS,Nginx的优势在于“反向代理”和“负载均衡”。因此考虑到能够为Web服务器节省资源,它可以代替apache来提供Web服务。在Windows下如何来配置nginx+php+mySQL环境?


一、准备程序包

1.Nginx,http://nginx.org/en/download.html
2.Php,http://php.net/downloads.php
3.MySQL,https://www.mysql.com/downloads/

二、安装配置

1.php的安装与配置
解压下载的php包,到C盘(C:\),将文件夹重命名为php。进入文件夹将php.ini-development文件重命名为php.ini,并用Sublime Text等工具打开它。

a)指定Php的ext路径。找到:

;extension_dir = "./ext"

更改为:

extension_dir = "C:/php/ext"

注意:去掉它前面的分号。

b)支持MySQL。再找到:

;extension = php_mysql.dll 
;extension = php_mysqli.dll

去掉它前面的分号。

c)支持Nginx。找到:

;cgi.fix_pathinfo=1

去掉前面的分号。这是Php的CGI的设置,这一步非常重要。

d)其他配置
找到:;date.timezone = 先去前面的分号再改为 date.timezone = Asia/Shanghai
找到:enable_dl = Off 改为 enable_dl = On
找到: ;cgi.force_redirect = 1 先去前面的分号再改为 cgi.force_redirect = 0
找到: ;fastcgi.impersonate = 1 去掉前面的分号
找到:;cgi.rfc2616_headers = 0 先去前面的分号再改为 cgi.rfc2616_headers = 1

2、nginx的安装与配置。
进入nginx的conf目录,打开nginx的配置文件nginx.conf,找到:

location / {
    root html; #修改指向站点的根目录
    index index.html index.htm index.php; 
}

再找到:

# pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
#
#location ~ \.php$ {
#    root  html; # 修改指向站点的根目录
#    fastcgi_pass   127.0.0.1:9000;
#    fastcgi_index  index.php;
#    fastcgi_param  SCRIPT_FILENAME  /scripts$fastcgi_script_name;
#    include        fastcgi_params;
#}

去掉的“#”,将地址指向站点根目录。再把/scripts改为documentroot,这里的 document_root就是指前面“root”所指的站点路径。修改后的:

location ~ \.php$ {
    root           XXXXX;# 修改指向站点的根目录
    fastcgi_pass   127.0.0.1:9000;
    fastcgi_index  index.php;
    fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
    include        fastcgi_params;
}

https配置如下:

# HTTPS server
server {
    listen       443 ssl;
    server_name  localhost;
    ssl_certificate      C://nginx//ssl//buduhuisi.crt;
    ssl_certificate_key  C://nginx//ssl//buduhuisi.key;
    ssl_session_cache    shared:SSL:1m;
    ssl_session_timeout  5m;
    ssl_ciphers  HIGH:!aNULL:!MD5;
    ssl_prefer_server_ciphers  on;
    location / {
        root   XXXXX;# 修改(指向站点的根目录)
        index  index.html index.htm index.php;
    }
}

三、启动服务

cd c:\php
php-cgi.exe -b 127.0.0.1:9000 -c C:/php/php.ini
cd c:\nginx
start nginx

测试服务 新建文件phpinfo.php,在文件中输入代码:

<?php
    phpinfo();
?>

浏览器输入 http://localhost/phpinfo.php

四、建立bat脚本

首先把下载好的RunHiddenConsole.zip解压到nginx目录,创建脚本命名为start_nginx.bat内容为:

@echo off
REM Windows 下无效
REM set PHP_FCGI_CHILDREN=5

REM 每个进程处理的最大请求数或设置为 Windows 环境变量
set PHP_FCGI_MAX_REQUESTS=1000

echo Starting PHP FastCGI...
RunHiddenConsole C:/php/php-cgi.exe -b 127.0.0.1:9000 -c C:/php/php.ini

echo Starting nginx...
RunHiddenConsole C:/nginx/nginx.exe -p C:/nginx

创建stop_nginx.bat脚本关闭nginx:

@echo off
echo Stopping nginx...
taskkill /F /IM nginx.exe > nul

echo Stopping PHP FastCGI...
taskkill /F /IM php-cgi.exe > nul

exit