nginx下载地址:http://nginx.org/en/download.html 下载windows版本包
php下载地址:http://windows.php.net/download/ 下载windows版本包
mysql的下载与安装我们这里就不做详解了,大家肯定都会
RunHiddenConsole下载:自己百度个吧,可以方便的启动和停止nginx
nginx的运行php的模式与apache不同,其是以cgi模式的升级版,fast-cgi模式运行php的,并不像apache将php作为一个模块载入。
下面我们以D盘为实例对环境进行搭建,新建文件夹D:/wnmp
将php安装包解压到D:/wnmp/php中
修改php.ini-recommended文件为php.ini
找到
extension_dir = "./ext"
更改为
extension_dir = "D:/wnmp/php/ext"
找到
;cgi.fix_pathinfo=1
我们去掉这里的分号改为,此处为开启php在cgi模式的pathinfo模式,cgi.fix_pathinfo,它是用来对设置cgi模式下为php是否提供绝对路径信息或PATH_INFO信息。没有这个参数之前php设置绝对路径PATH_TRANSLATED的值为SCRIPT_FILENAME,没有PATH_INFO值。设置这个参数为cgi.fix_pathinfo=1后,cgi设置完整的路径信息PATH_TRANSLATED的值为SCRIPT_FILENAME,并且设置PATH_INFO信息;如果设为cgi.fix_pathinfo=0则只设置绝对路径PATH_TRANSLATED的值为SCRIPT_FILENAME。
nginx默认是不会设置PATH_INFO环境变量的的值,需要php使用cgi.fix_pathinfo=1来完成路径信息的获取,但同时会带来安全隐患,需要把cgi.fix_pathinfo=0设置为0,这样php就获取不到PATH_INFO信息,那些依赖PATH_INFO进行URL美化的程序就失效了。
cgi.fix_pathinfo=1
再找到
;extension=php_mysql.dll
;extension=php_mysqli.dll
去掉前面的分号开启php mysql的扩展
当然不要忘掉很重要的一步就是,把php目录下的libmysql.dll文件复制到C:\Windows目录下,也可以在系统变量里面指定路径,这样php就能使用mysql了。
把下载好的nginx包解压到D:/wnmp/nginx文件夹里。接下来我们对nginx进行配置,让它能够和php协同工作。进入nginx的conf目录,打开nginx的配置文件nginx.conf,找到
server { listen 80; #监听的端口,若有冲突请改为别的 server_name localhost; ...... }
listen为服务器请求端口,若本地已安装其他服务器可更改下以免冲突
然后继续
location / { root html; #这里是站点的根目录 index index.html index.htm; #默认首页 }
改为
location / { root D:/wnmp/www; 这里是站点的根目录 index index.html index.htm; #默认首页 }
这样 www 即为我们网页源文件的存放目录,以后的脚本都是放在此文件夹里
再往下,找到下面的配置段
# 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; #}
修改成下面所示即可
# pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000 # location ~ \.php$ { root D:/wnmp/www; fastcgi_pass 127.0.0.1:9000; #fastcgi模式使用的端口 fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; }
保存配置文件,就可以了。
这里的fastcgi_pass是传递cgi请求的地址和端口,注意php以cgi模式启动时端口要相一致,否则php无法监听
首先把下载好的RunHiddenConsole包解压到nginx目录内,RunHiddenConsole.exe的作用是在执行完命令行脚本后可以自动关闭脚本,而从脚本中开启的进程不被关闭。
创建脚本start.bat用来开启nginx和php的cgi模式
@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/php/php-cgi.exe -b 127.0.0.1:9000 -c D:/wnmp/php/php.ini
echo Starting nginx...
RunHiddenConsole D:/wnmp/nginx/nginx.exe -p D:/wnmp/nginx
创建脚本stop.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
到此就可以了
在www下新建phpinfo.php文件,编辑
<?php phpinfo(); ?>
打开浏览器输入localhost/phpinfo.php
能看到php的配置即可