我已经与此斗争了一天,希望有人已经遇到过这个问题并能帮助我:
我有一台 CentOs 服务器
[root@XXXXX ~]# cat /etc/redhat-release
CentOS release 6.5 (Final)
这将是启用了 PHP 的网络服务器(已安装,还有 php-mssql 包)
[root@XXXXX ~]# php -i
phpinfo()
PHP Version => 5.3.3
...
Configuration
...
mssql
MSSQL Support => enabled
...
Library version => FreeTDS
有一个 index.php
$cn = mssql_connect($dbserver,$dbusername,$dbpassword) or die("Connection Error");
$dbserver, $dbusername, $dbpassword
再三检查。
如果我从浏览器调用它,它会引发连接错误,但如果我以 root 身份在终端中编译它,它就可以工作:
[root@XXXXX ~]# php /var/www/html/index.php
<h1> SQL CONNECTION TEST: </h1>
<h2> Result </h2>
Connection OK!Query OK!
我猜是 apache 帐户缺少权限,但是是哪一个呢?
提前感谢您的帮助!
答案1
如果您在启用 SELinux 的情况下运行(您应该这样做),您将需要允许 apache 与数据库通信,这可以通过以下方式完成:
setsebool -P httpd_can_network_connect on
setsebool -P httpd_can_network_connect_db on
这些命令将需要几秒钟才能运行,所以如果它们没有立即返回,请不要担心。