无法使用PHP 7.0.7在Centos 7.2上加载SQLSRV驱动程序
我刚刚在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
您是否安装了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。