Win10 下安装配置IIS + MySQL + nginx + php7.1.7


Posted in PHP onAugust 04, 2017

环境:

VMWare Workstation Player12

Windows10 Pro x64

 一、安装系统

vmware 会采用 fast install 方式很快装完,无需配置什么。

二、配置 IIS

在“程序和功能”下,打开“启用或关闭Windows功能”。把 Internet Infomation Services 功能添加进去,需要注意的是“应用程序开发功能”里边的CGI默认是不勾选的,需要手动选择

Win10 下安装配置IIS + MySQL + nginx + php7.1.7

注:在实际安装时,IIS 我是最后添加的,但写在了最前面,没有什么特殊含义。但因此会更改 IIS 的绑定端口。

关于端口:安装后,由于 80 被占,点击“Default Web Site”右边的“绑定”,修改端口号为“任意”,比如 8800,以后访问时候就用“localhost:8800”方式访问即可。

关于虚拟目录:如果需要虚拟目录,可以增加。添加后就要这样访问“localhost:8800/虚拟目录名/页面”,如 localhost:8800/myweb/phpinfo.php。

关于FastCGI:选择 Default Web Site,点击功能区里边的处理程序映射,添加模块映射。

Win10 下安装配置IIS + MySQL + nginx + php7.1.7

在网站默认/指定路径下,放一个内容为<?php phpinfo(); ?> 的文件,可以命名为 phpinfo.php。启动或重启 IIS 服务,默认路径输入 localhost:8800/phpinfo.php,指定路径(如放在了虚拟目录下)输入 localhost:8800/虚拟目录别名/phpinfo.php,显示下图即为 IIS + PHP 组合成功

Win10 下安装配置IIS + MySQL + nginx + php7.1.7

 三、编译安装 MySQL

 参考示例:https://3water.com/article/95023.htm 或类似

下载 zip 形式的 mysql server,解压到全英文路径下(中文没试,避免麻烦)。添加环境变量,系统变量 Path 中添加上 MySQL 的路径

Win10 下安装配置IIS + MySQL + nginx + php7.1.7

在MySQL根目录下新建一个配置文件,命名为 my.ini,内容如下

[client]
port=3306
default-character-set=utf8

[mysqld]
port=3306
character_set_server=utf8

#mysql的安装/解压目录
basedir=C:\Dev\mysql57

#mysql的数据目录
datadir=C:\Dev\mysql57\data
 
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
既然是配置,basedir 和 datadir 是可以根据自己要求指定的,只要配置文件中写正确即可。我将 datadir 指定为 basedir 路径下了,而解压缩时 data 文件夹并不存在,因此手动建立一个。完成后,目录结构如下图

Win10 下安装配置IIS + MySQL + nginx + php7.1.7

打开 cmd 命令行工具,以管理员身份运行

运行命令:cd....切换到 mysql 根目录下

运行命令:mysqld --initialize --user=mysql --console

该命令执行中的最后,mysql会分配一个 temporary password,记住:CZX3ge1kuz)L

运行命令:mysqld --install MySQL

安装完成

net start mysql 启动服务

net stop mysql 停止服务

sc delete MySQL 删除服务(按需使用)

使用初始密码登录后,使用 set password for root@localhost=password('新密码') 来更改密码

 四、安装php

php下载 Non Thread Safe 或 Thread Safe 都行,暂时不清楚有什么具体运行时的区别。解压缩到指定文件夹,按照网上多如牛毛的“教程”复制 php.ini-development 或 php.ini-production 为 php.ini,并修改里边的 extension_dir 为 php 安装目录下的 ext 文件夹,如下图

Win10 下安装配置IIS + MySQL + nginx + php7.1.7

然后按照需要(截止到写文时,我暂不知道什么需要什么不需要)将 ;extension=xxxx 这样的扩展启用,启用方法就是去掉前面的英文半角冒号并保存。

Win10 下安装配置IIS + MySQL + nginx + php7.1.7

但有教程说,不要图方便都启用,会碰到意外报错,按说应该是这样。但因为我刚入门并不了解,所以只能都启用或都不启用,后面慢慢积累经验吧。

 五、安装 nginx

下载 nginx,并解压缩到全英文目录。进入 conf 文件夹,修改 nginx.conf 文件。相对 php,nginx 的配置文件简短的多,修改 location {} 和 #pass the php scripts to FastCGI ...下面 location{} 两个部分。

修改 root 元素:修改成 web 路径,比如网页默认路径是 C:\www,就修改成这个。

修改fastcgi_pass:默认我没有动,但端口号无疑肯定可以修改

cmd 命令行管理员运行模式下,cd 切换到 nginx 目录,运行 start nginx 即可启动服务。由于我实际安装时先安装了 nginx,占据 80 端口,因此直接浏览器运行 localhost 应该显示 nginx 的欢迎画面。

Win10 下安装配置IIS + MySQL + nginx + php7.1.7

至此,windows 环境下配置完成。

注:截止到写稿时,nginx + php 的组合,phpinfo 还没有正确显示出来,明天搞定这个。并研究一下 80 端口是否谁先运行谁先占用的问题。

PHP 相关文章推荐
php木马攻击防御之道
Mar 24 PHP
PHP教程 预定义变量
Oct 23 PHP
比较全面的PHP数组的使用方法小结
Sep 23 PHP
php数组函数序列之array_intersect() 返回两个或多个数组的交集数组
Nov 10 PHP
php数组相加 array(“a”)+array(“b”)结果还是array(“a”)
Sep 19 PHP
使用PHP强制下载PDF文件示例
Jan 17 PHP
Zend Framework教程之Zend_Db_Table_Row用法实例分析
Mar 21 PHP
smarty自定义函数用法示例
May 20 PHP
PHP中strpos、strstr和stripos、stristr函数分析
Jun 11 PHP
PHP判断json格式是否正确的实现代码
Sep 20 PHP
PHP实现微信支付(jsapi支付)流程步骤详解
Mar 15 PHP
PHP实现PDO操作mysql存储过程示例
Feb 13 PHP
php7安装yar扩展的方法详解
Aug 03 #PHP
ThinkPHP 3.2.3实现页面静态化功能的方法详解
Aug 03 #PHP
PHP7扩展开发教程之Hello World实现方法示例
Aug 03 #PHP
Kindeditor编辑器添加图片上传水印功能(php代码)
Aug 03 #PHP
phpStudy中升级MySQL版本到5.7.17的方法步骤
Aug 03 #PHP
使用PHP json_decode可能遇到的坑与解决方法
Aug 03 #PHP
Yii 2中的load()和save()示例详解
Aug 03 #PHP
You might like
PHP使用正则表达式清除超链接文本
2013/11/12 PHP
destoon出现验证码不显示时的紧急处理方法
2014/08/22 PHP
WordPress中获取指定分类及其子分类下的文章数目
2015/12/31 PHP
yii2 commands模式以及配置crontab定时任务的方法
2017/08/19 PHP
thinkphp5.0整合phpsocketio完整攻略(绕坑)
2018/10/12 PHP
JS实现浏览器菜单命令
2006/09/05 Javascript
JavaScript.The.Good.Parts阅读笔记(一)假值与===运算符
2010/11/16 Javascript
js单向链表的具体实现实例
2013/06/21 Javascript
jquery简单实现鼠标经过导航条改变背景图
2013/12/17 Javascript
jQuery+css3实现转动的正方形效果(附demo源码下载)
2016/01/27 Javascript
javascript实现计时器的简单方法
2016/02/21 Javascript
javaScript中定义类或对象的五种方式总结
2016/12/04 Javascript
JS操作时间 - UNIX时间戳的简单介绍(必看篇)
2017/08/16 Javascript
使用MUI框架模拟手机端的下拉刷新和上拉加载功能
2017/09/04 Javascript
bootstrap实现点击删除按钮弹出确认框的实例代码
2018/08/16 Javascript
小程序实现多选框功能
2018/10/30 Javascript
Vue基本使用之对象提供的属性功能
2019/04/30 Javascript
小程序实现录音上传功能
2019/11/22 Javascript
vue项目打包后提交到git上为什么没有dist这个文件的解决方法
2020/09/16 Javascript
openlayers4.6.5实现距离量测和面积量测
2020/09/25 Javascript
[00:12]DAC2018 天才少年转战三号位,他的SOLO是否仍如昔日般强大?
2018/04/06 DOTA
python读取html中指定元素生成excle文件示例
2014/04/03 Python
Web服务器框架 Tornado简介
2014/07/16 Python
python编码总结(编码类型、格式、转码)
2016/07/01 Python
分数霸榜! python助你微信跳一跳拿高分
2018/01/08 Python
Python基于whois模块简单识别网站域名及所有者的方法
2018/04/23 Python
如何优雅地改进Django中的模板碎片缓存详解
2018/07/04 Python
python中类的属性和方法介绍
2018/11/27 Python
python 提取key 为中文的json 串方法
2018/12/31 Python
python使用threading.Condition交替打印两个字符
2019/05/07 Python
Mac PyCharm中的.gitignore 安装设置教程
2020/04/16 Python
python爬虫要用到的库总结
2020/07/28 Python
英国排名第一的最新设计师品牌手表独立零售商:TIC Watches
2016/09/24 全球购物
php优化查询foreach代码实例讲解
2021/03/24 PHP
静心口服夜广告词
2014/03/20 职场文书
公安机关纪律作风整顿个人剖析材料材料
2014/10/10 职场文书