Fedora のノート上で動いている Apache から、PHP の mysqli で外部データベースサーバに接続しようとしたところ、
Uncaught mysqli_sql_exception: Permission denied
で弾かれるという現象に悩まされてきました。原因は(いつもの)SELinux 絡みで、Apache から直接外部接続することが禁止されているためでした。
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 --> 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