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 array_intersect()函数使用代码
Jan 14 PHP
PHP 压缩文件夹的类代码
Nov 05 PHP
PHP备份/还原MySQL数据库的代码
Jan 06 PHP
SESSION信息保存在哪个文件目录下以及能够用来保存什么类型的数据
Jun 17 PHP
php获取文件大小的方法
Feb 26 PHP
教你如何在CI框架中使用 .htaccess 隐藏url中index.php
Jun 09 PHP
PHP中几个可以提高运行效率的代码写法、技巧分享
Aug 21 PHP
CI框架整合widget(页面格局)的方法
May 17 PHP
Yii2使用自带的UploadedFile实现的文件上传
Jun 20 PHP
PHP连接MYSQL数据库的3种常用方法
Feb 27 PHP
利用ajax和PHP实现简单的流程管理
Mar 23 PHP
PHP常用字符串输出方法分析(echo,print,printf及sprintf)
Mar 09 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 XML备份Mysql数据库
2009/05/27 PHP
很让人受教的 提高php代码质量36计
2012/09/05 PHP
关于PHP的相似度计算函数:levenshtein的使用介绍
2013/04/15 PHP
php上传文件,创建递归目录的实例代码
2013/10/18 PHP
什么是PEAR?什么是PECL?PHP中两个容易混淆的概念解释
2015/07/01 PHP
PHP常用文件操作函数和简单实例分析
2016/06/03 PHP
php文件上传原理与实现方法详解
2019/12/20 PHP
javascript jQuery $.post $.ajax用法
2008/07/09 Javascript
JS与框架页的操作代码
2010/01/17 Javascript
jQuery Lightbox 图片展示插件使用说明
2010/04/25 Javascript
js实现兼容性好的微软官网导航下拉菜单效果
2015/09/07 Javascript
jQuery实现的小图列表,大图展示效果幻灯片示例
2016/10/25 Javascript
JS拉起或下载app的实现代码
2017/02/22 Javascript
Vue常用指令V-model用法
2017/03/08 Javascript
jQuery Validate 无法验证 chosen-select元素的解决方法
2017/05/17 jQuery
bootstrap3使用bootstrap datetimepicker日期插件
2017/05/24 Javascript
Vue渲染过程浅析
2019/03/14 Javascript
后台使用freeMarker和前端使用vue的方法及遇到的问题
2019/06/13 Javascript
中级前端工程师必须要掌握的27个JavaScript 技巧(干货总结)
2019/09/23 Javascript
js实现百度登录窗口拖拽效果
2020/03/19 Javascript
[02:43]中国五虎出征TI3视频
2013/08/02 DOTA
Python3爬虫学习之MySQL数据库存储爬取的信息详解
2018/12/12 Python
python按修改时间顺序排列文件的实例代码
2019/07/25 Python
python requests库爬取豆瓣电视剧数据并保存到本地详解
2019/08/10 Python
python getopt模块使用实例解析
2019/12/18 Python
python函数enumerate,operator和Counter使用技巧实例小结
2020/02/22 Python
Python 使用 environs 库定义环境变量的方法
2020/02/25 Python
python实现在列表中查找某个元素的下标示例
2020/11/16 Python
提供世界各地便宜的机票:Sky-tours
2016/07/21 全球购物
法国在线药房:1001Pharmacies
2021/03/07 全球购物
阿联酋最好的手机、电子产品和家用电器网上商店:Eros Digital Home
2020/08/09 全球购物
物业公司采购员岗位职责
2013/12/31 职场文书
数学与统计学院学生个人职业生涯规划书
2014/02/10 职场文书
五四青年节比赛演讲稿
2015/03/18 职场文书
2016春节家属慰问信
2015/03/25 职场文书
Android RecyclerView实现九宫格效果
2022/06/28 Java/Android