我需要安裝一個 PHP 應用程式的演示,該應用程式使用PHP 的 SQL Server 驅動程式。伺服器是執行 Windows 2000 Server SP4 的舊電腦。我已經安裝了整個堆棧,沒有任何問題:
- 阿帕契2.2.14
- PHP 5.3.1
- SQL Server 2005 快速版
- SQL Server Management Studio Express
但有一個組件沒有如預期運作:SQL Server 本機用戶端。當我呼叫 sqlsrv_connect() 時,我立即收到一條錯誤訊息。我發現了四個不同的版本,但沒有一個有效:
如果我不安裝或安裝2005版本:
- SQLSTATE:IMSSP
- 代碼:-49
- 訊息:適用於 PHP 的 SQL Server 驅動程式需要 SQL Server 2008 本機用戶端 ODBC 驅動程式(SP1 或更高版本)才能與 SQL Server 通訊。目前尚未安裝該 ODBC 驅動程式。存取以下 URL 下載適用於 x86 的 SQL Server 2008 Native Client ODBC 驅動程式:http://go.microsoft.com/fwlink/?LinkId=163712
如果我安裝2008版本:
- SQL狀態:IM003
- 代碼:160
- 訊息:由於系統錯誤 127 (SQL Server Native Client 10.0),無法載入指定的驅動程式。
這適用於 PHP 的 SQL Server 驅動程式的系統需求1.1 包含 Windows 2000 Service Pack 4。SQL Server 2008 Native Client 的系統需求提到 Windows Server 2003 Service Pack 2 或更新版本。
任何想法?
答案1
我認為 Windows 2000 不支援 SQL 2008 Native Client。
答案2
我從 Serban Iliescu 那裡得到了更多信息官方論壇:
經過進一步調查,我發現 SQL Server Native Client 2008(又名 SNAC 10)無法在 Windows 2000 上加載,因為作業系統不滿足某些 dll 依賴項。目前針對 SNAC 10 記錄了一個缺陷,可透過正常降級來解決此問題,但該缺陷尚未解決。同時,您可以嘗試連結到 SNAC 9 (SQL Server Native Client 2005) 的舊版 PHP 驅動程式(即版本 1.0),SNAC 9 應該可以在 Windows 9 上執行。
總結:
- PHP 1.1 的 SQL Server 驅動程式需要 SQL Server Native Client 2008
- SQL Server Native Client 2008 有一個已知錯誤,無法在 Windows 2000 下載入
- SQL Server Native Client 2005 在 Windows 2000 下運作良好
- SQL Server Driver for PHP 1.0 只需要 SQL Server Native Client 2005
我安裝了舊版的 PHP 驅動程式和 2005 版本的 Native Client。我還必須將 PHP 從 5.3 降級到 5.2。
我的應用程式似乎使用舊版的 PHP 驅動程式。所以示範終於啟動並運行了。