mssql_connect():无法通过Apache连接到服务器


mssql_connect(): Unable to connect to server through Apache

我试图通过mssql_connection从Apache在CentOS连接到MSSQL服务器。脚本如下:

<?php
$link = mssql_connect('10.10.10.10', 'XXXXXXX', 'YYYYYYYYY');
if (!$link || !mssql_select_db('Utilities', $link)) {
    echo mssql_get_last_message();
}

如果我通过命令行运行这个脚本,我将获得连接。但当我通过Apache将其作为页面访问时,得到错误

Warning: mssql_connect(): Unable to connect to server: 10.10.10.10 in /var/www/html/pruebas/pruebas/sql.php on line 4

一开始我认为问题是,作为一个代理背后的服务器,但即使当我不配置我的帐户使用代理,我仍然可以通过命令行连接,但不通过apache。

很可能是由于SELinux在默认情况下阻止Apache(以及所有Apache模块)进行远程连接。

查看

$ getsebool -a | grep httpd_can_network_connect
httpd_can_network_connect --> on
httpd_can_network_connect_db --> on

,如果它们没有打开,执行

$ setsebool -P httpd_can_network_connect 1
$ setsebool -P httpd_can_network_connect_db 1

如果不是,请检查是否安装了以

开头的php-mssql。
yum install php-mssql