Windows下Nginx+Mysql+Php(wnmp)环境搭建
前言
最近想在windows下使用nginx搭建web环境,本来想用套件(WNMP)一键安装,但后来放弃了,觉得还是自己动手,丰衣足食的好,而且套件的局限性太大。所以后来就各种搜索,看到前辈写关于wnmp环境的搭建,虽是感觉千篇一律,不过对我这个新手来说,还是有一定的参考价值,非常感谢!但在搭建的过程中,遇到了很多问题,所以决定自己整理一番,以供初学者参考。
Nginx是一个高性能的HTTP和反向代理服务器,同时还是IMAP/POP3/SMTP代理服务器,该程序由俄罗斯Rambler.ru 站点开发,Nginx因为性能稳定、低系统资源消耗而闻名。近几年Nginx在国内已经成炙热化状态,诸多大型网站都已经使用Nginx来做Web服务器,所以学习Nginx还是非常有必要的。
一、首先我们先准备必要的软件:
1.nginx
2.php
3.mysql
4.RunHiddenConsole.exe(作用是在执行完命令行脚本后可以自动关闭脚本,而从脚本中开启的进程不被关闭)
这几个软件我放在百度云盘,大家可以下载 http://pan.baidu.com/s/1bn56geN,也可以联系我索取 991769422@qq.com
注:除了第四个可执行文件,前三个软件大家可根据需要,选择不同版本,具体下载网址大家可以搜索一下
二、解压Nginx和Php到你自己安装位置
我的是在E盘下首先建立了一个wnmp文件夹,给不同软件创建一个文件夹,结构如下

注意:目录文件的建立一定不要有中文或者带有空格的目录,否则后面会引来很多不必要的麻烦。例如D:\Program Files\wnmp 是不建议的
三、安装一下mysql文件,具体安装方式,网上有很多,这里就不赘述了
四、安装nginx
1.打开E:\wnmp\nginx目录,运行该文件夹下的nginx.exe
2.测试是否启动nginx。打开浏览器访问http://localhost 或 http://127.0.0.1,看看是否出现“Welcome to nginx!”,出现的证明已经启动成功了。没有启动的话,看看80端口有占用没。
注意:该网站的默认目录在“E:\wnmp\nginx\htm”l下

五、配置PHP文件
1.打开E:\wnmp\php\目录,修改php.ini-development文件,将文件名修改为php.ini;
2.打开php配置文件php.ini,对一些地方进行修改
(1)找到: ;extension_dir = "ext" ,修改为 extension_dir = "E:\wnmp\php\ext"
(2)找到:;date.timezone = , 修改为 date.timezone = Asia/Shanghai
(3)找到: enable_dl = Off 修改为 enable_dl = On
(4)找到: ;cgi.force_redirect = 1 修改为 cgi.force_redirect = 0
(5)找到: ;fastcgi.impersonate = 1 修改为 fastcgi.impersonate = 1
(6)找到: ;cgi.rfc2616_headers = 0 修改为 ;cgi.rfc2616_headers = 1
以下修改是php扩展文件,根据自己的需求,只需要把前面分号去掉就行
;extension=php_bz2.dll
;extension=php_curl.dll
;extension=php_fileinfo.dll
;extension=php_gd2.dll
;extension=php_gettext.dll
;extension=php_gmp.dll
;extension=php_intl.dll
;extension=php_imap.dll
;extension=php_interbase.dll
;extension=php_ldap.dll
;extension=php_mbstring.dll
;extension=php_exif.dll ; Must be after mbstring as it depends on it
;extension=php_mysql.dll
;extension=php_mysqli.dll
;extension=php_oci8_12c.dll ; Use with Oracle Database 12c Instant Client
;extension=php_openssl.dll
;extension=php_pdo_firebird.dll
;extension=php_pdo_mysql.dll
;extension=php_pdo_oci.dll
;extension=php_pdo_odbc.dll
;extension=php_pdo_pgsql.dll
;extension=php_pdo_sqlite.dll
;extension=php_pgsql.dll
;extension=php_pspell.dll
;extension=php_shmop.dll
;extension=php_snmp.dll
;extension=php_soap.dll
;extension=php_sockets.dll
;extension=php_sqlite3.dll
;extension=php_sybase_ct.dll
;extension=php_tidy.dll
;extension=php_xmlrpc.dll
;extension=php_xsl.dll
注:(支持MYSQL数据库的扩展)
extension=php_mysql.dll
extension=php_mysqli.dll
六、nginx配置启动php,以cgi运行php
1.打开E:\wnmp\nginx\conf目录,修改nginx.conf文件
把这个地方
location / {
root html;
index index.html index.htm;
}
修改为如下:(修改网站文件的路径,以及添加index.php的默认页)
location / {
root E:/www;
index index.html index.htm index.php;
}
其中 root E:/www; 是我以后要放web项目的地方,这个可以根据自己的喜好,自己来定
2.支持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;
#}
修改为如下:
# pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
#
location ~ \.php$ {
root E:/www;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
其中 这里的“$document_root”就是指前面“root”所指的站点路径
七、创建启动、停止的批处理文件。
1.把下载好的 RunHiddenConsole.exe 可执行文件放到E:\wnmp\nginx目录下,同时创建两个strat.bat文件和stop.bat文件,如下图

2.打开start.bat文件,粘贴一下代码
@echo off echo Starting PHPFastCGI... RunHiddenConsole E:/wnmp/php/php-cgi.exe -b 127.0.0.1:9000 -c E:/wnmp/php/php.ini echo Starting nginx... RunHiddenConsole E:/wnmp/nginx/nginx.exe
PAUSE
3.打开stop.bat文件,粘贴一下代码
@echo off echo Stopping nginx... taskkill /F /IM nginx.exe > nul echo Stopping PHP FastCGI... taskkill /F /IM php-cgi.exe > nul exit
八、测试
1.双击start.bat启动服务进程,进程管理器有两个nginx.exe的进程和一个php-cgi.exe的进程。

这样nginx服务就启动了,而且php也以fastCGI的方式运行了。
到自己的站点目录下,我的是E:/www,
在该目录下新建一个phpinfo.php的文件,在里面编辑
<?php
phpinfo();
?>
保存后,打开浏览器输入“http://localhost/phpinfo.php”,如果看到

就说明,nginx+php的环境已经大功告成!
九、关闭服务进程
双击stop.bat关闭服务进程
Windows下Nginx+Mysql+Php(wnmp)环境搭建的更多相关文章
- 搭建windows环境下(nginx+mysql+php)开发环境
搭建windows环境下(nginx+mysql+php)开发环境 1. 所需准备应用程序包 1.1 nginx 程序包nginx-1.0.4.zip或其他版本(下载地址: http ...
- Qt4.8在Windows下的三种编程环境搭建
Qt4.8在Windows下的三种编程环境搭建 Qt的版本是按照不同的图形系统来划分的,目前分为四个版本:Win32版,适用于Windows平台:X11版,适合于使用了X系统的各种Linux和Unix ...
- Qt在Windows下的三种编程环境搭建
尊重作者,支持原创,如需转载,请附上原地址:http://blog.csdn.net/libaineu2004/article/details/17363165 从QT官网可以得知其支持的平台.编译器 ...
- Windows下Nginx+Web.py+FastCGI服务搭建
在搭建之前,有必要了解下什么是fastcgi,但鉴于我自己也不大了解,这里就不搬门弄斧了,请参考各种百科和官网资料. 1.资源下载 python下载地址:戳这里webpy下载地址:戳这里flup下载地 ...
- Qt在Windows下的三种编程环境搭建(图文并茂,非常清楚)good
尊重作者,支持原创,如需转载,请附上原地址:http://blog.csdn.net/libaineu2004/article/details/17363165 从QT官网可以得知其支持的平台.编译器 ...
- 【Qt开发】Qt在Windows下的三种编程环境搭建
从QT官网可以得知其支持的平台.编译器和调试器的信息如图所示: http://qt-project.org/doc/qtcreator-3.0/creator-debugger-engines.htm ...
- windows下vue+webpack前端开发环境搭建及nginx部署
一.开发环境搭建 1.前端框架一般都依赖nodejs,我们首先要安装node.js.请参考http://www.cnblogs.com/wuac/p/6381819.html. 2.由于许多npm的源 ...
- CentOS 7 yum nginx MySQL PHP 简易环境搭建
用centos自带的yum源来安装nginx,mysql和php,超级方便,省去编译的麻烦,省去自己配置的麻烦,还能节省非常多的时间. 我们先把yum源换成国内的阿里云镜像源(当然不换也可以),先备份 ...
- CentOS 7 yum nginx MySQL PHP7 简易环境搭建(精)
用centos自带的yum源来安装nginx,mysql和php,超级方便,省去编译的麻烦,省去自己配置的麻烦,还能节省非常多的时间. 我们先把yum源换成国内的阿里云镜像源(当然不换也可以),先备份 ...
随机推荐
- ASP.NET 中执行 URL 重写
具体实现步骤(其中的一种实现方法): 一.下载相关的DLL(ActionlessForm.dll和UrlRewriter.dll) http://download.csdn.net/detail/yi ...
- c语言 指针与地址的区别
指针由两部分组成,指针的类型和指针的值(也就是变量的地址). 指针和地址的区别: 地址只是一堆十六进制的字符,对应着内存条的某段内存, 而指针本身有地址,指针的值也是一个地址,指针本身还有类型,这与单 ...
- 增强for循环(forearch)
增强for循环是为了简化在遍历数组需要先获得数组的长度或者在遍历集合中的元素的时候需要使用迭代器的操作. 引入时间:JDK1.5 语法格式: for(数据类型 变量 :需要迭代的数组或者集合){ } ...
- 初中级Web开发人员的福音:《JavaScript启示录》上市了
经历过14个月的等待,本书终于上市了,完全口语化叙述,请参考右边的链接. 本书介绍 本书无关于JavaScript设计模式,也无关于JavaScript面向对象代码实现.本书的写作目的也不是鉴别Jav ...
- 谈谈patch strategy
所谓的patch strategy,就是软件发布后出现bug时打补丁的方式 - 主要是关于源代码branch如何组织的方式 针对项目的开发阶段.开发状态.维护方式不同,可以有不同的patching s ...
- 【Android测试】【随笔】Android Studio环境搭建
◆版权声明:本文出自胖喵~的博客,转载必须注明出处. 转载请注明出处:http://www.cnblogs.com/by-dream/p/5482778.html 随着Android Studio的推 ...
- 模块度与Louvain社区发现算法
Louvain算法是基于模块度的社区发现算法,该算法在效率和效果上都表现较好,并且能够发现层次性的社区结构,其优化目标是最大化整个社区网络的模块度. 模块度(Modularity) 模块度是评估一个社 ...
- Theano2.1.4-基础知识之图结构
来自:http://deeplearning.net/software/theano/tutorial/symbolic_graphs.html Graph Structures Theano是将符号 ...
- AngularJS中实现无限级联动菜单
多级联动菜单是常见的前端组件,比如省份-城市联动.高校-学院-专业联动等等.场景虽然常见,但仔细分析起来要实现一个通用的无限分级联动菜单却不一定像想象的那么简单.比如,我们需要考虑子菜单的加载是同步的 ...
- 搭建emacs的go编程语言环境
关于emacs就不说明了,直接切入主题.关于我的emacs配置,可以直接参考GitHub上的lienhua34/myemacs-conf. go-mode 安装 关于go-mode的安装,可以直接参考 ...