部署IIS+PHP+SQL server环境

LogicAegis
• 阅读 3320

最近一直在配环境,在配iis+sqlserver+php的时候,走了很多的坑,这里记录一下。

目录

0x01 SQL server配置

0x02 IIS配置

0x03 PHP配置

0x04 配置IIS支持PHP

0x05 PHP连接SQL server

0x01 SQL server配置

这里就不说安装sqlserver的过程了,这里我用的是sqlserver2012,不带本地连接工具仅用于网络连接的。

由于这里我用的是win08的,在安装sqlserver的时候存在一些坑,需要提前安装.net2.0、.net4.0的环境的,还有所需要的vc环境,这个根据自己具体的配置环境来进行安装即可,这里还有一点就是需要更改防火墙规则。

0x02 IIS配置

这里直接安装IIS即可

部署IIS+PHP+SQL server环境

这里由于我们要使IIS支持PHP,所以这里需要增加一下CGI模块

部署IIS+PHP+SQL server环境

然后等待安装即可

在安装好之后我们先配置一下IIS,让其生效,并测试一下能否正常工作,这里按照自己的配置去设置

部署IIS+PHP+SQL server环境

设置好之后,我们自己创建一个index.html进行一次测试

这个时候可能出现这个情况

部署IIS+PHP+SQL server环境

这是由于文件夹权限的问题,我们需要对文件夹进行授权,添加IUSR用户权限

部署IIS+PHP+SQL server环境

然后重启服务即可正常访问

部署IIS+PHP+SQL server环境

这里由于我没有在index.html填写内容,所以会显示一个空白页面,不过也能证明可以正常访问了

部署IIS+PHP+SQL server环境

0x03 PHP配置

接下来配置PHP

我们先从官网下载相应的PHP版本,这里的版本一定要注意,因为之后配置PHP与SQL server连接的话,是对版本要求特别严格的,最好都注意一下。

然后去PHP的官网下载对应的PHP

https://www.php.net/downloads.php

这里我用的是PHP7.2

部署IIS+PHP+SQL server环境

在下载这里大家也都注意一下,我简单说一下

上面两个为x64版本的,下面为x86的,第一个是非线程安全的,第二个是线程安全的

部署IIS+PHP+SQL server环境

这里我选择64位非线程安全的ZIP文件,在下载后解压到相应文件夹即可

这里大家可能会注意到前面的VC15的字样,这个是要求有对应的VC运行库的,这个问题自行解决。

在下载完成之后将文件夹放到我们所需要的目录下即可

部署IIS+PHP+SQL server环境

这里需要注意一下,安装好的PHP文件夹是不存在php.ini文件的,它有生产环境和开发环境两种。

部署IIS+PHP+SQL server环境

我们需要将其中的一个改名为php.ini才可以

0x04 配置IIS支持PHP

在php.ini中找到下列内容并更改

找到 extension_dir = "./" ,更改其中的路径为自己PHP所在位置的ext文件夹,并去掉文件开头的注释

部署IIS+PHP+SQL server环境

找到 cgi.force_redirect = 1 ,将1更改为0,并去掉注释

部署IIS+PHP+SQL server环境

找到 cgi.fix_pathinfo=1 ,去掉注释

部署IIS+PHP+SQL server环境

找到 fastcgi.impersonate = 1 ,去掉注释

部署IIS+PHP+SQL server环境

接下来去IIS添加模块映射

部署IIS+PHP+SQL server环境

部署IIS+PHP+SQL server环境

然后添加如下内容

部署IIS+PHP+SQL server环境

紧接着进入网站目录写入phpinfo文件,查看是否成功

这里如果出现了如下的情况,可能就是由于没有安装对应的运行库而造成的

部署IIS+PHP+SQL server环境

如果没有问题,将会出现如下的界面

部署IIS+PHP+SQL server环境

0x05 PHP连接SQL server

我们先去下载SQL server扩展

Microsoft Drivers for PHP for SQL Server
https://docs.microsoft.com/zh-cn/sql/connect/php/download-drivers-php-sql-server?view=sql-server-2017

根据系统要求,我们去下载5.6版本的扩展文件,具体系统要求可以在下面这个网址中查看

https://docs.microsoft.com/zh-cn/sql/connect/php/system-requirements-for-the-php-sql-driver?view=sql-server-2017

下载完成之后直接将文件放到我们的ext目录下

部署IIS+PHP+SQL server环境

完成后,会增加下列的扩展文件

部署IIS+PHP+SQL server环境

接着,我们需要去php.ini中添加所要加载的扩展

我们安装的是PHP7.2的64位非线程安全版本,所以这里需要添加如下的内容

extension=php_pdo_sqlsrv_72_nts_x64
extension=php_sqlsrv_72_nts_x64

部署IIS+PHP+SQL server环境

然后刷新phpinfo页面,查看是否成功

部署IIS+PHP+SQL server环境

最后,我们来安装一下ODBC驱动

Microsoft® ODBC Driver 13.1 for SQL Server
https://www.microsoft.com/en-us/download/details.aspx?id=53339

选择对应的版本安装即可

部署IIS+PHP+SQL server环境

部署IIS+PHP+SQL server环境

到这里为止,我们就完成了整个的部署

最后再进行一次测试

部署IIS+PHP+SQL server环境

部署IIS+PHP+SQL server环境

已经成功查询到结果

文章首发公众号:无心的梦呓(wuxinmengyi)

这是一个记录红队学习、信安笔记,个人成长的公众号

扫码关注即可

部署IIS+PHP+SQL server环境

点赞
收藏
评论区
推荐文章
Wesley13 Wesley13
3年前
java环境变量的配置
  刚开始学java时,遇到的第一个坑必定是java环境变量的配置,我整理了一下,将如何配置环境变量分享给大家。  为什么要配环境变量?  java程序在运行的时候,本质上是通过命令行来运行的,我们编写的java程序,首先被编译为class文件,然后将此文件放在java虚拟机中去执行。怎样编译,怎样执行,jdk已经为我们写好了(实际上就是javac
Stella981 Stella981
3年前
Apache2.4 性能优化
前几天买了阿里云主机后,配置了基本的web环境,apache性能没有做优化;导致今天在公布opms(https://www.oschina.net/action/GoToLink?urlhttp%3A%2F%2Fopms.demo.milu365.cn%2F)系统的时候,访问太慢,本身的云主机配置是低配,自己玩的。具体环境配置请看《再谈centOS7
Stella981 Stella981
3年前
Node.js 和 Apache 共用 80 端口
在CentOS上使用Apache的Proxymode使Node.js和Apache共用80端口最近用Node.js开发一个微信公共平台接口,由于微信公众平台接口配置目前仅支持默认的80端口,而我的C
Stella981 Stella981
3年前
SpringBoot集成mybatis以及自动化测试代码实现
Mybatis和logback的应用配置1、在module的pom.xml文件中,加载springboot和swagger、lombok、fastjson、mysql、mybatis包2、在resources中添加配置:配置文件有两种,一种是properties,另一种是yaml,这里使用yamlyaml配
Easter79 Easter79
3年前
Springboot2 集成Swagger2,解决配置完成后不显示的坑
为新项目做准备重新搭建环境,决定使用Springboot2mybatis环境,使用shiro做权限管理,并搭配pagehelper,generator等。在配置Swagger2的时候出现访问时界面空白的坑,刚开始以为是配置的插件过多导致的不兼容,重新配置了其他环境,但问题依然存在,后来查找资料解决了问题。现在此作记录。目前使用Springboot版本为 
Wesley13 Wesley13
3年前
KAFKA官方教程笔记
 因为kafka配置较多,所以单独写一篇博客来记录。       1,broker配置   主要的配置项有三个broker.id集群内唯一log.dir数据目录zookeeper.connectzookeeper连接地址Topiclevelconfigurationsanddefaultsa
Stella981 Stella981
3年前
Electron环境配置
最近好多Mac桌面程序都是套了个Electron的壳,之前玩过nodewebkit,所有想体验一下,但是在配置环境中遇到了一些问题,主要是Npm的连接问题,还有Electron安装的问题,通过下面两步就可以安装,记录一下。1.npm配置淘宝源npmconfigsetregistryhttps://registry.npm.tao
Easter79 Easter79
3年前
SpringBoot集成mybatis以及自动化测试代码实现
Mybatis和logback的应用配置1、在module的pom.xml文件中,加载springboot和swagger、lombok、fastjson、mysql、mybatis包2、在resources中添加配置:配置文件有两种,一种是properties,另一种是yaml,这里使用yamlyaml配
Stella981 Stella981
3年前
Linux配置SSH免用户免密码登陆
1\.目的简化SSH登陆过程,实现从机器A登陆机器B只需要运行sshhostname即可,即不需要输入用户名和密码。2\.配置host配置host的作用是ssh登陆机器时用hostname代替IP,在机器很多的集群环境中hostname比IP容易记的多,编辑/etc/hosts文件,配
Stella981 Stella981
3年前
Spring Boot 2.4 MacPorts 安装 CLI
很多时候我们都不一定能够用到Spring命令行工具的。但是SpringBoot的官方手册中有些这方面的内容和介绍,因此我们也在这里对这部分的内容进行了一些说明。Spring工具被用来初始化Spring项目和一些其他的工作,但Spring是基于Java的,因此很多东西需要自己配置环境。其实自己配置环境比使用环境配
Java服务总在半夜挂,背后的真相竟然是... | 京东云技术团队
最近有用户反馈测试环境Java服务总在凌晨00:00左右挂掉,用户反馈Java服务没有定时任务,也没有流量突增的情况,Jvm配置也合理,莫名其妙就挂了