エックスサーバーからロリポップサーバーへWrodpress移行作業を依頼され、作業しているとハマったところがありまして。今後、同じ作業したときのために、つまづいたところと対処方法を備忘録でまとめてみました。
エックスサーバーからロリポップサーバーへWrodpress移行すると500エラー
WordPressでファイルサーバおよびDBサーバーすべて移行する場合、以下の手順を行います。どのツールをつかってもツール内でやっていることはだいたい同じです。
- 移行元のwordpressファイル・DBをバックアップ
- wordpressのフォルダを移行先へコピー
- 移行元DBを移行先DBへインポート
- 移行先DBデータの旧URLを新URLに変換
- 移行先wordpressフォルダ内、wp-config.phpの設定を移行先DB
たいてい上の手順でうまくいくんですけど、今回、エックスサーバからロリポップサーバへWordpressを移行したら、500エラーが発生してサイト表示されなかったんです。しかも、管理ログイン画面も表示されない。……ナンテコッタイ!状態。
500エラーの主な原因
WordPressで500エラーというとおもな原因として以下の3つが想定されます。
- CGIの誤り
- .htaccessファイルのエラー
- サイトにアクセスが集中している場合
今回、移行作業のときにロリポップではphpのバージョンでエラーを起こすと聞いていたので、事前確認してて問題なし。移行先のreadme.htmlにアクセスするとアクセスできるので、読めるので、wordpress直下の.htaccessファイルエラーでもない。さっきあげたばっかだから、サイトにアクセス集中していないし。
え、どうなってんの……。
500エラーの原因はプラグインだった
500エラーが起きる原因をしらべていたところ、プラグインで発生する場合があることがわかりました。
対処方法としてはプラグインを停止させることなんですが、現状、管理画面が見れない。
しかし、上のサイトでも同じ現象だったようで、FTPサーバーにアクセスできれば、FTP上のプラグインのフォルダ名を一時的に変更するでした。というものでした。
ロリポップのサーバーで行う場合、ロリポップ! FTPサーバーにログインして以下のフォルダまでアクセスする。
wp_content>pluginsプラグインごとにフォルダを切られているので、怪しいプラグインのフォルダ名を変更する。
(どのプラグインかわからない場合、Pluginsフォルダ自体の名前を一時的に変更してみてください。)フォルダ名を変更後、サイト表示する。
ここまででサイトがちゃんと表示されれば、よし。実際にサイト表示されました。
もし原因のプラグインがわからない場合、プラグインのフォルダ1つずつ名前変更していき、原因のあるプラグインを探すことをおすすめします。
(私の場合、犯人は「Duplicator」でした。これでサイト移行してくれって頼まれてたから入れたんですけど……おいっ!って気持ちになった。)
表示できても管理画面の表示がおかしい
実は、上記でサイト表示はされたものの、今度は管理画面の表示がおかしい状態になってしまいました。ダッシュボードなどうまく表示されないんです。
以下の方法で解決しました。
ロリポップサーバWP移行時の文字化け原因対処 | 悩み多き人生
wp-config.phpの以下の箇所を変更。
define(‘DB_CHARSET’, ‘utf8mb4‘); // 以下に変更 define(‘DB_CHARSET’, ‘utf8’);
ロリポップのインポート時に触った覚えが全くないからあとで確認してみると、ロリポップのデータベースサーバの文字コード設定が「utf8_general_ci」でした。「Duplicator」で入れるためにロリポップの簡単Wordpressで空のwordpress入れたんですけど、そのときにデフォルトの文字コード「utf8_general_ci」が反映されていたんですね。
いちおう他のテーブルやら列の文字コード確認して……。
異なる文字コードのプラグインはもうぜったい使わない。
(「Duplicator」が作成するDB「wp_duplicator_packages」が「ujis_japanese_ci」でした。)
まとめ
ロリポップサーバーへWrodpress移行作業で発生した問題をまとめてみました。今はちゃんと表示されるようになったのでよかったよかった。
文字コードとの闘いはエンジニアの宿命ですね。
最近、このような作業も頼まれることが多くなってきました。うれしい限りです。なにかお困りのことがありましたら、お気軽にご相談くださいね。