Apache-2.2

MSSQL PHP 無法通過 apache 的帳戶連接

  • January 8, 2014

我現在為此奮鬥了一天,希望有人已經遇到過這個問題並可以幫助我:

我有一個 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 帳戶缺少的權限,但是哪個?

提前感謝您的幫助!

如果您在啟用 SELinux 的情況下執行(並且應該),您將需要允許 apache 與數據庫通信,這可以通過以下方式完成:

setsebool -P httpd_can_network_connect on
setsebool -P httpd_can_network_connect_db on

這些命令將需要幾秒鐘才能執行,所以如果它們沒有立即返回,請不要擔心。

引用自:https://serverfault.com/questions/565882