最近一直在配环境,在配 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,所以这里需要增加一下 CGI 模块
然后等待安装即可
在安装好之后我们先配置一下 IIS,让其生效,并测试一下能否正常工作,这里按照自己的配置去设置
设置好之后,我们自己创建一个 index.html 进行一次测试
这个时候可能出现这个情况
这是由于文件夹权限的问题,我们需要对文件夹进行授权,添加 IUSR
用户权限
然后重启服务即可正常访问
这里由于我没有在 index.html 填写内容,所以会显示一个空白页面,不过也能证明可以正常访问了
0x03 PHP 配置
接下来配置 PHP
我们先从官网下载相应的 PHP 版本,这里的版本一定要注意,因为之后配置 PHP 与 SQL server 连接的话,是对版本要求特别严格的,最好都注意一下。
然后去 PHP 的官网下载对应的 PHP
https://www.php.net/downloads.php
这里我用的是 PHP7.2
在下载这里大家也都注意一下,我简单说一下
上面两个为 x64 版本的,下面为 x86 的,第一个是非线程安全的,第二个是线程安全的
这里我选择 64 位非线程安全的 ZIP 文件,在下载后解压到相应文件夹即可
这里大家可能会注意到前面的 VC15 的字样,这个是要求有对应的 VC 运行库的,这个问题自行解决。
在下载完成之后将文件夹放到我们所需要的目录下即可
这里需要注意一下,安装好的 PHP 文件夹是不存在 php.ini 文件的,它有生产环境和开发环境两种。
我们需要将其中的一个改名为 php.ini 才可以
0x04 配置 IIS 支持 PHP
在 php.ini 中找到下列内容并更改
找到 extension_dir = "./"
,更改其中的路径为自己 PHP 所在位置的 ext 文件夹,并去掉文件开头的注释
找到 cgi.force_redirect = 1
,将 1 更改为 0,并去掉注释
找到 cgi.fix_pathinfo=1
,去掉注释
找到 fastcgi.impersonate = 1,去掉注释
接下来去 IIS 添加模块映射
然后添加如下内容
紧接着进入网站目录写入 phpinfo 文件,查看是否成功
这里如果出现了如下的情况,可能就是由于没有安装对应的运行库而造成的
如果没有问题,将会出现如下的界面
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 目录下
完成后,会增加下列的扩展文件
接着,我们需要去 php.ini 中添加所要加载的扩展
我们安装的是 PHP7.2 的 64 位非线程安全版本,所以这里需要添加如下的内容
extension=php_pdo_sqlsrv_72_nts_x64
extension=php_sqlsrv_72_nts_x64
然后刷新 phpinfo 页面,查看是否成功
最后,我们来安装一下 ODBC 驱动
Microsoft® ODBC Driver 13.1 for SQL Server
https://www.microsoft.com/en-us/download/details.aspx?id=53339
选择对应的版本安装即可
到这里为止,我们就完成了整个的部署
最后再进行一次测试
已经成功查询到结果
文章首发公众号:无心的梦呓(wuxinmengyi)
这是一个记录红队学习、信安笔记,个人成长的公众号
扫码关注即可