一、需要准备的程序包:
    Nginx:http://nginx.org,这里我下载的最新版1.11.13
    php:http://windows.php.net/download (注意:Nginx下php以fastcgi方式运行,故下载非现成安全nts的php包)
    RunHiddenConsole:RunHiddenConsole.zip 用来编写快速启动、停止

二、安装与配置,新建目录D:\wnmp
    1.php的安装与配置:
    将下载好的php包php-5.6.30-nts-Win32-VC11-x64,解压缩并重命名为php5,形成路径D:\wnmp\php5。进入文件夹修改php.ini-development为php.ini。用sublime打开,定位到 ;extension_dir = "/ext",去掉前面分号并修改为 extension_dir = "D:/wnmp/php5/ext"。
    往下找到 

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

    去掉前面";",添加mysql扩展,使php支持mysql。后续可根据需要添加其他扩展,都是去掉前面的分号。
    接下来,配置php,使其能与Nginx结合。找到 ;cgi.fix_pathinfo=1

cgi.fix_pathinfo=1

    2.nginx的安装与配置:
    将下载好的nginx-1.11.13的包解压到wnmp目录,命名为nginx。进入nginx/conf目录,打开配置文件nginx.conf,找到

location / {
    root   html;    #这是站点的根目录,在nginx/html
    index  index.html index.htm;
}

    更改为:

location / {
    root   D:/wnmp/www;        #指定站点根目录为D:/wnmp/www
    index  index.php index.html index.htm;    #添加index.php,优先解析php文件
}

    再往下,找到

#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;
#}

root html; 更改为 root D:/wnmp/www; 再将 /scripts 改为 $document_root,这里的"$document_root"就是前面"root"所指定的站点路径。结果如下:

location ~ \.php$ {
    root           D:/wnmp/www;
    fastcgi_pass   127.0.0.1:9000;
    fastcgi_index  index.php;
    fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
    include        fastcgi_params;
}

    保存配置文件,就可以了。这样,Nginx+PHP的环境就初步配置好了。可以输入命令

怎么打开d盘mysql_运维

来启动php,并手动启动nginx,在D:\wnmp\www目录下新建phpinfo.php文件来测试是否生效。

      3、编写快捷启动、停止脚本
   把下载好的RunHiddenConsole.zip文件解压缩放在D:/wnmp目录下(或nginx目录下),RunHiddenConsole.exe的作用是在执行完命令行脚本后可以自动关闭脚本,同时脚本中开启的进程不被关闭。创建脚本,命名为"start.bat",内容为:

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

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

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

echo Starting nginx...
RunHiddenConsole D:/wnmp/nginx/nginx.exe -p D:/wnmp/nginx

      再创建一个名为"stop.bat"的脚本用来关闭nginx和php:

@echo off

echo Stopping nginx...
taskkill /F /IM nginx.exe > null

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

exit

    完成后,D:/wnmp目录是这样的:

怎么打开d盘mysql_php_02

这样,服务脚本都创建完毕。双击start.bat,可以看到进程管理器中有两个nginx.exe进程和一个php-cgi.exe进程。

怎么打开d盘mysql_运维_03

怎么打开d盘mysql_php_04

 三、测试:在站点目录 D:/wnmp/www下,新建文件phpinfo.php,内容如下:

<?php
	phpinfo();	
?>

保存后,浏览器访问“http://localhost/phpinfo.php”,看到如下信息,说明windows下Nginx+php开发环境已经配置成功!

怎么打开d盘mysql_操作系统_05

        测试mysql数据库连接:mysql服务的问题请查看另一篇。在  D:/wnmp/www 下,新建index.php文件,内容如下:

<?php 
	if (mysqli_connect("localhost","root","root")) {
		echo "successful!";
	}else{
		echo "error...";
	}
 ?>

浏览器防问"http://localhost/index.php",看到如下提示 successful!, 说明wnmp开发环全部配置成功!

怎么打开d盘mysql_php_06

 


改进:上面第3步,编写快捷启动的脚本时,用 %~dp0 代替绝对路径 D:/wnmp。      

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

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

echo Starting PHP FastCGI...
RunHiddenConsole %~dp0/php5/php-cgi.exe -b 127.0.0.1:9000 -c %~dp0/php5/php.ini

echo Starting nginx...
RunHiddenConsole %~dp0/nginx/nginx.exe -p %~dp0/nginx

      %~dp0 指代当前盘符加路径,只能用在批处理文件.bat中。作用同%cd%, 但%cd% 可以用在批处理文件中,也可以用在命令行中。

    这样,当 wnmp 文件夹路径变动时(如从D盘移动到E盘),就不必再改动脚本文件。