Sql server 2008 PDO DBLIB访问SQL Server 2008和2012
经过大量的阅读和搜索,我能够让PDO DBLIB在Centos 6.4 32位中工作(有很多关于64位而不是32位的文档)。令我惊讶的是,以下代码来自shell命令($PHP test.PHP) 我缺少什么?在我的例子中,SELinux(我使用的是CentOS)在从linux框中的Apache web服务器连接到windows框中的sql服务器时阻塞了连接。要允许连接,您有两个选项:Sql server 2008 PDO DBLIB访问SQL Server 2008和2012,sql-server-2008,pdo,Sql Server 2008,Pdo,经过大量的阅读和搜索,我能够让PDO DBLIB在Centos 6.4 32位中工作(有很多关于64位而不是32位的文档)。令我惊讶的是,以下代码来自shell命令($PHP test.PHP) 我缺少什么?在我的例子中,SELinux(我使用的是CentOS)在从linux框中的Apache web服务器连接到windows框中的sql服务器时阻塞了连接。要允许连接,您有两个选项: 禁用SELinux 作为root或sudo运行以下两个命令: setsebool-p httpd_can_网络_
很好,如果已关闭,请运行此答案中的第一个命令。PHP中的cli和sapi模式可以具有完全不同的配置。比较
php-i
(cli)和phpinfo()
(sapi)设置,看看是否有任何差异。是否有办法使两者相同?更改相应的.ini文件。php-i/phpinfo将告诉您正在使用什么(以及在哪里使用).ini文件。它们都从/etc/php.ini读取php.ini,php中的sapi模式可以有完全不同的配置。比较php-i
(cli)和phpinfo()
(sapi)设置,看看是否有任何差异。是否有办法使两者相同?更改相应的.ini文件。php-i/phpinfo将告诉您正在使用什么(以及在哪里使用).ini文件。这是SELinux第二次浪费我生命中的时间非常感谢这一次。这是SELinux第二次浪费我生命中的时间
<?php
try {
$conn = new PDO('dblib:host='.$host.':1433;dbname='.$db, $user, $pass);
$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
} catch(PDOException $e) {
echo 'ERROR: ' . $e->getMessage();
}
tsql -H 192.168.1.120 -p 1433 -U sa