Kev*_*Kev 0 php windows sql-server iis-6
我有许多使用FastCGI在Windows 2003/IIS6上运行PHP 5.2.6(非线程安全版本)的服务器.
我有一些问题连接到MS SQL 2000/2005(MySQL连接工作正常,ASP/ASP.NET脚本也可以成功连接到MS SQL).一种解决方案建议将SQL客户端工具ntwdblib.dll文件复制到PHP扩展文件夹,或者在Web服务器上安装所有SQL客户端工具(我不愿意这样做).
建议的另一个解决方案是使用PHP的Microsoft SQL Server 2005驱动程序.这对于编写绿地应用程序看起来很好,但对于像phpBBS或WordPress这样的应用程序,这似乎不起作用.
例如,以下脚本:
<?php
$host = "mssqlhost";
$user = "phpbb2";
$password = "phpbb2";
$connect_sql_server = mssql_connect($host, $user, $password);
?>
Run Code Online (Sandbox Code Playgroud)
失败:
PHP警告:mssql_connect()[function.mssql-connect]:无法连接到服务器:第6行的E:\ AppsDev.NET_UK_Minds\phpSqlNC\www\test.php中的mssqlhost
目标是允许PHP脚本连接到在不同服务器上运行的SQL 2000和SQL 2005.我还要补充说,目前升级到更高版本的PHP不是一种选择.
在Windows 2003/IIS6上配置PHP以连接到SQL 2000/2005的正确方法是什么?
在尝试了各种"解决方案"之后,事实证明只需更换ntwdblib.dllPHP可执行文件夹中的文件就可以解决问题.
没有必要安装任何:SQL Native Client,SQL Client Tools或PHP的Microsoft SQL Server 2005驱动程序,正如许多死胡同所暗示的那样.
所需要做的就是确保将ntwdblib.dll2000.80.2039.0版本放入该c:\php文件夹(或者您安装/未压缩的PHP的任何位置),然后重置IIS.PHP文档建议复制ntwdblib.dll到%SYSTEMROOT%\ System32这不起作用,他们还建议这只支持命名管道,这也是错误的.
我没有试过看是否有更高版本的ntwdblib.dll作品,但2000.80.2039.0对我有用.