2016-06-28 83 views
0

我剛剛在Centure 7.2中安裝了一個新的虛擬機。 在此服務器上我安裝使用yum install httpd無法使用PHP 7.0.7在Centos 7.2上加載SQLSRV驅動程序

的httpd之後,我使用下面的鏈接安裝PHP 7.0.7:https://webtatic.com/packages/php70/

PHP工作正常,在這一點沒有問題。

但後來我想連接到Azure SQL數據庫。在搜索stackoverflow的論壇後,我看到我需要一個PHP 7 SQLSRV驅動程序。

我從這個鏈接司機:https://github.com/Azure/msphpsql/tree/PHP-7.0-Linux/CentOS7

要加載我複製該文件到以下路徑驅動程序:/usr/lib64/php/modules/

並更新下面的行extension=/usr/lib64/php/modules/php_sqlsrv_7_ts.so

在php.ini我這樣做是因爲我不確定驅動程序是否在放入模塊文件夾時自動加載。它會自動加載嗎?

之後,我用下面的代碼創建了一個test.php文件。上述

error_reporting(E_ALL); 
ini_set('display_errors', 1); 

echo php_ini_loaded_file(); 
$connectionInfo = array("pwd" => "PASSWORD", $serverName = "tcp:SERVER_URL:1443"); 
$conn = sqlsrv_connect($serverName, $connectionInfo); 

if($conn) { 
    echo "Connection established.<br />"; } 
else { 
    echo "Connection could not be established.<br />"; 
    die(print_r(sqlsrv_errors(), true)); 
} 

的代碼給我下面的錯誤:

/etc/php.ini 
Fatal error: Uncaught Error: Call to undefined function sqlsrv_connect() in /var/www/website/test.php:9 Stack trace: #0 {main} thrown in /var/www/website/test.php on line 9 

是否PHP SQLSRV驅動程序文件需要在的phpinfo寫下來?因爲我沒有看到它。

有人可以幫我嗎?如果您需要更多信息,請詢問我將提供。

在此先感謝。

更新1:

當我運行的服務器我得到下面的錯誤上php -v

PHP Warning: PHP Startup: Unable to load dynamic library '/usr/lib64/php/modules/php_sqlsrv_7_ts.so' - /usr/lib64/php/modules/php_sqlsrv_7_ts.so: undefined symbol: SQLGetDiagField in Unknown on line 0 PHP 7.0.7 (cli) (built: May 28 2016 07:53:22) (NTS) Copyright (c) 1997-2016 The PHP Group Zend Engine v3.0.0, Copyright (c) 1998-2016 Zend Technologies 
    with Zend OPcache v7.0.6-dev, Copyright (c) 1999-2016, by Zend Technologies 

回答

0

您是否安裝了unixODBC和Microsoft ODBC驅動程序?你應該在之前複製PHP擴展。

要可以確定地告訴你已經正確安裝了unixODBC驅動程序管理器,您可以執行:

odbcinst -j

,並保證第二個,你可以執行:

odbcinst -q -d -n

並查找「的ODBC驅動程序13 SQL Server「。

這裏是一個廣泛的指南,所有的necesaries步驟的連接從PHP SQL數據庫 - >MS PHP SQL Linux Tutorial

PD:NO,PHP擴展程序不會自動加載,你必須從以「召喚」他們extension = extension.so形式的php.ini。

相關問題