我试图通过CentOS中Apache的mssql_connection连接到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连接。
答案 0 :(得分:2)
很可能是因为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