「WordPressを使っていたがサイトで”500エラー”が返されてしまった。これはどのようなエラーなのか。どのように対処すれば良いのか」
本記事ではこのように500エラーが返されてしまった方に向けて、500エラーがどのようなエラーなのか、どのように対処すれば良いのかについて解説します。
500エラーに関して網羅的に解説しているため、ぜひ本記事の内容を参考にトラブルシューティングを行ってみてください。
WordPress (ワードプレス)の500エラーとは
WordPressの500エラーとはWebサイトを表示できないエラーで、WordPressが動いている基盤プログラムである、”PHP”が何らかの理由でリクエストを処理できなかったことを示しています。
500というのは”HTTPステータスコード”の一部であり、リクエストの状態を表しており、例えばステータスコードが”403”の場合は”アクセス権”がないとわかります。本記事で扱う”500”エラーはリクエスト自体に問題はないものの、処理ができなかった状態です。
WordPress (ワードプレス)の500エラーの種類
先述したように500エラーは”何らかの理由でリクエストを処理できなかった”場合に返されます。抽象的な表現であるため原因の特定はやや難しい場合も多いです。
そこで現在ではより詳細なエラー内容まで返してくれることもあります。具体的には”IIS (インターネット・インフォメーション・サービス)のログ”に出力されたり”HTTPコードとしてブラウザ”に表示されたりします。
いくつか例を挙げてみます。詳しくはMicrosoftのサポートページIIS 7 以降のバージョンの HTTP 状態コードを参照ください。
500 | 内部サーバー エラー。 | このHTTP状態コードは、多くのサーバー側の原因により発生します。詳細については、以下のサポート技術情報番号をクリックしてください。942031IIS7.0でホストされているWebサイトにアクセスする際のエラーメッセージ”HTTP エラー500.0 – 内部サーバー エラー” が表示される |
500.11 | Web サーバーでアプリケーションがシャットダウンしています。 | 送信先のアプリケーション プールがシャットダウン中のため、要求が処理できませんでした。ワーカー プロセスがシャットダウンを完了するまで待ってから、要求を再試行してください。問題が解決しない場合は、Web アプリケーションの正常なシャットダウンを妨げる問題が発生している可能性があります。 |
500.12 | Web サーバーでアプリケーションが再起動のためビジー状態になっています。 | 送信先のアプリケーション プールが再起動中のため、要求が処理できませんでした。 ページを更新すると、HTTP 状態コードは表示されなくなります。 ページの更新後に、再度この HTTP 状態コードが表示される場合は、ウイルス対策ソフトウェアによる Global.asa ファイルの検索が原因で問題が発生している可能性があります。 問題が解決しない場合は、Web アプリケーションの正常な再起動を妨げる問題が発生している可能性があります。 |
500.13 | Web サーバーが非常にビジーです。 | サーバーがビジー状態で新しく送信された要求を受け取れないため、要求が処理されませんでした。 一般的に、この HTTP 状態コードは、同時に受信される要求の数が、IIS 7.0 およびそれ以降のバージョンの Web アプリケーションが処理できる数を超えていることを意味します。 この問題は、パフォーマンス構成の設定が低すぎるか、ハードウェアの性能が十分でないか、または IIS 7.0 およびそれ以降のバージョンの Web アプリケーションでボトルネックが発生していることが原因となっている可能性があります。 一般的なトラブルシューティングの方法は、エラーが発生している時に IIS 7.0 およびそれ以降のバージョンのプロセスのメモリ ダンプ ファイルを生成し、それをデバッグすることです。 |
500.15 | GLOBAL.ASA に対する直接要求は許可されていません。 | Global.asa ファイルまたは Global.asax ファイルに対する直接要求が送信されました。詳細については、以下のサポート技術情報番号をクリックしてください。942030IIS 7.0 でホストされている Web サイトにアクセスする際のエラー メッセージ “HTTP エラー 500.15 – GLOBAL.ASA に対する直接要求は許可されていません” が表示される |
500.19 | 構成データが無効です。 | この HTTP 状態コードは、関連付けられた Applicationhost.config ファイルまたは Web.config ファイルの問題により発生します。詳細については、以下のサポート技術情報番号をクリックしてください。942055IIS 7.0 でホストされている Web サイトにアクセスする際のエラー メッセージ “HTTP エラー 500.19 – 内部サーバー エラー” が表示される |
500.100 | 内部 ASP エラー。 | ASP (Active Server Pages)ページの処理中にエラーが発生しています。 エラーについての詳細な情報を取得するには、Web ブラウザで HTTP エラー メッセージの簡易表示を無効にしてください。 また、IIS ログに、発生しているエラーに対応する ASP エラー番号が表示される場合があります。ASP エラー メッセージの詳細と ASP エラー メッセージの意味を参照するには、以下のサポート技術情報番号をクリックしてください。294271ASP エラー コード |
出典:IIS 7 以降のバージョンの HTTP 状態コード|Microsoft
白いスクリーンとメッセージが表示される場合
500エラーが返された場合にブラウザ上で表示される内容にはいくつかの例があります。例えば以下のように白いスクリーンとメッセージが表示される場合です。
画像引用元:WordPressウェブサイトの「500 Internal Server Error」の処理方法|Kinsta
メッセージの和訳は以下のとおりです。
サーバーに内部エラー、もしくは機器設定エラーが起きたことにより、あなたのリクエストは処理されませんでした。webmaster@domain.comよりサーバー管理者に連絡を取り、エラーが起きたこと、そしてエラーを引き起こしたと思われるアクションについて知らせてください。このエラーについてのさらなる情報が、サーバーエラーログに記録されている場合があります。
カスタムのエラーページが表示される場合
Webサイト管理者が独自にカスタムしたエラーページが表示される場合もあります。参考に”YouTube”での500エラーページが掲載されている画像を引用します。
画像引用元:WordPressウェブサイトの「500 Internal Server Error」の処理方法|Kinsta
WordPress (ワードプレス)の500エラーとSEO
500エラーはサーバーシステムの重要な欠陥である場合もあり、修復に時間がかかることもあるため、Webサイト管理者にとっては検索エンジンによる検索結果の順位落ちを気にするでしょう。
実際に500エラーとSEOの関係はどのようになっているかについて解説します。
結論として500エラーはSEOに悪影響を及ぼす可能性があります。なぜならGoogleのボット (クローラー)がWebサイトを巡回する際に、500エラーが長時間発生していると”Webサイトに問題がある”として取り扱うことがあるためです。
検索エンジンとしても問題のあるWebサイトを上位に表示してしまうと、検索ユーザーの検索体験を損なう危険があり、検索エンジン自体の信用にも悪影響を及ぼす危険性が推測されます。そのため、500エラーが長期化しているWebサイトは、検索順位に影響が出ることは避けられないといった見方があります。
WordPress (ワードプレス)の500エラーの原因
500エラーが返されてしまう原因は多岐にわたります。なかでもプラグインやテーマを更新した時、テーマを編集した時、設定を変更した時、別サーバーに移行した時などに発生する事例が多いようです。
以降ではそのような変化を加えた際に、実際に何が原因で500エラーが返されてしまうのかを解説します。
.htaccess (ドット・エイチ・ティ・アクセス)ファイルの記述ミス
.htaccessファイルはWebサーバーの”Apache (アパッチ)”で使用される設定ファイルです。パーマリンク設定を更新した際などに.htaccessファイルの記述ミスが生じることがあります。
効力のある設定ファイルですが、知識に乏しい場合には編集をするのは避けましょう。
CGIプログラムのソースコードにおける誤り
CGIとは”Common Gateway Interface”の略称で、Webサーバーと連携して動的な処理が可能になるものです。例えば以下のようなページを作成できます。
- カウンター
- チャット
- 掲示板
- アンケートフォーム
- 検索フォーム
500エラーは内部サーバーエラーとも呼ばれますが、サーバーと連携するCGIプログラムに誤りがある場合も500エラーを返される場合があります。
パーミッションの設定ミス
パーミッションとはアクセス権のことを指し、各ディレクトリ (フォルダ)やファイルごとに設定できるものです。
パーミッションの設定にミスがある場合には403エラーが返される場合もありますが、500エラーが返される場合もあります。
PHPのバージョンの不一致
WordPressの基盤となる”PHP”と、WordPressで使用するテーマやプラグインにバージョンの不一致があると内部エラーが発生し、500エラーを返される場合があります。
例えばWebサーバーがPHP 7.4.4であるのに対しプラグインがPHP7.4.4に対応していない場合などに発生します。
自動バックアップ
特に問題となりそうな変更を加えていないのにもかかわらず、突然500エラーが発生する場合もあります。その場合には自動バックアップ機能を疑ってみると良いでしょう。
自動バックアップ機能により、Webサーバーの空き容量は日を追うごとに減っていきます。そこで空き容量がなくなってしまうと新たにファイルを作成できなくなり、500エラーを返してしまう場合もあるのです。
自動バックアップ機能を活用する場合には、サーバーの空き容量と相談しながらバックアップ頻度やバックアップ対象を考える必要があります。
WordPressの構成ファイルの破損や、外部から攻撃を受けている可能性
WordPressの構成ファイルの破損や、外部から攻撃を受けている場合にも500エラーを返される場合があります。この場合にはさらなる原因の特定に時間を要すこともありますが、エラーログなどを確認すると原因の特定に近づきます。
解決方法については後述するためぜひ参考にしてください。
WordPress (ワードプレス)の500エラーの内容を表示する方法
500エラーが返された場合に500エラーの内容を出力できます。内容を出力することによってエラーの内容がわかり、解決までに費やす時間や手間を抑えることが期待できます。
具体的には下記コードを”wp-config.php”の”define(‘WP_DEBUG’,false);”と記述されている行と置き換えることで500エラーの内容を出力可能です。
define(‘WP_DEBUG’, true);
define(‘WP_DEBUG_LOG’, false);
define(‘WP_DEBUG_DISPLAY’,true);
ini_set(‘display_errors’,1);
error_reporting(E_ALL);
出力結果は以下のようなものとなり、エラーファイルとエラー行の追求が可能です。
Fatal error: Call to undefined function XXX() in /home/users/…/settings.php on line 27
しかしサーバーによっては、エラーが出力されない場合もあるため注意してください。
WordPress (ワードプレス)の500エラーの解決方法
ここからは実際に500エラーが返された場合の解決方法を解説していきます。ご自身のWebサイトにおけるエラー状況にあわせて参考にしてください。
再読み込みする
500エラーが一時的な過負荷によるものである場合、数分ほど待ってページを再読み込みすれば500エラーが解消されることもあります。
しかしこの方法は一時的に500エラーを解消できるもので、根本的な要因の解決にはなっていないため次の解決策を講じることが推奨されています。
Webサイトのアクセスが多く、サーバーが過負荷状態であるとは言え、このような現象が多発するのであればWebサイトの訪問者にとってWebサイトの信頼性が揺らぐからです。
サーバー自体の契約スペック変更も考えましょう。
キャッシュをクリアする
自身が使っているブラウザのキャッシュをクリアすることで問題が解消する場合もあります。これはブラウザのキャッシュが何らかの悪影響を及ぼしている場合です。
キャッシュをクリアして問題が解決しなかった場合でも、キャッシュの問題とサーバーの問題を切り分けて要因の特定に繋げられます。キャッシュをクリアしたくない場合にはブラウザの”シークレットモード”や、”プライベートモード”を活用すると良いでしょう。
サーバーのログを確認する
”WordPress (ワードプレス)の500エラーの内容を表示する方法”でもエラーログを出力する方法を紹介しましたが、ご利用のホスティングサービスによっては、マイページサーバー管理画面などから”エラーログ”を参照できる場合があります。以下画像は”XSERVER (エックスサーバー)” の例です。
もしホスティングサービスによってサーバーのエラーログを参照できない場合は”WordPress (ワードプレス)の500エラーの内容を表示する方法”で紹介したコードの”define(‘WP_DEBUG_LOG’, false);”部分を”true”とします。
取得したログファイルはエクセルなどで確認できます。
エクセルを起動し、”データ”タブの”テキストまたはCSVから”を選択した後、文字コードは”UTF-8”を選択してインポートしてください。
プラグインとテーマを見直す
プラグインやテーマといった外部のソースコードが500エラーの要因になる場合があります。その場合にはまずプラグインやテーマが問題となっているのかどうかを確認します。
具体的にはプラグインを無効にするためにWordPress管理画面から、”プラグイン”を選択しプラグインの一括無効化を行いましょう。
管理画面にログインできない場合には”FTPソフト”でサーバーに接続し、プラグインフォルダの名前を変更します。
これらの操作によりプラグインを無効化し、500エラーが発生しなくなればプラグインによって500エラーが発生しています。問題となっているプラグインを特定するためには1つ1つプラグインを有効にしていき、どのプラグインを有効にした時に500エラーが発生したかをモニタリングすることで特定できます。
問題となるプラグインを特定できた場合には、アンインストールするかプラグイン開発者に問い合わせるなどして対応しましょう。
WordPressのコアを再アップロードする
立ち上げてから年数が経過したWebサイトなどの場合、WordPressのコアファイルが破損しているために500エラーが発生している可能性も考えられます。そのためWordPressのコアファイルのみを再インストールしてみても良いでしょう。
実際にはFTPソフトなどを使用して最新版のWordPressファイルをダウンロード後、再インストールを行いますが、実施の前には必ずバックアップをとるようにしてください。
パーミッションを変更する
サーバーのファイルやフォルダのパーミッション (アクセス権)によって500エラーが返される場合もあります。そのような場合にはサーバー上のフォルダやファイルが適切なパーミッションであることを確認し、異なっていれば修正します。
どのようにパーミッションを設定するべきかについては以下を参考にしてください。
- ファイルは644または640
- フォルダは755または750
- ”wp-config.php”ファイルは440または400
参考:ファイルパーミッションの変更|WordPress.ORG
PHPのメモリ制限を増やす
WordPressの基盤となっているプログラミング言語”PHP”ですが、サーバーではPHPのメモリ制限が設定されています。この制限を超えてしまう場合に500エラーを返されることがあります。
この場合の対策としてメモリ制限を緩くすることが可能です。メモリ制限について、さまざまな環境別に解説します。
cPanelの場合
”cPanel”はWebベースのインタフェースで、Webサーバーを管理するダッシュボードのことを指します。お使いのホスティングサービスによって”cPanel”を利用している場合としていない場合があります。
”cPanel”の場合には”Select PHP Version”というソフトウェアで”Switch to PHP Options”を選択し”memory_limit”の値を変更することでメモリ制限を増やせます。
Apache (アパッチ)の場合
ApacheもWebサーバーソフトウェアの1つで、Webサーバーソフトウェアの世界シェアの大半を占める人気なものです。Apacheを利用している場合には、”.htaccess”ファイルを以下のように編集することでメモリ制限を増やせます。
php_value memory_limit 128M
php.iniファイルの場合
”php.ini”ファイルでもメモリ制限の値を変更できます。具体的にはFTPソフトなどでWebサーバーに接続し”php.ini”ファイルを編集します。
この場合には以下のような記述を追加しましょう。
memory_limit = 128M
wp-config.phpの場合
”wp-config.php”ファイルの先頭に以下のコードを記述する方法もあります。
define(‘WP_MEMORY_LIMIT’, ‘128M’);
.htaccessファイルの作成
”.htaccess”ファイルの異常によって500エラーが返されてしまう場合もあります。.htaccessファイルの異常を修復する際は、編集ではなく新規作成することが推奨されます。
通常の場合、新規作成はWordPress上でパーマリンクを再保存すれば良いですが、500エラーが発生している場合はできません。そのような場合には以下のように記述してサーバーにアップロードします。
BEGIN WordPress
RewriteEngine On
RewriteBase /
RewriteRule ^index.php$ – [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
END WordPress
ホスティング会社に連絡する
これまでに紹介した内容を実施しても500エラーが解決しなかった場合は、ホスティング会社に問い合わせましょう。
WordPress (ワードプレス)の500エラーまとめ
WordPressの500エラーはサーバーがリクエストを実行できない場合に返されるエラーコードです。一時的な場合は問題ありませんが、頻発する場合や長期化する場合はSEOにも悪影響生じる可能性が高まります。
500エラーが返された場合にはぜひ落ち着いて、本記事を参考にしながらトラブルシューティングを実施してください。