2015-02-10 61 views
4

所以我正在寫一些代碼,以便可以訪問Microsft SQL Server。我寫的代碼是在Centos 7機器上。我已經安裝了PHP的MySQL和mssql的包,但是當我運行Php不識別PDO_DBLIB驅動程序

echo "<pre>", print_r(PDO::getAvailableDrivers()), "</pre>"; 

我得到以下輸出:

Array 
(
    [0] => mysql 
    [1] => pgsql 
    [2] => sqlite 
) 

我已經重新啓動LAMPP,仍然得到了同樣的結果。

我也編輯了php.ini以包含extension=php_mssql.so,並重新啓動lampp,仍然得到相同的輸出。

當我運行PDO腳本:

try 
{ 
    $con = new PDO("dblib:host=".$db_addr.";dbname=".$db_name.";charset=utf8", '".$db_usr."', '".$db_pass."'); 
    $con->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); 
} 
catch(PDOException $e) 
{ 
    echo "ERROR: ". $e->getMessage(); 
    die(); 
} 

我總是得到:

ERROR: could not find driver 

我relalise,這需要在php.ini進行配置,但是輸出驅動器評論出php.ini,所以我很困惑。

有人能指導我在正確的方向嗎?

編輯:我跟着@ jap1968答案here,但我被困在我現在的位置。

+0

也許http://stackoverflow.com/questions/21315354/pdo -dblib-on-centos-6-x? – VolkerK 2015-02-10 12:08:47

+0

我遵循這個答案,並得到我在哪裏。我將編輯我的問題以包括此。 – Comum 2015-02-10 12:10:08

+0

'yum安裝php-mssql'是否拉取其他依賴關係?在'phpinfo()'的輸出中重新啓動http服務器後,你是否至少看到'mssql'擴展名? – VolkerK 2015-02-10 12:11:44

回答

0

我發現爲什麼這不起作用。我使用xampp安裝了燈管。所以我無法獲得額外的模塊。

修復它我重新安裝了一個Apache服務器(httpd),MySQL(MariaDB)和PHP,然後我設法添加我需要的驅動程序,在@ jap1968的答案here

安裝驅動程序之後CentOS默認只使用控制檯啓用MS SQL Server連接。所以當我使用瀏覽器訪問我的腳本時,我收到一條錯誤消息,說服務器不可用。

要必須通過你需要使用瀏覽器訪問(我跑這與root權限,也可能需要幾秒鐘):

# setsebool -P httpd_can_network_connect=1 
相關問題