2015-02-10 68 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