簡體   English   中英

連接到MS SQL 2000/2005的正確PHP配置是什么?

[英]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 ClientSQL 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.14 / PHP 5.2.12 / MS-SQL 2008集成

  • 下載適用於Windows Installer程序包2008的Apache 2.2.14 32位httpd DOT apache DOT org / download.cgi-> apache_2.2.14-win32-x86-no_ssl
  • 在安裝Apache時遵循默認設置
  • 停止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服務

  • 驗證Apache / PHP集成: http://localhost/phpinfo.php- >顯示“ PHP版本5.2.12”信息
  • 驗證是否已加載mssql模塊:c:\\ php \\ php -m

所有的作品都像魅力一樣……無需其他步驟。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM