WordPress移行時に500エラーが発生する場合の原因&対処法

WordPress移行時に500エラーが出てしまう…!SEOにも悪影響が及ぶ

500

WordPress(ワードプレス)で運営しているサイトを別サーバーに移行した際などに、サイト上に「500 internal server error」と表示されて、正常にページが表示されない事態に陥ってしまうことがあります。

突然発生する上に、ページの再読み込みをしても500エラーが発生したままで、何をどうしたらいいのかわからず気が動転してしまいますよね。

本記事では、WordPressの引っ越し時において500エラーが発生する原因と解決策についてご紹介していきます。

500エラーが出ている状況が続くと、サイトにアクセスした訪問者を失うだけではなく、SEO評価にも悪影響が及ぶので、いち早く対処することが求められますが、まずは落ち着いて下記で紹介していく作業を行いましょう。

サイトを構成する重要なデータを扱いますが、バックアップしてある元データだけは触らないようにしましょう。
スポンサーリンク

500エラー(500 Internal Server Error)とは?

500エラー

500エラー(500 Internal Server Error)とは、WEBサーバー内部で何らかの問題が発生している状況において表示されるエラーです。

ただ、サーバー内のどこで問題が起こっているかという具体的なエラーや根本的な原因は明確ではないため、あらゆる原因が考えられます。

500エラーの「500」は、HTTPステータスコードの一つであり、400番台~500番台がサーバーエラーを表すエラーコードです。

500エラーが発生していると、下記のような画面になったり、「500 Internal Server Error」という文字が表示されたりすることが多いです。

エラー

WEBサーバー内のどこでエラーが発生しているかの原因特定は難しい500エラーですが、一般的にWEBサーバーで動いている「.htaccess」ファイルの記述ミスCGIプログラムのエラーが原因な場合が多いです。

それでは、500エラーのよくある原因と対処法について次の項目で解説していきます。

500エラーの原因と対処法

対処法

WordPress移転時に起こった500エラーは、主に下記のような原因で発生している可能性があります。

主な原因

  • 「.htaccess」ファイルの記述ミス
  • CGIプログラムのソースコードに誤りがある
  • 各フォルダのパーミッションの設定ミス
  • PHPのバージョンが異なる

上記のそれぞれの項目について、下記にて詳しく対処法をご説明していきます。

「.htaccess」ファイルの記述ミスを修正する

「.htaccess」ファイルの記述を誤っている場合、500エラーが発生してしまいます。

まずFTPソフトを使用してサーバーにアクセスし、「.htaccess」ファイルをダウンロードします。

WordPressを移行する際には、リダイレクト設定などで「.htaccess」ファイル内を編集することがありますが、「全角スペース」が1つ入っているだけでもエラーが発生してしまうので、1つ目の確認事項として「全角スペース」が入ったまま保存していないかを確認してみましょう。

上記の作業を行う際には、テキストエディタで「.htaccess」ファイルを開くと全角スペースの有無をチェックしやすいですよ。

また、「.htaccess」ファイルの記述をチェックする際は、下記のようなコードになっているかどうかを確認してください。

上記のコードは、WordPressを正常に動かすために必要な最低限のコードですので、もしご自身で「.htaccess」ファイル内を編集していて、エラー箇所を特定できないなどの場合には、一度上記のコードにしてアップロードしてみてください。(※もちろん、元データのバックアップをしっかりと取った上で作業をお願いします。)

「.htaccess」ファイルの全角スペースの有無、コード記述ミスいずれかの修正で500エラーが解消するケースも多いので、お試しくださいね。

サブディレクトリでサイト運営している場合

サブディレクトリでサイトを運営している場合には、下記のコードを参照してください。

CGIプログラムのソースコードを修正する

CGIプログラムのソースコードに誤りがある場合においても、500エラーが発生します。

CGIとは、Common Gateway Interface の略称で、簡単に言えば「WEBサーバーと連携して動作するソフトウェアの約束事」です。

例えば、問い合わせフォームや検索フォームなどにおいて、CGIプログラムで動かしているというケースがあります。

そのような場合には、CGIのソースコードに記述ミスがないかや、CGIの負荷が大きくないか、またパーミッションも確認してみてください。

確認事項

  • CGIのソースコードの記述ミスがないか
  • CGIの負荷が大きくなっていないか
  • CGIのパーミッションが正しいか

各フォルダのパーミッションの設定ミスを修正する

WEBサーバー内の各フォルダに設定されているパーミッションに設定ミスがある場合、500エラーが発生する可能性があります。

パーミッションとは、ファイルやディレクトリなどに設定されているユーザーのアクセス権のことです。

パーミッションはWordPressやPHPファイル、CGIなどに大きく影響を及ぼす設定です。

パーミッションの設定ミスは、500エラーを発生させるのみならず、特に「wp-config.php」ファイルなどが読み取られるとデータベースの情報を外部からアクセスされる危険があるので、注意が必要です。

この「wp-config.php」ファイルのパーミッションは、「600」になっていることが望ましいので確認してみましょう。

「.htaccess」ファイルなどのその他ファイルについては、パーミッションが「644」または「606」になっていることが望ましいです。

パーミッションの確認方法

パーミッションを確認するには、FTPソフトを使用します。

まず始めに、FTPソフトでWEBサーバーにアクセスし、「wp-config.php」ファイルや「.htaccess」ファイルなどの該当ファイルをクリックし、ファイルが選択された上で右クリックします。

ファイル

そして、「プロパティ(P)」をクリックして選択したファイルのプロパティを表示させます。

プロパティ

すると、ファイルに設定されているパーミッションを確認することができます。

パーミッション

上記の作業手順で各ファイルのパーミッションを確認し、設定ミスがあれば修正しましょう。

PHPのバージョンを確認する

移行先サーバーのPHPのバージョンがWordPressのテーマなどに合わない場合などにも、500エラーが発生するケースがあります。

例えば、移行元サーバーではPHP 5.6だったのに、移行先サーバーではPHP 7.2と、移行の前後で異なるバージョンだったというような場合があります。

そのような場合には、PHPのバージョンを変更して移行の前後で同じバージョンになるようにしましょう。

ただし、PHP 5系の最終バージョンPHP 5.6のセキュリティサポートは2018年12月31日で終了しており、脆弱性についての修正などをサポートしてもらえません。

レンタルサーバーによっては、まだPHP 5系をサポート対象にしている場合もありますが、PHP 5系を利用し続けることはセキュリティ面やSEO面でかなりのデメリットがあるため、最新のPHP 7系へのバージョンアップを推奨します。

とはいえ、いきなりPHPのバージョンアップを行うと問題が発生する可能性がありますので、チェックツールを利用してバージョンアップをするなどの方法をおすすめします。

下記の記事では、PHP 5からPHP 7へ移行する方法や注意点について詳しく解説しているので、ぜひ参考にしてみてください。

PHP 5から7への移行でエラーしない方法とは?チェックツールを活用しよう

記事はこちら

WordPress移行時によく発生するエラー・対処法まとめ

エラー

WordPress移行時には、500エラー以外にもさまざまなエラーが発生しがちです。

よく発生するエラー

  • データベース接続確立エラーが発生する
  • 画面やページが真っ白になる
  • WordPress管理画面にログインできない
  • 404エラーが発生する
  • 500エラーが発生する
  • 画像が表示されない

上記のようなエラーの原因と対処法について、こちらの記事にてまとめているので、よろしければご参照ください。

WordPress移行時のエラーについて~よく発生するエラーと対処法まとめ~

記事はこちら

スポンサーリンク

WordPressのサーバー移行で500エラーが発生する場合は、弊社にご相談ください

弊社

今回は、WordPressの別サーバー移行時に500エラーが発生する場合についてご紹介しました。

実際に上記でご紹介した対処法を試してみても、500エラーが解消しない場合や、対処法がよくわからない場合などには、お気軽に弊社にお問い合わせください

今なら、無料相談・お見積りキャンペーンを実施しているので、ぜひお気軽にご相談くださいね。

関連記事

f B!

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です