PHP 腳本在本地正常連接 MySQL,但連接遠程 MySQL 服務器時拋出 Permission denied 或 Can't connect to MySQL server,防火牆已放行 3306 端口。
Fedora Core 5 預設啟用 SELinux Enforcing 模式,策略禁止 httpd_t 域進程(Apache/PHP)發起 TCP 連接到非標準端口或遠程主機。
vi /etc/selinux/configSELINUX=enforcing 改為 SELINUX=disabled(或 permissive 僅記錄不阻擋)。reboot。# 允許 httpd 連接網絡
setsebool -P httpd_can_network_connect 1
# 允許 httpd 連接數據庫
setsebool -P httpd_can_network_connect_db 1
-P 參數使設置持久化重啟後生效。
getsebool httpd_can_network_connect
# 輸出: httpd_can_network_connect --> on
setsebool 精確放行,而非完全關閉 SELinux。