Windows 10部署IIS+PHP7+MYSQL

Windows 10部署IIS+PHP7+MYSQL

其他小七2018-11-03 11:01:077990A+A-

Windows 10部署IIS+PHP7+MYSQL

虽然在IIS下跑PHP并不是常见的做法,但是有时在Windows下开发PHP程序,又不想装Apache之类的Webserver,所以可以直接利用windows自带的IIS来作为简单的PHP开发环境的Web服务器。部署其实一点都不复杂,甚至比在Linux下简单。本文部署基于以下基础环境:

  • 系统:Windows 10家庭中文版(64位)

  • IIS版本:IIS 10

  • PHP版本:7.1.0

  • MYSQL版本:5.7.16

一、安装IIS功能

打开“启用或关闭Windows功能”窗口(在任务栏左下角小娜框里输入“启用”二字即可找到)。
在打开的窗口中找到“Internet Information Services”一项,选中,并找到下级“应用程序开发功能”->“CGI”选中,如下图:
启用或关闭Windows功能
点击确定,系统将完成IIS的安装,并在安装完成后自动启动IIS,默认端口为80。安装完成后在浏览器中访问http://localhost,看到如下图欢迎页面,说明IIS成功安装并启动。
 IIS默认页面

二、安装配置PHP

2.1 安装PHP

根据PHP官方建议,IIS+FastCGI模式下运行PHP需要下载非线程安全版本,并根据系统选择32位或64位的zip包,这里选择64位非线程安全版本下载。
下载后将zip包解压到自己喜欢的地方(本文以“C:\Program Files\php-7.1.0-nts-Win32-VC14-x64”为例)就完成PHP的安装了,很简单有没有!

2.2 添加IIS对PHP的支持

启动IIS管理器(同样在小娜里输入IIS即可),在界面中部找到并双击“处理程序映射”
处理程序映射
进入处理程序映射界面,如下图:
处理程序映射
在界面右侧,点击“添加模块映射”,弹出“添加模块映射”窗口如下图填写:
添加模块映射
注意在选择可执行文件,浏览到PHP所在目录时,默认后缀名筛选是“*.dll”,需要手动改成“*.exe”,然后选择“php-cgi.exe”(如下图)。填写好后点确定,弹出确认框后点击“是”保存。
选择程序

2.3 配置PHP

将PHP目录下php.ini-development(开发环境)或php.ini-production(正式环境)文件复制一份名为php.ini的文件到同一目录下,并打开php.ini,找到以下值并修改为:

开启以下常用扩展(去掉前面的分号):

后续如果要再添加PHP的扩展,不仅需要重启IIS的网站,还需在IIS管理器中找到“应用程序池”->“DefaultAppPool”停止然后启动,如下图:


应用程序池

2.4 安装url-rewrite模块

大部分PHP框架都需要使用web server的rewrite来实现路由功能,所以需要让IIS支持url-rewrite功能,可以通过安装扩展来实现。
如果安装失败出现如下图错误,提示“需要IIS 7.0版或更高版本”:
web安装程序
不要紧,可能是Web平台安装程序bug,把IIS 10.0的版本号判断得比7.0小了(1<7?我猜的)。在小娜里输入“regedit”启动注册表编辑器,找到“HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\InetStp”位置
编辑注册表
双击MajorVersion,把数值数据一项的值改为9,保存。重新安装url-rewrite。安装完成之后,重启IIS,并看到IIS管理工具中多了一项“URL 重写”,说明安装成功。不要忘了安装成功后再把MajorVersion的值改回10(十六进制下是a)。
url rewrite
配置网站根目可以在IIS管理工具中进行,都是可视化图形界面操作,比apache方便很多,这里不再详述。在网站根目录下放置一个php文件(如test.php),内容如下

访问http://localhost/test.php,可以看到PHP的详细信息,说明到此IIS+PHP环境配置成功。


三、安装配置MySQL

3.1 安装MySQL

选择64位的zip包下载,并解压到想要的目录,这里以“C:\Program Files\mysql-5.7.16-winx64”为例。在该目录下添加名为“data”的文件夹,之后默认mysql的数据都会放到这个目录下。
在程序目录下找到“my-default.ini”,改名为“my.ini”,并打开编辑,在“[mysqld]”节点加入加入以下定义


3.2 初始化MySQL

以管理员身份运行PowerShell,并执行以下命令

执行命令后,在data目录会创建初始的数据文件,找到.err后缀名的文件用文本编辑器打开,会发现一行日志:


[Note] A temporary password is generated for [email protected]: 5#J2.dM0pp%:
这是mysql初始化的用户名(root)和密码(5#J2.dM0pp%:)
在PowerShell(管理员身份)运行以下命令启动mysql

登陆mysql并修改初始密码



运行以下mysql命令



至此,MySQL已经准备就绪。


四、常见问题及解决办法

4.1 访问出现401或403

出现这种错误是没有权限造成的。在资源管理器中右键点击站点根目录文件夹,点击“属性”项 ->“安全”Tab ->“编辑”按钮,在弹出的窗口中点击“添加”,在弹出的窗口中的“输入对象名称来选择”一项填写“IUSR”,点击右边的“检查名称”按钮,”IUSR”会被加上下划线,如下图:
添加用户和组
点击“确定”,回到刚才的权限窗口选中IUSR用户,赋予如下图所示的三个权限,然后一路确定即可。
选择权限
如果还是不行,尝试用同样的方法添加Everyone(将上面的IUSR改为EVERYONE)用户的权限。

4.2 访问出现“No input file specified”

打开IIS管理器,在中间双击“FastCGI设置”图标,在之后页面的第一条记录点右键选择“编辑”,在弹出的窗口中将“监视对文件所做的更改”一项的值改为php配置文件所在的地方:“C:\Program Files\php-7.1.0-nts-Win32-VC14-x64 \php.ini”

在“环境变量”一项点旁边的”…”,弹出的窗口中点“添加”, 并如下设置:


PHP FastCGI


确定保存,并重启IIS。


点击这里复制本文地址 以上内容由小七资源网整理呈现,请务必在转载分享时注明本文地址!如对内容有疑问,请联系我们,谢谢!

支持Ctrl+Enter提交

小七资源网 © All Rights Reserved.  Copyright 小七资源网
本站部分内容收集于互联网,如果有侵权内容、不妥之处,请联系我们删除。敬请谅解!email:[email protected]