Php 无法识别 PDO_DBLIB 驱动程序

Php does not recognize PDO_DBLIB driver

所以我正在编写一些代码,以便我可以访问 Microsft SQL 服务器。我正在编写的代码是在 Centos 7 机器上。我已经安装了 php mysql 和 mssql 软件包,但是当我 运行

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

我意识到这需要在php.ini中配置,但是输出的驱动程序在php.ini中被注释掉了,所以我很困惑。

有人可以指导我正确的方向吗?

编辑:我在 here 中关注了@jap1968 的回答,但我卡在了现在的位置。

我找到了为什么这不起作用。我使用 xampp 安装了我的 lamp 堆栈。所以我很难获得额外的模块。

为了解决这个问题,我重新安装了 apache 服务器 (httpd)、mysql (MariaDB) 和 php,然后按照@jap1968 在 [=11 中的回答,我设法添加了我需要的驱动程序=].

安装驱动程序后,CentOS 默认仅使用控制台启用 MS SQL 服务器连接。因此,当我使用浏览器访问我的脚本时,我收到一条错误消息,指出服务器不可用。

要通过您需要使用的浏览器进行访问(我 运行 这具有 root 权限,也可能需要几秒钟):

# setsebool -P httpd_can_network_connect=1