环境:
网络服务器:Debian8,带有 Apache、PHP、unixODBC、FreeTDS(当前版本是上周使用 apt-get 安装的)
数据服务器:Windows Server 2008,带有 MS SQL Server 2008
在网络浏览器中打开此文件:(变量已设置且正确)
<?php
$connect = odbc_connect($db_server,$db_user,$db_password);
var_dump($connect);
我得到:
警告:odbc_connect():SQL 错误:[unixODBC][FreeTDS][SQL Server]无法连接到数据源,/var/www/html/test/index.php 第 11 行 SQLConnect 中的 SQL 状态为 S1000 bool(false)
在命令行中运行相同的文件/代码会导致:
资源(4)类型(odbc 链接)
因为我读到这可能与 SElinux 有关,sestatus
所以我尝试在命令行中输入
bash:sestatus:未找到命令。
tsql/isql 也正在运行。
我必须在哪里进行调整才能允许 apache 连接到 MSSQL 服务器?
答案1
为了允许 apache 与 MSSQL 通信,您应该执行以下操作:
setsebool -P httpd_can_network_connect on
setsebool -P httpd_can_network_connect_db on
几秒钟后您将接通电话。