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.1 NGINX
1.2 PHP
因为我们要通过FastCGI方式连接PHP,请下载Non Thread Safe版本。
PHP5.6+以上还需Visual C++Redistributable 2015,这是建立的C++应用的必要组件,安装一次即可解决,下载地址:
1.3 MySQL
MySQL下载需要账号登陆,5.7.17版本可直接用如下地址下载:
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-winx64 MySQL安装目录
├─nginx-1.10.2 Nginx安装目录
├─php-7.1.0-nts-Win32-VC14-x64 PHP安装目录
├─zips 安装包目录
│ ├─mysql-5.7.17-winx64.zip MySQL安装包
│ ├─nginx-1.10.2.zip Nginx安装包
│ ├─php-7.1.0-nts-Win32-VC14-x64.zip PHP7安装包
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 Ver 5.7.17 for Win64 on x86_64 (MySQL Community Server (GPL))
> nginx -v
nginx version: nginx/1.10.2
> php -v
PHP 7.1.0 (cli) (built: Dec 2 2016 05:24:39) ( NTS MSVC14 (Visual C++ 2015) x64 )
Copyright (c) 1997-2016 The PHP Group
Zend Engine v3.1.0-dev, Copyright (c) 1998-2016 Zend Technologies
当然,到这里各个功能还暂时不能用,需要继续配置。
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盘
> cd d:\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.961579Z 1 [Note] A temporary password is generated for root@localhost: 4fwLHzjSql_?
再启动MySQL:
> net start mysql
临时密码只能登陆后修改密码,不能进行其他操作。使用下面的命令修改root密码:
mysql_secure_installation
MySQL5.7.6+版本修改root密码,请看这里:MySQL5.7修改默认root密码。
4 配置nginx
Nginx解压其实就完成了安装,进入Nginx目录,启动nginx,
> d:
> cd d:\wnmp\nginx-1.10.2
> start nginx
检查Nginx是否启动成功,可以用这个命令:
> tasklist /fi "imagename eq nginx.exe"
启动后,浏览器访问localhost,能看到Welcome to nginx!欢迎信息就说明成功了。
没有启动的话,看看80端口有没有被占用。
默认情况下,Nginx站点根目录在Nginx的html目录下。
然后,打开Nginx安装目录下的conf子目录,修改nginx.conf配置文件。
首先,在location / 区域,index变量加上index.php作为首选默认首页,如下:
location / {
root html;
index index.php index.html index.htm;
}
再删除下面的注释,并更改/scripts为$document_root:
location ~ \.php$ {
root html;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_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文件,内容:
phpinfo();
切换到php目录,启动PHP CGI,如下:
> d:
> cd d:\wnmp\php-7.1.0-nts-Win32-VC14-x64
> php-cgi.exe -b 127.0.0.1:9000 -c php.ini
切换到nginx目录,重载Nginx。(查看Nginx常用命令)
> d:
> cd d:\wnmp\nginx-1.10.2
> nginx -s reload
浏览器访问:http://localhost,出现PHP信息说明配置成功。
7 测试MySQL
在nginx的html目录下新建sqltest.php文件,内容如下:
$link = new mysqli('localhost', 'root', 'root');
if(!$link) {
echo "FAILD!";
} else {
else echo "OK!";
}
浏览器访问:http://localhost/sqltest.php,如果页面显示OK,说明PHP连接MySQL成功。
参考资料: