現行システムをCentOS5.3からCentOS6.4に変更することにした。
CentOS6.4のサーバを構築し、そこにWordPressの引越しをしたのだが、ブラウザでURLにアクセスすると『データベース接続確立エラー』と表示されてしまった。
インターネットで検索するとwp-config.phpの内容を確認する方法ばかりが出てきたが、今回はwp-config.phpの内容に間違いはなかった。
原因は意外なところにあったのだ。
案外盲点になりがちなので備忘録として書いておこうと思う。
WordPress引越しの概要とエラー内容
DBの引越しは、CentOS5.3のMySQLをMasterとし、CentOS6.4のMySQLをSlaveとしてReplicationで同期を取り、CentOS5.3のMySQLを停止してCentOS6.4のMySQLを正規のDBとした。
WordPressは、/var/www/html/wordpressをごっそりCentOS6.4の新サーバにコピーした。
CentOS6.4の新サーバでhttpdを起動し、http://junrei.dip.jp/wordpressにアクセスしたところ『データベース接続確立エラー』と表示された。
図1:データベース接続確立エラー
また、管理画面(ダッシュボード)に接続すると以下のエラー画面が表示された。
図2:データベース接続確立エラー(管理画面)
『これは wp-config.php ファイルのユーザー名とパスワードが間違っているか、データベースサーバーに接続できないかのどちらかを意味します。』とあるが、そんなことはなかった。
また、『ホストのデータベースサーバーがダウンしているのかもしれません。』とあるが、こちらもそんなことはなかった。
原因と対策
CentOS6.4をデフォルトインストールすると最小インストール(Minimal)となり、SELinuxとiptablesが自動的に有効となっている。
firstboot時も特に設定を聞いてこないため見落としがちだ。
iptablesについては、サーバ構築時のハードニングで気が付いたのだが、SELinuxについては見落としていた。
このSELinuxを無効にしたら正常に接続できるようになった。
SELinuxの無効化
SELinuxの無効化は、/etc/selinux/configのSELINUX=enforcingをSELINUX=disabledに変更し、サーバをリブートすればいい。
|
Categories: WordPress