我剛剛在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