总结一下本人在配置wnp的时候的一些小经验,也对网上一些资料的个别说的不明白的地方做一个补充,希望能改初学者带来方便。
所需软件:
nginx:nginx-15.6
下载地址:http://nginx.org/download/nginx-1.5.6.zip
网上好多资料都是0.x版本,我这里使用的是nginx-15.6版本。
php:php-5.4.21-nts-Win32-VC9-x86
下载地址:http://windows.php.net/downloads/releases/php-5.4.21-nts-Win32-VC9-x86.zip
php5.5不支持windows xp,而我的开发机器是xp,所以这里使用php5.4版本。
php版本一定要是nts的,nginx下php是以FastCGI的方式运行,所以我们下载非线程安全也就是nts的php包。
RunHiddenConsole
下载地址:http://yunpan.cn/Q9jmzMtfDUDMP
RunHiddenConsole.exe的作用是在执行完命令行脚本后可以自动关闭脚本,而从脚本中开启的进程不被关闭。
第一步:安装nginx
将下载到的nginx-15.6.zip解压至C盘根目录下,改名为nginx。
由于我的电脑中已经安装好了apache,apache占用了我的80端口,所以,我这里需要更改一下配置文件C:\nginx\conf\nginx.conf,将端口号改为8080,如下图1。(如果你的80端口没有被占用,这里可以不做修改)
我比较习惯把项目文件放到www目录下,所以我在nginx目录下新建了一个www目录,同时设置项目的根目录为C:/nginx/www,如上图2。
双击nginx.exe即可启动nginx服务,这时从任务管理器里可以看到两个nginx.exe的进程。
在浏览器中输入 http://localhost:8080,如果出现了nginx的欢迎页面,说明nginx安装成功。
第二步:安装php
将php-5.4.21-nts-Win32-VC9-x86.zip解压到nginx下的php5.4文件夹中。
找到php.ini-development文件,改名为php.ini。
打开php.ini
设置php扩展目录 extension_dir = “C:/nginx/php5.4/ext”,加载mysql.dll、gd2.gll……的时候会使用到这个配置。
将display_errors = Off,改为display_errors = On,显示错误信息,方便调试。
设置cgi.fix_pathinfo=1,PHP 会修正 SCRIPT_FILENAME 为真实的文件地址,否则 PHP 将无法找到需要处理的 PHP 文件。
开启php_gd2.dll、php_mysql.dll、php_mysqli.dll等扩展,将改行前的分号去掉。(此操作为了方便日后开发,于今天的主题无关)。
开启php支持:
将root html改为root C:/nginx/www,/scripts$fastcgi_script_name改为C:/nginx/www$fastcgi_script_name,
也可将/scripts$fastcgi_script_name改为$document_root$fastcgi_script_name,这里需要依赖cgi.fix_pathinfo,请确保php.ini中cgi.fix_pathinfo=1。
到这里,我们的环境就基本配置成功了。测试一下:
输入命令C:/nginx/php5.4/php-cgi.exe -b 127.0.0.1:9000 -c C:/nginx/php5.4/php.ini,如果任务管理器里面出现了php-cgi.exe进程的话,说明php安装成功了,但是只要关掉命令框,php-cgi也会被被关闭。这时要用到我们的RunHiddenConsole了。
将RunHiddenConsole.zip解压后,把RunHiddenConsole.exe放到nginx目录下,输入命令C:/nginx/RunHiddenConsole C:/nginx/php5.4/php-cgi.exe -b 127.0.0.1:9000 -c C:/nginx/php5.4/php.ini,php-cgi.exe进程会开启,关掉命令框,进程还在。
在www目录下新建phpinfo.php
<?php phpinfo(); ?>
访问http://localhost/phpinfo.php,可以查看到php及nginx的详细信息。
但是每次这样开启服务未免有点太麻烦,我们可以创建一个批处理文件来帮助我们快速的开启、关闭nginx和php。
新建文本文件start_nginx.bat,输入内容(注意路径,如果和我的不一样,请自行修改)
@echo off REM set PHP_FCGI_CHILDREN=5 set PHP_FCGI_MAX_REQUESTS=1000 echo Starting PHP FastCGI... RunHiddenConsole C:/nginx/php5.4/php-cgi.exe -b 127.0.0.1:9000 -c C:/nginx/php5.4/php.ini echo Starting nginx... RunHiddenConsole C:/nginx/nginx.exe -p C:/nginx
新建文件stop_nginx.bat,输入内容
@echo off echo Stopping nginx... taskkill /F /IM nginx.exe > nul echo Stopping PHP FastCGI... taskkill /F /IM php-cgi.exe > nul exit
至此wnp环境搭建完成。