Fedora のノート上で動いている Apache から、PHP の mysqli で外部データベースサーバに接続しようとしたところ、

Uncaught mysqli_sql_exception: Permission denied

で弾かれるという現象に悩まされてきました。原因は(いつもの)SELinux 絡みで、Apache から直接外部接続することが禁止されているためでした。

setsebool -P httpd_can_network_connect_db 1

で許可を与えると動作しました。

  1. [root@delphinus php-fpm]# getsebool -a | grep httpd | grep connect
  2. httpd_can_connect_ftp --> off
  3. httpd_can_connect_ldap --> off
  4. httpd_can_connect_mythtv --> off
  5. httpd_can_connect_zabbix --> off
  6. httpd_can_network_connect --> off
  7. httpd_can_network_connect_cobbler --> off
  8. httpd_can_network_connect_db --> off
  9. [root@delphinus php-fpm]# setsebool -P httpd_can_network_connect_db 1
  10. [root@delphinus php-fpm]# getsebool -a | grep httpd | grep connect
  11. httpd_can_connect_ftp --> off
  12. httpd_can_connect_ldap --> off
  13. httpd_can_connect_mythtv --> off
  14. httpd_can_connect_zabbix --> off
  15. httpd_can_network_connect --> off
  16. httpd_can_network_connect_cobbler --> off
  17. httpd_can_network_connect_db --> on
[root@delphinus php-fpm]# getsebool -a | grep httpd | grep connect
httpd_can_connect_ftp --> off
httpd_can_connect_ldap --> off
httpd_can_connect_mythtv --> off
httpd_can_connect_zabbix --> off
httpd_can_network_connect --> off
httpd_can_network_connect_cobbler --> off
httpd_can_network_connect_db --> off

[root@delphinus php-fpm]# setsebool -P httpd_can_network_connect_db 1

[root@delphinus php-fpm]# getsebool -a | grep httpd | grep connect
httpd_can_connect_ftp --> off
httpd_can_connect_ldap --> off
httpd_can_connect_mythtv --> off
httpd_can_connect_zabbix --> off
httpd_can_network_connect --> off
httpd_can_network_connect_cobbler --> off
httpd_can_network_connect_db --> on

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です