WNMP完整教程
WNMP,是PHP开发环境的简称,即在Windows系统下安装Nginx、MySQL、PHP三个软件。
目前有很多一键安装的PHP开发环境,如phpStudy、WAMPServer、UPUPW、XAMPP、APPServ等。
phpStudy界面友好,但是MySQL版本太老。
WAMPServer的MySQL版本新,但是界面垃圾,用了很久不知道怎么开启服务器。
UPUPW版本新,DOS界面操作,介于phpstudy和WAMPServer之间。
其实,DIY一个WNMP环境也并不麻烦,按照下面步骤,很容易就能自己搭一个~~
友情推荐:其实,我们有更好的方法,就是用Docker一键搭建LNMP环境。
1下载
1.1NGINX
Nginx最新版下载:http://nginx.org/en/download.html。
1.2PHP
PHP最新版下载:http://windows.php.net/download/。
因为我们要通过FastCGI方式连接PHP,请下载NonThreadSafe版本。
更多请看:PHP的NonThreadSafe和ThreadSafe区别选择。
PHP5.6+以上还需VisualC++Redistributable2015,这是建立的C++应用的必要组件,安装一次即可解决,下载地址:
- 64位下载:vc_redist.x64.exe
- 32位下载:vc_redist.x86.exe
1.3MySQL
MySQL最新版下载:http://dev.mysql.com/downloads/mysql/。
MySQL下载需要账号登陆,5.7.17版本可直接用如下地址下载:
- http://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-5.7.17-win32.zip
- http://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-5.7.17-winx64.zip
2安装准备
2.1解压
在D盘下新建一个名为wnmp的目录,再在wnmp目录下创建zips子目录。
把下载的安装包全部放到zips目录下。
本文使用的版本如下:
- nginx-1.10.2.zip
- php-7.1.0-nts-Win32-VC14-x64.zip
- mysql-5.7.17-winx64.zip
将各安装包解压到wnmp目录下,完成后目录结构如下:
D:\wnmpWNMP总目录 ├─mysql-5.7.17-winx64MySQL安装目录 ├─nginx-1.10.2Nginx安装目录 ├─php-7.1.0-nts-Win32-VC14-x64PHP安装目录 ├─zips安装包目录 │├─mysql-5.7.17-winx64.zipMySQL安装包 │├─nginx-1.10.2.zipNginx安装包 │├─php-7.1.0-nts-Win32-VC14-x64.zipPHP7安装包
2.2配置环境变量
右击桌面的我的电脑,选择属性,再依次点击高级,环境变量。
在环境变量Path里面增加MySQL、Nginx、PHP执行文件的路径:
;D:\wnmp\mysql-5.7.17-winx64\bin;D:\wnmp\nginx-1.10.2;D:\wnmp\php-7.1.0-nts-Win32-VC14-x64;
重新打开一个DOS窗口,输入下面命令就可以看到环境变量已经生效:
echo%PATH%
然后用下面的命令查看版本号:
>mysqld--version mysqld Ver5.7.17forWin64onx86_64(MySQLCommunityServer(GPL)) >nginx-v nginxversion:nginx/1.10.2 >php-v PHP7.1.0(cli)(built:Dec 2201605:24:39)(NTSMSVC14(VisualC++2015)x64) Copyright(c)1997-2016ThePHPGroup ZendEnginev3.1.0-dev,Copyright(c)1998-2016ZendTechnologies
当然,到这里各个功能还暂时不能用,需要继续配置。
3 配置MySQL
切换到mysql-5.7.17-winx64目录,复制my-default.ini文件,并重命名为my.ini。
再打开my.ini,取消basedir和datadir前的注释,并指定具体路径:
basedir="D:/wamp/mysql-5.7.17-winx64/" datadir="D:/wamp/mysql-5.7.17-winx64/data/"
以管理员身份打开一个DOS窗口,切换到bin目录(必须),
>d:#切换到D盘 >cdd:\wnmp\mysql-5.7.17-winx64\bin#切换到bin目录 >mysqld-install#安装MySQL服务 >mysqld--initialize--user=root--console#初始化MySQL,生成data目录和root密码,5.7版本之后必须要有这个命令
最后那条命令会生成一个临时密码,如下:
2016-12-20T10:07:35.961579Z1[Note]Atemporarypasswordisgeneratedforroot@localhost:4fwLHzjSql_?
再启动MySQL:
>netstartmysql
临时密码只能登陆后修改密码,不能进行其他操作。使用下面的命令修改root密码:
mysql_secure_installation
MySQL5.7.6+版本修改root密码,请看这里:MySQL5.7修改默认root密码。
4 配置nginx
Nginx解压其实就完成了安装,进入Nginx目录,启动nginx,
>d: >cdd:\wnmp\nginx-1.10.2 >startnginx
检查Nginx是否启动成功,可以用这个命令:
>tasklist/fi"imagenameeqnginx.exe"
启动后,浏览器访问localhost,能看到Welcometonginx!欢迎信息就说明成功了。
没有启动的话,看看80端口有没有被占用。
默认情况下,Nginx站点根目录在Nginx的html目录下。
然后,打开Nginx安装目录下的conf子目录,修改nginx.conf配置文件。
首先,在location/区域,index变量加上index.php作为首选默认首页,如下:
location / { root html; index index.phpindex.html index.htm; }
再删除下面的注释,并更改/scripts为$document_root:
location~\.php${ roothtml; fastcgi_pass127.0.0.1:9000; fastcgi_indexindex.php; fastcgi_paramSCRIPT_FILENAME$document_root$fastcgi_script_name; includefastcgi_params; }
5配置PHP
复制一份php目录下的php.ini-development文件,将复制的文件名改为php.ini,打开并作如下修改:
- 找到;extension_dir="ext",去掉前面的分号,再改为extension_dir="D:\wnmp\php\ext"
- 找到;date.timezone= ,去掉前面的分号,再改为date.timezone=Asia/Shanghai
- 找到;cgi.force_redirect=1,去掉前面的分号,再改为cgi.force_redirect=0
- 找到;cgi.rfc2616_headers=0,去掉前面的分号,再改为cgi.rfc2616_headers=1
- 找到enable_dl=Off,改为enable_dl=On
- 找到;fastcgi.impersonate=1,去掉前面的分号
- 找到;extension=php_curl.dll,去掉前面的分号
- 找到;extension=php_gd2.dll,去掉前面的分号
- 找到;extension=php_mbstring.dll,去掉前面的分号
- 找到;extension=php_mysqli.dll,去掉前面的分号
- 找到;extension=php_pdo_mysql.dll,去掉前面的分号
其他配置按照自己的需求更改。
6运行
在Nginx安装目录下的html目录新建一个index.php文件,内容:
<?php phpinfo();
切换到php目录,启动PHPCGI,如下:
>d: >cdd:\wnmp\php-7.1.0-nts-Win32-VC14-x64 >php-cgi.exe -b 127.0.0.1:9000-cphp.ini
切换到nginx目录,重载Nginx。(查看Nginx常用命令)
>d: >cdd:\wnmp\nginx-1.10.2 >nginx-sreload
浏览器访问:http://localhost,出现PHP信息说明配置成功。
查看后台启动fastcgi,并一键启动、停止、重启WNMP脚本
7测试MySQL
在nginx的html目录下新建sqltest.php文件,内容如下:
<?php $link = new mysqli('localhost', 'root', 'root'); if(!$link){ echo "FAILD!"; }else{ else echo "OK!"; }
浏览器访问:http://localhost/sqltest.php,如果页面显示OK,说明PHP连接MySQL成功。
参考资料:
- windows下WNMP(windows+nginx+mysql+php)配置
- MySQL环境部署
- MySQL5.6forWindows解压缩版配置安装
- MySQLForums::Install&Repo::onWindows10Mysql5.7:Mysqldcommandfails.Can'tfind\datadirectory
- windows10配置mysql失败
- nginx在windows命令行下重启报错的问题
- Windows下尝试PHP7提示丢失VCRUNTIME140.DLL的问题解决