Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/sql-server-2008/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server 2008 PDO DBLIB访问SQL Server 2008和2012_Sql Server 2008_Pdo - Fatal编程技术网

Sql server 2008 PDO DBLIB访问SQL Server 2008和2012

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_网络_

经过大量的阅读和搜索,我能够让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_网络_连接1

    setsebool-p httpd\u can\u网络\u连接\u db 1

    要检查SELinux是否阻止网络和数据库连接,请运行以下命令:

    getsebool-一个| grep httpd_can_network_connect

    如果结果为:

    httpd_可以_网络_连接-->打开

    httpd_可以_网络_连接_数据库-->打开

    很好,如果已关闭,请运行此答案中的第一个命令。

    在我的示例中,SELinux(我使用的是CentOS)在从linux框中的Apache web server连接到windows框中的sql server时阻塞了连接。要允许连接,您有两个选项:

  • 禁用SELinux

  • 作为root或sudo运行以下两个命令:

  • setsebool-p httpd_can_网络_连接1

    setsebool-p httpd\u can\u网络\u连接\u db 1

    要检查SELinux是否阻止网络和数据库连接,请运行以下命令:

    getsebool-一个| grep httpd_can_network_connect

    如果结果为:

    httpd_可以_网络_连接-->打开

    httpd_可以_网络_连接_数据库-->打开


    很好,如果已关闭,请运行此答案中的第一个命令。

    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