首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 網頁程式設計 >> PHP 程式設計 >> PHP 相關知識

Fedora Core 5 下 PHP 無法連接遠程 MySQL?關閉 SELinux 解決連接阻擋

     編輯:PHP 相關知識

現象

PHP 腳本在本地正常連接 MySQL,但連接遠程 MySQL 服務器時拋出 Permission denied 或 Can't connect to MySQL server,防火牆已放行 3306 端口。

根因:SELinux 阻擋 Apache 主動發起網絡連接

Fedora Core 5 預設啟用 SELinux Enforcing 模式,策略禁止 httpd_t 域進程(Apache/PHP)發起 TCP 連接到非標準端口或遠程主機。

解決方案:修改 SELinux 模式

  1. 編輯配置文件:vi /etc/selinux/config
  2. 將 SELINUX=enforcing 改為 SELINUX=disabled(或 permissive 僅記錄不阻擋)。
  3. 重啟系統生效: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。
  • 若必須關閉,請確保iptables/firewalld 已正確配置入站/出站規則。
  • CentOS/RHEL 7+ 同樣適用上述布爾值。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved