【注意!】エックスサーバーへの移行で失敗したことリスト

WordPressイメージ

エックスサーバーへの移行が終わって一安心……とはなかなかいかないのがサーバー移行です。

マニュアルの手順通りにやったつもりでも、環境によってはサイトのトップページが表示されなかったり画像が表示されなかったりいろいろと起こりえるので、しっかりチェックをしたいところ。

エックスサーバーへWordPressサイトを移行する際に、環境の問題やうっかりも含めて私がぶちあたった失敗と解決方法をご紹介します。

あとに続く方のために、轍となれば。

データベース確立エラー

サーバー移行後データベース接続エラーが出たらwp-configphpの内容をチェック

データベース確立エラーが出る場合。

データベースもFTPファイルもきちんとアップロードが終わっているのに、サイトにアクセスすると「 データベース確立エラー 」が出ることがあります。

FTP領域のルートフォルダにあるwp-config.phpの記述を見直しましょう。

wp-config.phpにはデータベースのユーザIDやパスワードホスト名などが記述されています。そこが間違っているとデータベースにアクセスできすデータベース確立エラーが出ます。

特にDB_HOST横のホスト名はエックスサーバーのMySQL一覧画面の下部にあります。紛らわしいですが、MySQLユーザアカウント横のカッコ内ホスト名とは別ものなので注意。

トップページだけ表示されない

indexhtmlを削除しないとトップページが表示されずエラーページが

トップページにアクセスするとエックスサーバーのエラーページが表示される。

サーバー移行後、WordPressにもログインできるし記事やカテゴリページなど下層ページは表示されるのに、トップページだけ表示されずエラーページが表示される現象が。

このウェブスペースへは、まだホームページがアップロードされていません。

早速エックスサーバー上へファイルをアップロードしてみましょう。アップロード方法については、サポートマニュアルをご参照ください。

ファイルは間違いなくアップロードしてあるのに、ファイルがないなどとおっしゃる。

原因はエックスサーバーでのドメイン設定のあと、FTP領域にデフォルトで生成されるindex.htmlを削除していないため。index.htmlがそのまま上記のエラーページになっています。

ちなみにindex.htmlと一緒に生成されるdefault_page.pngは放っておいても害はありませんが、不要なのでindex.htmlと一緒に削除しましょう。

エックスサーバー上に.htaccessファイルが自動生成される

エックスサーバーのドメイン設定をすると、そのサイトとして公開するファイルを置くFTP領域が生成されます。

本来ならデフォルトでindex.htmlとdefault_page.pngの2ファイルが格納されているはずです。が、勝手に.htaccessが生成されることがあります。

移行前のサーバー上にも.htaccessファイルがある場合、アップロードするときに上書きしていいものか判断に困ることでしょう。

十中八九、原因はドメイン設定時 or ファイルアップロード前にXアクセラレータを有効にしたため。

結論からいえば、エックスサーバー上に自動的に.htaccessが生成されていたら、旧来のファイルを上書きアップロードするのではなく、記述を統合しましょう。

SetEnvIf Request_URI ".*" Ngx_Cache_NoCacheMode=off
SetEnvIf Request_URI ".*" Ngx_Cache_StaticMode

.htaccessの中身が上記のようになっていれば間違いなくXアクセラレータが原因です。移行前から使っていた.htaccessの末尾にでもこの記述を書き加えてアップロードしましょう。

実はこれ、エックスサーバーのXアクセラレータ機能をオンにしたときに生成される記述です。ドメイン設定をするときに「 Xアクセラレータ機能を有効にする 」チェックをつけていると、Xこの記述のために.htaccessが自動生成されるのです。

もとよりXアクセラレータはあとでも設定できます。ドメイン設定時には設定せず、もともと使っていた.htaccessファイルをアップロードしたあとにオンにすれば自動的に書き加えてくれるので、あとから設定した方がわかりやすくて楽。

もしドメイン設定時にチェックをつけてしまい.htaccessが自動生成されていた場合は、アップロードする.htaccessの末尾に付け加えて統合してからアップロードすればOKです。

一部表示されない画像がある

サイト内でほとんどの画像が表示されない

サーバーを移行したあと、ページ上の一部(ほとんど)の画像が表示されない。

サーバーを移行したあと、一部の画像が表示されない現象が発生。むしろ一部の画像だけ表示されるといった方がいいほど、ほとんどの画像が表示されませんでした。

ファイルはアップロードされているけどファイル名の文字コードがかみ合わずWordPressが画像を読み込めないのが問題でした。

原因はファイル名に2バイト文字(日本語)を使った画像をMacからアップロードしたため。エックスサーバーのWebFTPサーバーにアクセスして、画像が格納されているフォルダをみるとこんな感じ。

https://jill-tone.com/wp-content/uploads/2019/01/エックスサーバーのWebFTPで見ると文字コードエラーがでまくってる

画像ファイルが文字コードエラーになっている。

文字コードの問題とわかりピンときました。FTP領域のファイルをMacでアップロードしたからだ。

表示される画像と表示されない画像の分水嶺はファイル名内に文字コードの影響をうける文字が使われていたかどうかがのようです。多分濁点が入ってるとか入ってないとかそんな話かと推測。

対策として、画像だけWindowsのPCでアップロードし直したら無事表示されるように(他にも日本のファイル名があったら上げ直した方がいいかも)。

ちなみに、そもそもファイル名が日本語の画像があるとサーバー移転でデータベースがファイルを読み込めず画像が表示されなくなる現象も確認されています。どちらかというとこちらの問題の方がよく起こる模様。

Macでアップロードしたわけでもないのに画像が表示されない場合は、Add From Serverプラグインを使ってサーバーへの再読み込みを試してみてください。

メールアドレスの設定を放置

WordPressサイトの表示や運営には直接関係のないことですが、サーバー移行 = 独自ドメインのDNSサーバー切り替えを行った場合、独自ドメインで取得していたメールアドレスをエックスサーバーで再度設定する必要があります。

DNS切り替え後~同じメールアドレスをエックスサーバー上に設定するまでの間、メールアドレスが存在しない扱いになるため受信できません。

レンタルサーバー&独自ドメインでWordPressサイトを運営している方なら独自ドメインのメールアドレスも取得して使っている方多いかと思います。注意。

まとめ:エックスサーバーへの移行で失敗したことリスト

  • データベースやファイルのアップロードに問題がないのにデータベース確立エラーが出た場合、wp-config.phpを見直す。
  • デフォルトで存在するindex.htmlの削除を忘れるとトップページが表示されない現象が起こる。
  • ファイルアップロード前にXアクセラレータを有効にするすると.htaccessが自動生成される。内容を旧来の.htaccessと統合してアップロードすればオッケー。
  • 画像のファイル名が日本語の場合、画像が表示されないことも。MacからアップロードせずWindows10からアップロードしてみる or Add From Serverプラグインを使ってみよう。
  • 移行前に独自ドメインのメールアドレスを使っていた場合、エックスサーバーでのメール設定も忘れずに。

長く運営したWordPressサイトほどファイルは多いし設定や環境も複雑になり、サーバー移行には時間もかかるし、いろいろと面倒も増えます。

が、特に遅いサーバーからの移行であれば、別記事でも語った通りエックスサーバーに切り替えるメリットもかなり大きいです。

慣れてしまえばなんてことないので、ぜひぜひチャレンジしてみてください。