在apache

时间:2017-02-07 10:47:09

标签: php sql-server apache pdo

PHP版本5.4, Apache版本2.4, CentOS 7.3

尝试使用以下php代码连接到mssql db,当我从命令行运行它时,该代码工作正常。但是,当我将代码置于apache(在同一服务器上)并通过浏览器调用时,我会收到超时错误。

  

错误:连接失败:SQLSTATE [HYT00] SQLConnect:0   [unixODBC] [Microsoft] [SQL Server的ODBC驱动程序13]登录超时   过期+

set_time_limit(30);
echo "+ Connection\n";
try {
    $pdo = new PDO("odbc:sqlsrv_msodbc", "username", "password");
    } catch (PDOException $e) {
    echo 'Connection failed: ' . $e->getMessage();
    }

1 个答案:

答案 0 :(得分:2)

我遇到了同样的问题。我在流浪汉中使用CentOS 7.3并通过禁用SELinux来解决它。

如果你在开发环境中并且禁用SELinux很酷,你可以通过以下方式实现:

SELINUX=disabled

union __attribute__ ((packed)) struct_union
{
    struct my_packed_struct data;
    int pad[(sizeof(my_packed_struct)+3)/sizeof(int)];
} struct_union;

我在serverfault发现了这个:https://serverfault.com/questions/240015/how-do-i-allow-mysql-connections-through-selinux