[英]What is the correct PHP configuration to connect to MS SQL 2000/2005?
我有許多使用FastCGI在Windows 2003 / IIS6上運行PHP 5.2.6(非線程安全版本)的服務器。
我在連接MS SQL 2000/2005時遇到了一些問題(MySQL連接正常,ASP / ASP.NET腳本也可以成功連接到MS SQL)。 一種解決方案建議將SQL客戶端工具ntwdblib.dll
文件復制到PHP擴展文件夾或在Web服務器上安裝所有SQL客戶端工具(我不願意這樣做)。
建議的另一種解決方案是使用Microsoft SQL Server 2005 PHP驅動程序 。 這對於編寫未開發的應用程序看起來不錯,但是對於諸如phpBBS或WordPress之類的應用程序,這似乎不起作用。
例如,以下腳本:
<?php
$host = "mssqlhost";
$user = "phpbb2";
$password = "phpbb2";
$connect_sql_server = mssql_connect($host, $user, $password);
?>
失敗:
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的正確方法是什么?
在嘗試了各種“解決方案”之后,事實證明,僅通過替換PHP可執行文件文件夾中的ntwdblib.dll
文件就可以解決問題。
不需要安裝以下任何一種: SQL Native Client , SQL Client Tools或適用於PHP的Microsoft SQL Server 2005驅動程序 ,因為有很多死角提示。
所有需要做的就是確保將ntwdblib.dll
版本2000.80.2039.0放入c:\\php
文件夾(或將PHP壓縮/安裝到的位置),然后重置IIS。 PHP文檔建議將ntwdblib.dll
復制到%SYSTEMROOT%\\ System32,這是行不通的,他們還建議這將僅支持命名管道,這也是錯誤的。
我沒有嘗試查看更高版本的ntwdblib.dll
有效,但是2000.80.2039.0對我有效。
並不是真正的答案,而是更多有用的信息...
最新的php 5.2.X附帶的ntwdblib.dll(2000.2.8.0)版本可與Apache和MSSQL(2008)完美配合。 我有2000.80.XX版本的DLL的副本,它比PHP隨附的版本新。 我不知道這是否會更好。
“ mssql_”函數未包含在官方的msft php mssql驅動程序中。 他們已將它們更改為其他命名約定。 (“ sqlsrv_”)您發布的鏈接是1.0版,但它們已經在1.1版上。 “ mssql_”函數要求存在ntwdblib.dll。
停止Apache 2.2服務
下載適用於Windows 2008 32位的PHP 5.2.12 Windows Zip軟件包; (PHP需要用作Apache模塊的VC6 Thread Safe版本)。
Windows DOT php DOT net / download /-> php-5.2.12-Win32-VC6-x86.zip-將存檔解壓縮到C:\\ PHP-驗證安裝:C:\\ PHP> php -v
-設置環境變量PHPRC = C:\\ PHP-將“ C:\\ PHP \\ php.ini-recommended”重命名為“ C:\\ PHP \\ php.ini”-編輯C:\\ PHP \\ php,ini文件:
modify: extension_dir = "C:\PHP\ext"
uncomment: extension=php_mssql.dll
將以下行添加到“ C:\\ Program Files \\ Apache Software Foundation \\ Apache2.2 \\ conf \\ httpd.conf”
PHPIniDir "C:/PHP/" LoadModule php5_module "C:/PHP/php5apache2_2.dll" AddHandler application/x-httpd-php .php
將以下行添加到“ C:\\ Program Files \\ Apache Software Foundation \\ Apache2.2 \\ conf \\ mime.types”
application/x-httpd-php php application/x-httpd-php-source phps
確保包含以下內容的phpinfo.php文件位於文件夾C:\\ Program Files \\ Apache Software Foundation \\ Apache2.2 \\ htdocs中
啟動Apache 2.2服務
所有的作品都像魅力一樣……無需其他步驟。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.