ウェブサイト検索

WordPress 500 内部サーバーエラーを修正する方法


開発者、デザイナー、あるいはエンドユーザーであっても、私たちのほとんどは、一生のうちに少なくとも一度は耐えなければならなかったことがあります。つまり、内部サーバー エラーが発生し、それを修正しようとする面倒なプロセスです。多くの人はそれ以上知りたいとは思っておらず、ただ問題を解決したいだけです。しかし、少なくともそれを理解しようと努めなければ、この運命にもっと頻繁に苦しむことになるはずです。 500 内部サーバー エラーは、すべてのプロセスを完全に停止させ、サイト全体をダウンさせる可能性があるため、非常に重要です。したがって、それを取り除きたい場合は、まずそれが何を意味するのかをよりよく理解する必要があります。

この記事では、このエラーの意味、問題の特定方法、そしてもちろんその修正方法についての基本を説明します。ただし、始める前に、存在するさまざまな http (サイト) エラーと、それらが潜在的に何を意味するのかを説明したいと思います。必要に応じて、WordPress 500 エラーを修正する方法までスキップしてください。

一般的な HTTP ステータス コードとエラー コード

まず最初に、これらのエラーが実際に何を意味するのかを説明します。現在、状況をより適切にトラブルシューティングするためにアクセスできる HTTP のステータスとエラーのリストがあります。これらのエラーは通常、いくつかの種類に分類されます。そこで、この問題を手短に説明するために、WordPress サイトの操作中に見つかる最も重要なエラーと情報ステータス コードについて説明します。

100x 応答 (ステータス)

このタイプの応答は Web サーバーによって直接与えられます。ホスティング会社によっては、Apache、nginx、または会社が使用しているその他の Web サーバーによって応答が返されます。このタイプの応答はエラーには関連付けられません。これらは通常、接続が確立されていることを示すために使用されます。これらは接続に対するステータス応答コードです。

200x 応答 (成功)

成功した人たちを私はそう呼んでいます。このタイプの応答は常に成功を示します。これは、サーバーが接続に成功したか、要求されたリソースが正しく提供されたか、またはプロキシ接続が確立されたことを意味します。

最も一般的な成功コードは、200 OK として知られています。WordPress のスピード テスト ツール (Pingdom Tools など) を使用していて、FTTB を調べようとしている場合、この例が表示されます。 (初めてのバイトです)。 200 OK 応答は、最初に行われたリクエストに対して常に返されます。

300x レスポンス (リダイレクト)

リダイレクトの人たち。これらのコードは、指定されたリンクがリダイレクトされる場合に常に参照されます。ステータス コード 300 はリダイレクトが成功したことを示しており、 またエラーとはみなされません

SSL (HTTPS) サイトがあり、HTTP (セキュリティで保護されていない) への直接アクセスもでき、すべてのユーザーをサイトの HTTPS バージョンにリダイレクトしたいとします。 HTTP からのすべてのリクエストを HTTPS に送信するリダイレクトを作成できます。誤って HTTP でサイトに入ろうとすると、ブラウザは HTTPS バージョンへのリダイレクトを示す 300 応答を受け取ります。

あなたがよく知っているもう 1 つの一般的な例は、SEO のためのオンサイト リダイレクトです。古い投稿やページを削除した可能性があります。 Yoast SEO などのプラグインを使用すると、これらをより新しい、より関連性の高いページに 301 リダイレクトできます。または、更新に取り組んでおり、ユーザーを少しの間別のページに誘導したい場合は、307 一時リダイレクトを使用します。

400x 応答 (クライアント エラー)

有名なクライアントエラー。このようなタイプのエラーには、ブラウザの問題が関係しています。通常、特定のアセットをロードできません (最も一般的に知られているのは 404 エラーです)。これらは重大とはみなされないエラー コードです。

サイト上に存在しない画像にアクセスしようとすると、同じエラーが表示される可能性があります。たとえば、コンテンツが完全に削除されたことを検索エンジンに伝えるには 410 リダイレクトを使用したり、法的理由 (DMCA リクエストなど) でページを利用不能にした場合には 451 リダイレクトを使用したりすることができます。

500x レスポンス (サーバーエラー)

そして今、私たちは主人公に到達しました。 500エラー。ご覧のとおり、これらは重要なエラーであり、常にサーバー自体に関連しています。サーバーエラーは、Web サイトを効果的にクラッシュさせる可能性があるため、重要です。これらのエラーのうち、最も重要なものは次のとおりです。

  • 503 サービスが利用できない
  • 502 不正なゲートウェイ エラー
  • 500 内部サーバー エラー

重要な順に 3 つを見てみましょう。

503 サービスは利用できません

最も深刻でないのは、503 サービスが利用できないことです。このエラーが表示された場合は、Web サーバーのリソースに問題があります。ほとんどの場合、このエラーはサーバーが過負荷になっているときに表示されます。簡単に言うと、このエラーが表示された場合は一時的なものであり、次のエラーに直接関係していることを理解してください。 > トラフィックが多すぎるため、CPU に過負荷がかかっています。CPU 使用率が 100% に達したために、CPU と Web サーバー自体がそれ以上の受信接続を処理できない場合、このメッセージが表示されます。エラーポップアップ。

これを修正するには、より優れた Web サーバー (Apache から Nginx など) に切り替えるか、サイトに WordPress キャッシュ プラグインを実装します。

502不正なゲートウェイ

これを私は設定ミスエラーと呼んでいました。このエラーは理由もなく表示されません。このエラーが発生した場合、最も可能性の高い原因は、何かを実行し、 それが間違っていたことです。これは通常、Apache や PHP の設定を調整しようとしたとき、または nginx を最適化しようとしたときに発生します。不正なゲートウェイは、PHP FPM (高速プロセス マネージャー) が接続を失ったときにほぼ常に発生するエラーです。間違った設定を調整したか、プロセスがクラッシュしたためです。これにより、ウェブサーバーは不正なゲートウェイで応答します。

このエラーを修正する最も簡単な方法は、PHP-FPM 設定を再確認することです。これがこのエラーの最も考えられる原因です。これは、Apache よりも Nginx 側で頻繁に発生しますが、cPanel や Plesk が提供するホスティング サービスではほとんど発生しません。最後の 2 つのパネルには、構成ミスを防ぐための安全装置が設けられています。ただし、独自の VPS を管理している場合には、このようなことが非常に頻繁に発生します。

これに関してさらにヘルプをお探しですか? 502 不正なゲートウェイ エラーを修正する方法については、ガイドに従ってください。

500内部サーバーエラー

エラーの大悪人。 500 内部サーバー エラーは、 これらすべてのエラーの中で最も悪いもので、 主に一般的なエラーであるためです。 対処方法について十分な知識がないと、サイト全体がダウンする可能性があるため、非常に面倒な作業になる可能性があります。 502 不正なゲートウェイ エラーもサイトをダウンさせますが、診断と修正は簡単です。前述したように、これはほとんどの場合 FPM 構成に関連しています。

500 内部サーバー エラーの理由とその修正方法

500 エラーについて最初に理解しておくべきことは、500 エラーは、ほとんどの場合、コード実行の失敗に関連するさまざまな要因によって引き起こされる可能性があるということです。一度にすべてを診断しようとするのではなく、問題の種類と実行内容ごとにエラーのリストを提供します。

  • 古いサイトを新しいホスティングに移行することによって
  • Apache 構成の .htaccess のエラー
  • PHPコード実行時のエラー

500 内部サーバー エラーをスローするあまり一般的ではないケースは他にもありますが、この記事の簡潔さと使いやすさのために、これら 3 つに焦点を当てます。

1. 古いサイトを新しいホスティングに移行する

このエラーが表示される原因はいくつかありますが、ほとんどの場合、Web サーバーにバインドされている PHP バージョンに関連しているようです。現在のサイトまたはプラグインが現在のバージョンをサポートしていない場合、新しい PHP バージョンでは即時 500 内部サーバー エラーが生成される可能性があります。

このエラーは、たとえば、古い PHP バージョンを使用する平凡なホスティングから、新しいバージョン (7.0 以降) のみを受け入れる新しいホスティングにサイトを移行する場合に発生する典型的なエラーです。サイトが最近更新されていない場合は、古いプラグインが問題を引き起こしている可能性があります。これはサイトを移行するときにほぼ必ず発生するため、私はこれを「移行内部サーバー エラー」と呼んでいます。

解決

WordPress サイトを新しいホスティングに移行しようと懸命に努力しているときに、このひどいエラーを修正する最善の方法は、サイトのプラグインとテーマの完全なコピーを作成することです。これを行った後、サイトからすべてのプラグインを削除して、もう一度お試しください。エラーが解消された場合は、ホスティング上の新しいバージョンの PHP が古いプラグインでのコードの実行を単に拒否したことによってエラーが生成されたことがほぼ確実です。一度に 1 つのプラグインを再アップロードすると、問題の原因となったプラグインを簡単に見つけることができます。

このエラーは、PHP 5.4 および 5.6 で実行されている古いサイトを PHP 7.0、7.1、または 7.2 の新しいホスティングに移行するときにほぼ常に発生します。

同じことがテーマにも当てはまります。 テーマでは、functions.php、single、page.php ファイルに追加の PHP コードを実装できるためです。新しいバージョンの PHP を使用したホスティングに移行すると、更新のない古いテーマがサイトを破損する可能性が最も高くなります。これを修正する唯一の方法はテーマを変更してサイトを再構築することであるため、この状況は残念です。これは最悪のシナリオです。

2. .htaccess Apache 構成エラー

プラグインを設定していて、突然すべてがクラッシュしたとします。キャッシュ プラグインや最適化に関連するプラグインなどの構成中に 500 内部サーバー エラーが発生した場合は、プラグインが .htaccess ファイルに余分なコードを追加していないかどうかを確認する必要があります。

Apache は .htaccess ファイル(ほとんどの場合非表示)内の関数を設定することでリアルタイムに変更できるため、設定が間違っているとサイトが壊れる可能性があります。

解決

これを修正する方法は、FTP 経由でサイトにアクセスして .htaccess ファイルを変更するか、たとえば cPanel または Plesk のファイル エクスプローラーを使用して直接編集することです。

プラグインによって作成された内容を元に戻す方法が分からず、サイトを再起動する必要がある場合は、既存のコンテンツのコピーをテキスト ファイルとして作成します。これをバックアップとして保存します。次に、.htaccess 全体を次のコードに置き換えます。

# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress

これはデフォルトの WordPress .htaccess ファイルです。どのサイトでも機能するはずです。したがって、どうしようもなくてどの部分を削除すればよいかわからない場合は、すべてを削除してこのコードを貼り付けるだけです。これですぐに問題を解決できます。後でプラグインを削除するか、再度設定を試みることができます。この致命的なエラーから身を守る方法がわかりました。少なくとも .htaccess 関連であれば。

.htaccess に関連しているかどうかわからない場合、またはプラグインに何も触れていないのにこのエラーが表示され始めた場合は、安全策を講じてください。 .htaccess の内容をコピーし、上記のコードをコピーして診断を試してください。これで問題が解決しない場合は、.htaccess をそのままにして、次の提案を試してください。

3. PHPコード実行エラー

この種のエラーは思っているよりも一般的であり、通常はプラグインが無効なコードを実行している場合に発生します。無効なコードを実行する最も一般的な方法は、非推奨の命令を実行しようとする場合です。おそらく、PHP 5.4 または 5.6 まででしか動作しないように設計された古いプラグインを、PHP 7.0 以降のバージョンで実行しようとしているのかもしれません。 非推奨の無効な関数により、WP デバッグ モードを有効にすることによってのみ診断できる内部サーバー エラーが発生します。

wp_debug を有効にする

WordPress デバッグ モードでは、実行を停止したスローされたエラーに関する詳細な情報が得られます。これを有効にするには、サイトのルート フォルダーにあるファイル wp-config.php 内の wp_debug の値を「false」 から「true」に変更します。

Plesk または cPanel を使用している場合は、ファイル エクスプローラーを使用してその値を変更し、wp-config.php を編集するだけで変更できます。より詳細な手順については、Blogvault によるこのデバッグ ガイドに従うこともできます。

ファイルを編集すると、実行を停止した実際のエラーが生成されていることを確認できるようになります。エラーには、これが発生したパスとファイルも示されるため、 どのプラグインが原因であるかを簡単に推測できます。 エラーを無効にすることで、エラーをスキップし、後でプラグインを更新できます。状況に応じて削除することもできます。

解決

500 内部サーバー エラーのほとんどのケースには古いテーマ バージョンまたはプラグインが関係しています。テーマを標準の WP テーマに切り替えると、サイトへのアクセスを取り戻すことができます。競合するプラグインを無効にすると、ダッシュボードへのアクセスも戻ります。あなたのテーマがサイトを破壊する原因となっている状況に遭遇した場合、それを修正する最善の方法は、テーマ フォルダ wp-content/messages/yourtheme< からそのテーマの zip ファイルを作成することです。 その後、サイトから削除します。これによりエラーが解消され、サイトに再びアクセスできるようになります。その後、再アップロードして、アクティブ化せずに更新できます。プラグインでも同じことができます。

500 の内部サーバー エラーの最も一般的な状況は更新することで修正できます。上記のプラグイン/テーマに利用可能な更新がない場合は、古い PHP バージョンに切り替えてみることができます。ただし、これは一時的な回避策であることに注意してください。 PHP の新しいバージョンは安定し、古いバージョンは定期的に非推奨になります。遅かれ早かれ、 あなたのサイトは間違いなく機能しなくなります。 最善のアプローチは常に、問題のプラグインを更新または削除/置換することです。

後でダメージコントロールを試みるよりも、予防して更新する方が良いということを常に覚えておいてください。

WordPress 500 内部サーバーエラーに関するガイドのまとめ

WordPress 500 の内部サーバーエラーは非常に厄介です。ただし、ほとんどの場合、サイトの競合する部分を削除または更新するだけで、簡単に診断して修正できます。これらのエラーが通常の範囲外で発生する状況も考えられますが (たとえば、プラグインの開発時など)、それはこの記事の目的を超えます。

大多数の人にとって、上記のアドバイスに従えば問題は解決するはずです。 wp-debug があなたの親友であることを忘れずに、常に慎重に手順に従ってください。サイトはすぐにオンラインに戻ります。

他にご質問はありますか?それとも WordPress 500 の内部サーバーエラーに対処するためのヒントですか?教えてください!