線上環境 PHP (Apache + mod_php) 連接 MySQL 均報錯:
Could not connect: Can't connect to MySQL server on 'mysql.host' (13)
錯誤碼 13 = EACCES (Permission denied)。命令列 mysql -h ... 卻完全正常,防火牆、MySQL 授權、bind-address、skip-name-resolve 均已排查無誤。最終鎖定為 SELinux 限制 httpd 進程對外網絡連接。
# 查看 httpd 相關布爾值 getsebool -a | grep -i httpd # 關鍵項 httpd_can_network_connect --> off # 禁止 httpd 發起網絡連接 httpd_can_network_connect_db --> off # 禁止連接資料庫 (部分版本有此項)
# 永久生效 (-P 寫入磁碟策略) setsebool -P httpd_can_network_connect=1 # 若存在 db 專項 setsebool -P httpd_can_network_connect_db=1 # 驗證 getsebool httpd_can_network_connect # --> on
✅ 精準放行、持久化、無需重啟服務/OS,生產首選。
sed -i 's/^SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config reboot
🛑 徹底失去 MAC 強制存取控制保護,僅限極端兼容性場景或非核心測試機。