高速で安定度の高いと評判のエックスサーバーへサイトの移転を行いました。その時に詰まった事を備忘録として記録しておきます。(移転先の動作確認には hosts ファイルを編集する方法で行っています。)
元々常時 SSL(https)で運営していたサイトをエックスサーバーへ移転しました。エックスサーバー側で WordPress のインストールまでは上手くいったのですが、移転元からエクスポートしたデータベースをインポートした所「無効なURLです。プログラム設定の反映待ちである可能性があります。しばらく時間をおいて再度アクセスをお試しください。」というエラーが発生しました。
サイトを作りたての時によく見るエラーだったので、反映待ちだと思って1日待ってみたものの…。どれだけ待ってもエラーは解消されず。
データベースをインポートしたのが発端
他のサイトで調べてみると、3日待つ、キャッシュを消去する、他のブラウザを試すという方法が紹介されていましたが、どれにも該当しませんでした。今回の場合、エラーの発端は「データベースをインポート」した事から始まっています。
WordPress をインストールした所までは正常に表示されていたのです。このあたりに原因があるとみて考えてみました。
移転元では常時 SSL で運営していましたが、エックスサーバー側で同じ環境を構築する上でいきなり SSL は設定できないのです。何故ならドメインのネームサーバーはまだ移転元に向いているからです。(本番ドメインはまだ使えません。)
環境自体は同じものを構築したにも関わらず、URL が違う事が原因じゃないかと考えました。
データベースをインポートしたら「無効なURLです。」が発生した事を勘案すると、データベース内に原因があると見るのが自然です。
解決方法
データベースを見ると、移転元の情報がそのままなので wp_options テーブルの WordPress アドレスとサイトアドレスが https:// のままでした。編集をクリックすると情報を編集できます。
ここで URL を http:// に戻してみました。そして、再びサイトにアクセスしてみると…。
無効な URL エラーが解消されて、WordPress の管理画面が表示されました!あとは画面の指示どおりにデータベースを更新したら通常の管理画面へ入れます。
入れたらこっちのものです。サイトの表示を確認したらネームサーバーをエックスサーバーに向けて、エックスサーバー側で SSL 設定をして https:// でアクセスできるようになるまでしばらく待ちましょう。
アクセスできるようになったら、リダイレクト設定をして WordPress の「設定」→「一般」にある WordPress アドレスとサイトアドレスを https:// に戻しましょう。これで全てが完了です。