WEBこのブログは2012年にレンタルサーバーにWordPressをインストールして作成したものだ。レンタルサーバーのサブドメインで4年半運用(完全放置)していたが、この度「ちゃんと運用しよう」と思い立ち、まず独自ドメインを取得しDNS設定をした。トラブルの発生である。ブログにアクセスしたら「データベース接続確立エラー」が発生したのだ。googleで検索しまくっても原因の特定ができず、大ハマりしたので経緯と対処法を記しておく。本ブログのドメインを、ロリポップのサブドメインから独自ドメインに変更したい手順1独自ドメインを取得し、ロリポップでDNS設定を行う2サーバーで新しいフォルダを作成し、新しくでWordpressをインストールする。3旧WordPressデータをエクスポートし、新WordPressへインポートする。4旧ドメインから新ドメインへ301リダイレクトをかける。エラー発生状況もう、工程の序盤でエラーが発生した。1のDNS設定が完了すれば、旧サイトへサブドメインでも独自ドメインでもアクセスできるはずだ。独自ドメインのURLでアクセスすると「データベース接続確立エラー」と表示される。は?なんだこれ、意味わからん。ここでまず疑ったのは、DNS設定がまだ完了してないんじゃね?っていう。「データベース接続確立エラー」が表示されるってことは、データベースにアクセスしようとしてなんらかの理由ではじかれてるってことだ。新しくWordpressをインストールしようとしたら”失敗”になってできなかった。FTPでフォルダの中身を確認するとデータベース情報が書かれるファイルが見当たらない。データベースに接続できなくてインストールに失敗していると考えられる。google先生に聞いてみよう。「データベース接続確立エラー」とはそもそもデータベース接続確立エラーとは、WordPress環境で発生するらしい。WordPressからデータベースに接続できない状況である。調べたところ、このエラーの原因のほとんどが「wp-config.php」の設定ミスとのことだ。MySQLのパスワードを変更してしまった場合などに、この状況に陥る人が多い。他にはデータベースの破損などが考えられる。私は今回の作業工程でwp-config.phpどころか、どのphpファイルも触っていないはずだ。それにMySQLのパスワードの変更も行っていない。データベース破損についても、それなら旧ドメインでもエラーが発生するはずだから考えにくい。どれも腑に落ちないが、一つ一つ確認して潰していくしかなさそうだ。1wp-config.php記述ミスを疑ってみるwp-config.phpは、WordPressがインストールされているルートディレクトリにある。これをFTPでダウンロードして開いてみる。調べたところ、下のMySQL設定の4項目で間違っている場合が多いらしい。);項目設定の照合方法は、レンタルサーバーの管理ページなどで確認できる。私の場合はロリポップなので、ユーザー専用ページ>WEBツール>データベースのページで確認。うーん...やっぱり間違ってないんだよなぁ。考えても原因はwp-config.phpの記述ミスではなさそうだ。2データベース破損を疑ってみるwp-config.phpをチェックしても問題が解決しない場合は、他の原因を疑う。疑うべきはデータベースのテーブル破損ということなので、見てみよう。データベースの状態を確認するにはphpMyAdminにアクセスする。ロリポップでは、先程のデータベースのページから【phpMyAdminを開く】ボタンをクリックする。テーブルが破損していたりすると、テーブル名の行に「使用中」などと表示されるらしい。破損が確認できたら、テーブルにチェックを入れて【テーブルを修復する】を行えば修復が可能だ。データベースに問題はなさそうだ。原因を発見するもう...ダメだ...。ロリポップに問い合わせしよう。ことで、経緯と状況など詳細に記載してメールフォームから送信。原因と解決方法と回答を待つ。返事をおとなしく待っていられる性格ではないので、ロリポップのユーザー専用ページを片っ端からポチポチして探っていると。PHPのバージョンが違うんだよなぁ。実は今回のトラブルの序盤でこれには気づいていた。PHPのバージョンは関係ないだろうとスルーしていたのだ。待て待て、なんかPHP7.1に関する案内が出ているではないか。「事前にこちらをご確認ください」っていうリンクを開いてみる。インストールが失敗したり、サイトで「データベース接続確立エラー」が表示される場合、データベースのパスワード形式が影響している可能性があります。ロリポップ!で提供しているPHP7.1では、セキュリティレベルが高いデータベース接続方法を採用しており、PHP7.1を利用しているドメインから、古いパスワード形式である「old_password形式」を利用しているデータベースへの接続を行うことができません。PHPバージョンが7.1で、セキュリティレベルの高い接続方法を行おうとしてもデータベース設定が古いパスワード形式「old_password形式」だったため不整合が起き接続ができなかったのだ。解決方法は、古いパスワード形式で接続できるよう新ドメインのPHPバージョンを下げるか、PHP7.1のままデータベースのパスワード再設定を行い、パスワード形式を「old_password形式」から「native_password形式」に変更すればいい。PHPバージョンを下げる方が”ここをこう...ポチっとな”で作業は完了するが、やはりセキュリティ面を考えると最新バージョンを利用する方が好ましいのだろう。データベースのパスワード形式変更方法の詳しい手順は、下記リンク先に記載がある。ロリポップよくある質問>PHP7.1利用のドメインで簡単インストール、サイト表示ができません。このあと、これと同じ内容でロリポップのサポートから丁寧な返信をもらった。ちなみにエラー発生から解決までになんと3日もかかった。AM>ふみさんコメントありがとうございます!この事象に関して情報がなかったので、私もどハマりしました。お役にたてて良かったです。PMこの記事で助かりました。;∀;)助かりました。ありがとうございます。PM>C&Cさんコメントありがとうございます!やっぱハマりますよねぇコレ。お力になれたようでよかったです。コメントをキャンセルメールアドレスが公開されることはありません。301リダイレクトしたら管理画面にアクセスできなくなった2012年に作成し放置していたこのブログを、1年くらい前にリニューアルして再開させた。PRESS(リキッドプレス)」の「SMART」を使用し...2017年9月4日WordPress記事ごとのhead内に任意タグを追加する方法Wordpressはheader.phpでhead内に任意のタグを挿入できる。先日、仕事で初めてBaaSなるものに手を出した。