先日、XFREEでWordPressのサイトを作成しました。
初期状態ではXFREEのドメインで設定されています。
xxxx.wp.xdomain.jpというやつです。
このドメインを独自のドメインにしようと、ドメインの追加とネームサーバーの設定(Aレコード認証)を行いました。
そして、独自ドメインにWordPressをインストールし管理画面を開こうとしたら、こんなエラーにぶち当たりました。
WordPress初心者にとってはちょっとした絶望です。
格闘の末、解決できたので原因と解決策を解説します。
- データベース接続確立エラーの原因と解決策
- WordPressで不具合の原因を調査する方法
データベース接続確立エラーの原因と解決策
wp-config.phpのMySQLのホスト名を「localhost」→「127.0.0.1」に変更しよう!
結論から言うと、wp-config.phpのMySQLのホスト名を「localhost」→「127.0.0.1」に変更すると、データベース接続確立エラーが解決できます。
初期状態では、赤枠のホスト名がlocalhostとなっています。
localhostは自分自身を表すホスト名です。
webアプリ上からMySQLに接続する場合、localhostでは接続できずエラーになることがあるみたいです。
webではTCP/IPと呼ばれる通信方法でMySQLと接続を行います。
TCP/IPはIPアドレスを使うため、自分自身を表すIPアドレス「127.0.0.1」に変更しましょう!
TCP/IPについて知りたい方は、TCP/IPとは |「分かりそう」で「分からない」でも「分かった」気になれるIT用語辞典を参照してみてくださいね!
誰でも理解できるように、わかりやすい説明をしてくれているので、入り口としてオススメです!
データベース接続確立エラーのソース修正手順
ここでは、上記でご紹介した解決策を実施する手順を解説します。
WordPressのエラーの修正には、FTPクライアントソフトとテキストエディタが必要です。
まだ、準備していない方はそれぞれダウンロードしてくださいね!
わたしはFTPクライアントソフトはFileZilla、テキストエディタとしてVisual Studio Codeを使用しています。
wp-config.phpの場所
※FilaZillaでのサーバー接続方法は今後別途記事を作成する予定です。
現時点ではお手数ですが、Google先生にお尋ねしてください>_<
接続すると、wp-config.phpはルートフォルダの直下にあります。
wp-config.phpを右クリックして、表示/編集を選択してください。
ファイルが開けない場合は、FileZillaの設定が別途必要です。
簡単に説明すると、
FileZilla → 設定 → ファイルの編集 → カスタムエディターを使用 → 参照 → 使用するエディタを選択 → OK
とエディタの設定することで、ファイルの表示/編集ができるようになります。
もっと詳しく知りたい方は丁寧に解説されている方のを参考にしてくださいませm(_ _)m
ホスト名の変更方法
続いて、ホスト名を変更しましょう。
ここではVisual Studio Codeで編集を行います。
ホスト名をlocalhost から 127.0.0.1に変えます。
ソースは以下です。
define( ‘DB_HOST’, ‘127.0.0.1‘ );
変更内容は以上になります。
実際に修正して試してみましょう!
WordPressで不具合(エラー)の原因を調べる方法
これ以降では、不具合の原因調査の方法を知りたい方に向けて、調査方法を解説します。
興味ある方は読んでみてください。
調査方法を知っておくと、エラーが発生した時に調査時間を短縮できるからオススメだよ^^
- wp-config.phpをテキストエディタで開く
- デバッグのログを吐き出すようにソースを変更し、保存する
- エラーの原因をログで確認する
- エラー箇所を調査する
まずはFTPクライアントソフトを使って、wp-config.phpを開きます。
wp-config.phpはルートパス直下にあります。
/wp-config.php
ほとんどのシステムは、エラーが発生した時に、原因調査ができるようにログと呼ばれるものを出力させます。
開発者は吐き出されたログを見て、エラーの原因を調べます。
WordPressもログ出力の設定を行うことで、ログを出力できるので、何かシステムでエラーが起きた際はログを確認しましょう!
さっそく修正していこう♪
変更箇所は2か所です。
1つ目は、85行目あたりの以下のソースです。
define( ‘WP_DEBUG’, false );
WP_DEBUGはデバッグモードの設定を行うもので、trueにするとエラーが発生した場合に、画面上にエラー内容が出力されます。
不具合の原因を探して、直すこと
ではWP_DEBUGをtrueに変更しましょう。
define( ‘WP_DEBUG’, true );
2つ目は、WP_DEBUGの下に次のソースを追加します。
1つ目の変更だけで、画面にログは出ますが、ファイルとして出力されません。
ここでの変更は、ログファイルに出力したい場合に行います。(システムはいつ不具合が起きるのか分からないので設定するのが無難です)
if (WP_DEBUG) {
define( ‘WP_DEBUG_LOG’, true );
}
ログファイルは下記に出力されます。
/wp-content/debug.log
また、画面にログを出力したくない場合は、次のソースも追加しましょう。
if (WP_DEBUG) {
define( ‘WP_DEBUG_LOG’, true );
define( ‘WP_DEBUG_DISPLAY’, false );
}
変更ができたら、上書き保存してソースを反映してください。
次はエラーが起きる動作をさせて、エラーの原因をログで確認します。
今回はWordPressの管理画面を開いた際にエラーが起きたため、もう一度管理画面を開いてみます。
するとdebug.logに以下のエラーが出力されました。
mysqli_real_connect(): (HY000/2002): No such file or directory in /home/xxxx/xxxxx.com/public_html/wp-includes/wp-db.php on line 1653
意味は下記の通りです。
wp-db.phpの1653行目のソースでエラーが発生しています。
ファイルまたはディレクトリが見つかりません。
STEP3まででエラー箇所を特定しました。
次はエラー原因を調べていきます。
wp-db.phpは下記にあります。
/wp-includes/wp-db.php
wp-db.phpの1653行目を見てみると次のようなソースです。
mysqli_real_connect( $this->dbh, $host, $this->dbuser, $this->dbpassword, null, $port, $socket, $client_flags );
「mysqli_real_connect No such file or directory」で検索すると、”DBのホスト名はlocalhostではなく127.0.0.1に変更しましょう”と出るので、前述したように該当箇所を修正することで、データベース接続確立エラーが解決できます!
まとめ
いかがでしょうか?
見たことのないエラーに遭遇すると、どうしていいか分からず、嫌になってしまうと思います。
でも、1つずつ問題を解決していくことで、必ず答えに辿り着けるので、諦めず根気強く調べていきましょう!
では今日のまとめです。
wp-config.phpのMySQLのホスト名を「localhost」→「127.0.0.1」に変更しよう!
- FTPクライアントソフトを使用して、wp-config.phpをテキストエディタで開く
- ログを吐き出すようにソースを変更し、保存する
- エラーの原因をログで確認する
- エラー箇所を調査する
この記事を読んでくれた方のお役に立てれば嬉しいです。
最後までお読みいただき、ありがとうございました。
コメント