Apache-2.2
MSSQL PHP 無法通過 apache 的帳戶連接
我現在為此奮鬥了一天,希望有人已經遇到過這個問題並可以幫助我:
我有一個 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
這些命令將需要幾秒鐘才能執行,所以如果它們沒有立即返回,請不要擔心。