Windows2008系统IIS+PHP5.2+SqlServer配置

Windows2008系统IIS+PHP5.2+SqlServer配置

更新时间:2017-06-07 13:26:11

问题现象

阿里云ECS Windows server2008系统(官方公共镜像)安装PHP5.2后,用phpinfo函数测试发现不支持SqlServer。但是实际查看php.ini已经将extension=php_mssql.dll前的分号注释掉,而访问测试代码时提示,另外PHP错误日志有如下提示:

[18-Dec-2015 20:42:28] PHP Fatal error:  Call to undefined function mssql_connect() in C:\inetpub\wwwroot\php_mssql.php on line 8

解决方案

1.这里安装PHP环境的方法是通过微软的web安装平台来操作的。具体可以参考Windows Server 2012 IIS+PHP环境配置,在安装PHP manager及之前的过程没有太大差别。

2.安装完毕之后,下载PHP5.2.17 for Win32安装包(其它版本未测试),下载并解压到自己需要的位置。这里放到了C盘根目录下,路径C:\PHP。

3.打开IIS 管理控制台,找到服务器根节点,点击之后打开下图界面,可以看到PHP Manager。

blob.png

4.打开PHP Manager,选择register new php version,打开如下窗口。

blob.png

5.在弹出的浏览窗口,选择C:\php\php-cgi.exe ,到这里PHP5.2已经安装好了,微软会自动找到PHP配置文件并自动做一些修改,打开PHP Manager可以看到如下界面。

blob.png

6.点击 Enable or disable an extension 可以打开下面界面,请确保 php_mssql.dllEnable,如果没有启用,到下面Disable 列表中找到并启用。

blob.png

7.此时如果探针测试支持mssql ,环境配置就结束了,但是这里测试提示不支持mssql,且使用测试代码连接有错误。

测试代码如下(数据库地址和用户名密码请修改成自己数据库的信息):

 

// Server in the this format:\or 

//,when using a non default port number

$server = 'rds2l1b5133w8wu11111o.sqlserver.rds.aliyuncs.com,3433';

 

// Connect to MSSQL

$link = mssql_connect($server, 'molan', 'Aliyuniloveyou');

 

if (!$link) {

    die('Something went wrong while connecting to MSSQL');

}

else

  { echo "success";

}

?>

结果浏览器返回500错误。在PHP Manger中有Error log,点击之后就可以获取到错误信息:

[18-Dec-2015 20:40:07] PHP Fatal error:  Call to undefined function mssql_connect() in C:\inetpub\wwwroot\php_mssql.php on line 8

8.打开C:\php\php.exe发现提示MSVCR71.dll文件丢失。到网络上下载此文件后放到c:\windows\目录下。

blob.png

然后再次打开C:\php\php.exe,没有任何提示。

此时再去测试PHP连接SqlServer,页面提示:

[18-Dec-2015 20:51:42] PHP Warning:  mssql_connect() [function.mssql-connect]: Unable to connect to server:  rds2l1b5133w8wu1231o.sqlserver.rds.aliyuncs.com,3433 in C:\inetpub\wwwroot\php_mssql.php on line 8

到这里就表示已经支持了,不能连接是因为数据库和WEB不在同一个节点导致连接不稳定。

此时,再phpinfo页面也可以看到mssql模块,至此环境配置结束。

blob.png

 

如果问题还未能解决,您可以到阿里云社区进行免费咨询或联系云市场商家寻求帮助。