前書き(独り言なので読み飛ばしても構いません
ESXiホストの名前変更をしてWeb Serverとローカルネットワークに接続するVMにMariaDB10.5.9をインストールしてWordpressのデータベースを作成しました。
WebサーバーからWordpressインストール画面でwp-config.phpの設定から先のステップに進もうとしたところ「データベース接続確立エラー」で悶絶した経緯をメモします。
データベース名 | wordpress |
ユーザー名 | wordpress |
パスワード | パスワード |
データベースのホスト名 | 172.16.1.100 |
ファイアウォールがデータベースのポートを許可するように設定してみましたが接続できませんでした。
centos7 mysql 外部接続を許可しよう – Qiita
# firewall-cmd --add-service=mysql --zone=public --permanent
# firewall-cmd --reload
エラーの原因を特定するためにwp-config-sample.php でデバッグオプションを有効にする
define( 'WP_DEBUG', true );
デバッグを有効に設定するとインストール画面にヒントらしきエラーメッセージが・・・。
mysqli::mysqli(): (HY000/2002): Permission denied
PHP – MySQLサーバへの接続ができません。mysqli::mysqli(): (HY000/2002): Permission denied|teratail
FAQにある通り、SELinux をenforce 0 にしたところインストール画面に進みました。
詳しく調べてみるとCentOSのデフォルトのポリシー httpd_can_network_connect が無効なためにおこるエラーとのことでした。
以下のコマンドsetsebool -Pオプションで永続的に有効にすると幸せになれました。
$ sudo setsebool -P httpd_can_network_connect 1
困ったときはデバッグログ、有効にしよう!(直球