windows下配置nginx和php环境(wnmp)
1.准备
创建安装目录D:/web,我们所有的文件都会放在这个目录下
下载php:php-5.4.16-Win32-VC9-x86.zip
2.下载完成会后获得如下文件,解压缩并重命名文件夹去掉版本号
php-5.4.16-Win32-VC9-x86.zip
nginx-1.10.2.zip
3.配置nginx
nginx不需要额外的配置,直接运行就可以,打开命令行cmd切换到d:/web/nginx
输入 start nginx
后回车即可启动
浏览器中访问http://localhost/可以看到欢迎页面表示安装成功
具体可以参考windows下安装nginx
3.配置php
在php的目录下可以找到php.ini-development文件,复制一份并将文件名修改为php.ini。然后修改配置文件内容
; extension_dir = "ext" ,删除前面的分号并修改为:extension_dir = "D:/web/php/ext"
;cgi.force_redirect = 1,删除前面的分号:cgi.force_redirect = 1
;cgi.fix_pathinfo=1,删除前面的分号:cgi.fix_pathinfo=1
;cgi.rfc2616_headers = 0,删除前面的分号:cgi.rfc2616_headers = 1
命令行下输入如下命令启动php,不报错表示启动成功。
1 |
D:/web/php>php-cgi.exe -b 127.0.0.1:9000 -c D:/web/php/php.ini |
4.检查nginx、php是否安装成功
在D:/web/nginx/html下新建一个phpinfo.php,加入如下内容后保存
1 |
<?php phpinfo();?> |
修改nginx.conf 增加server,也就是虚拟服务器
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 |
server { listen 80; server_name www.yourdomain.com$; root html/yourdomain; index index.html index.php; fastcgi_intercept_errors on; location / { try_files $uri $uri/ =404; } location = /50x.html { root html; } location ~ .php$ { #try_files $uri =404; fastcgi_pass 127.0.0.1:9000; #fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; fastcgi_param domain $subdomain; include fastcgi_params; } location ~ /.ht { deny all; } } |
重启nginx
打开浏览器访问http://localhost/phpinfo.php
能看到php信息表示安装成功。
4.安装mysql
这个步骤根其它环境无特殊不同,如果安装过可以直接使用,未安装的可以根据mysql安装向导下一步即可。
最终安装之后的目录结构
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 |
www ├── RunHiddenConsole.exe ├── nginx │ ├── conf │ ├── contrib │ ├── docs │ ├── html │ ├── logs │ ├── nginx.exe │ └── temp ├── php │ ├── dev │ ├── ext │ ├── extras │ ├── glib-2.dll │ ├── gmodule-2.dll │ ├── icudt.dll │ ├── icudt46.dll │ ├── icuin.dll │ ├── icuin46.dll │ ├── icuio.dll │ ├── icuio46.dll │ ├── icule.dll │ ├── icule46.dll │ ├── iculx.dll │ ├── iculx46.dll │ ├── icutest.dll │ ├── icutest46.dll │ ├── icutu.dll │ ├── icutu46.dll │ ├── icuuc.dll │ ├── icuuc46.dll │ ├── install.txt │ ├── libeay32.dll │ ├── libenchant.dll │ ├── libenchant_ispell.dll │ ├── libenchant_myspell.dll │ ├── libpq.dll │ ├── libsasl.dll │ ├── license.txt │ ├── news.txt │ ├── phar.phar.bat │ ├── pharcommand.phar │ ├── php-cgi.exe │ ├── php-win.exe │ ├── php.exe │ ├── php.gif │ ├── php.ini │ ├── php.ini-development │ ├── php.ini-production │ ├── php5apache2_2.dll │ ├── php5apache2_2_filter.dll │ ├── php5apache2_3.dll │ ├── php5nsapi.dll │ ├── php5ts.dll │ ├── pws-php5cgi.reg │ ├── pws-php5isapi.reg │ ├── readme-redist-bins.txt │ ├── snapshot.txt │ └── ssleay32.dll ├── readme.txt ├── start.bat ├── stop.bat |
附:nginx和php的快速启动和关闭脚本
启动脚本
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
@echo off set php_home=D:webwwwphp set nginx_home=D:webwwwnginx REM Windows 下无效 REM set PHP_FCGI_CHILDREN=5 REM 每个进程处理的最大请求数,或设置为 Windows 环境变量 set PHP_FCGI_MAX_REQUESTS=1000 echo Starting PHP FastCGI... RunHiddenConsole %php_home%/php-cgi.exe -b 127.0.0.1:9000 -c %php_home%/php.ini echo Starting nginx... RunHiddenConsole %nginx_home%/nginx.exe -p %nginx_home% |
关闭脚本
1 2 3 4 5 6 |
@echo off echo Stopping nginx... taskkill /F /IM nginx.exe > nul echo Stopping PHP FastCGI... taskkill /F /IM php-cgi.exe > nul exit |
遇到的问题:
如果遇到提示php不是有效的win32程序,是因为安装的微软运行时库不对2003需要使用vc9版本的php