WordPress 500 Internal Server Error
「500 Internal Server Error」「サーバー内部エラー」が表示されるエラーの原因と解決方法を詳しく解説します。サーバーエラーは深刻に見えますが、ほとんどの場合は簡単に解決できます。
⚠️ このような症状が出ていませんか?
- 「500 Internal Server Error」と表示される
- 「サーバー内部エラー」と日本語で表示される
- 「The website cannot display the page - HTTP 500」と表示される
- サイト全体にアクセスできない
- 管理画面だけ500エラーが出る
- 特定のページだけエラーが出る
主な原因
1. .htaccessファイルの問題
最も多い原因です。.htaccessファイルに文法エラーがある、または破損している場合に発生します。
2. PHPメモリ不足
WordPressが使用できるメモリ上限に達した場合に発生します。
3. プラグインの競合・エラー
新しくインストールしたプラグイン、または更新したプラグインがエラーを起こしている場合があります。
4. テーマの問題
テーマのfunctions.phpに文法エラーがある、またはテーマ自体に問題がある場合です。
5. PHPバージョンの非互換性
サーバーのPHPバージョンが古すぎる、または新しすぎてWordPress・プラグイン・テーマと互換性がない場合です。
6. ファイルのパーミッション設定
ファイルやフォルダのパーミッション(アクセス権限)が間違っている場合に発生します。
解決方法(優先度順)
.htaccessファイルを確認・リセット
最も効果的で安全な解決方法です。
手順:
- FTPソフトでサーバーに接続
- WordPressがインストールされているディレクトリ(public_htmlなど)を開く
.htaccessファイルを探す(隠しファイルなので表示設定を確認)- .htaccessをダウンロード(バックアップ)
- サーバー上の.htaccessファイルをリネーム(.htaccess_oldなど)
- サイトにアクセスして確認
- 解決すれば、WordPress管理画面の「設定」→「パーマリンク設定」で「変更を保存」をクリック
- 新しい.htaccessが自動生成される
プラグインをすべて無効化
プラグインが原因かどうかを確認します。
手順:
- FTPで
/wp-content/plugins/フォルダを開く - 「plugins」フォルダ名を「plugins_old」に変更
- サイトにアクセスして確認
- エラーが解消されれば、プラグインが原因
- フォルダ名を「plugins」に戻す
- 管理画面からプラグインを一つずつ有効化して原因を特定
PHPメモリ上限を増やす
メモリ不足が原因の場合に有効です。
方法1: wp-config.phpを編集
- FTPで
wp-config.phpをダウンロード - 「/* 編集が必要なのはここまでです ! 」の直前に以下を追加:
define('WP_MEMORY_LIMIT', '256M');
- 保存してアップロード
方法2: php.iniを編集(サーバーで許可されている場合)
- php.iniファイルに以下を追加:
memory_limit = 256M
テーマをデフォルトに戻す
テーマが原因かどうかを確認します。
手順:
- FTPで
/wp-content/themes/フォルダを開く - 現在使用しているテーマのフォルダ名を変更
- WordPressが自動的にデフォルトテーマに切り替わる
- サイトを確認
PHPエラーログを確認
詳細なエラー情報を確認して原因を特定します。
手順:
- wp-config.phpにデバッグモードを追加:
define('WP_DEBUG', true);
define('WP_DEBUG_LOG', true);
define('WP_DEBUG_DISPLAY', false);
- エラーが発生するページにアクセス
/wp-content/debug.logファイルを確認- エラーメッセージから原因を特定
PHPバージョンを確認・変更
PHPバージョンの非互換性が原因の場合があります。
手順:
- レンタルサーバーの管理画面にログイン
- PHP設定・PHPバージョン設定を開く
- 現在のPHPバージョンを確認
- WordPress推奨バージョン(PHP 8.0以上)に変更
- 古いプラグインを使用している場合はPHP 7.4に下げてみる
ファイルパーミッションを確認
パーミッション設定が原因の場合があります。
推奨設定:
- フォルダ: 755
- ファイル: 644
- wp-config.php: 600 または 644
FTPで変更:
- FTPソフトで該当ファイル/フォルダを右クリック
- 「ファイル属性」または「パーミッション」を選択
- 適切な数値を入力
サーバーのエラーログを確認
レンタルサーバーのエラーログから詳細な情報を確認します。
手順:
- レンタルサーバーの管理画面にログイン
- 「エラーログ」または「ログファイル」を開く
- 最新のエラーメッセージを確認
- エラーメッセージから原因を特定
予防策
1. 定期的なバックアップ
- 週1回以上の自動バックアップを設定
- 特に.htaccessとwp-config.phpはローカルに保存
2. プラグイン・テーマの更新は慎重に
- 更新前に必ずバックアップ
- 可能であればステージング環境でテスト
3. PHPバージョンは適切に保つ
- WordPress推奨バージョンを使用
- 古すぎるバージョンは避ける
4. .htaccessの編集は慎重に
- 編集前に必ずバックアップ
- 文法エラーがないか確認
よくある質問
Q1. .htaccessファイルが見つかりません
A. .htaccessは隠しファイルなので、FTPソフトの設定で「隠しファイルを表示」をONにしてください。それでも見つからない場合は、.htaccessが存在しない可能性があります。
Q2. すべての方法を試しても解決しません
A. サーバー側の問題の可能性があります。レンタルサーバーのサポートに連絡してください。サーバーのエラーログを確認してもらえます。
Q3. 特定のページだけ500エラーが出ます
A. そのページで使用しているショートコードやプラグイン機能に問題がある可能性があります。該当ページを編集して、最近追加した要素を削除してみてください。
Q4. 管理画面だけ500エラーが出ます
A. プラグインの問題の可能性が高いです。FTPでプラグインフォルダ名を変更してプラグインを無効化してみてください。
Q5. エラーの詳細情報が表示されません
A. デバッグモードを有効にすると、詳細なエラーメッセージが表示されます。wp-config.phpにWP_DEBUGの設定を追加してください。
まとめ
500エラーが出た時のチェックリスト
- ✓ .htaccessファイルをリネームして確認
- ✓ プラグインフォルダ名を変更して無効化
- ✓ PHPメモリ上限を増やす
- ✓ テーマをデフォルトに戻す
- ✓ デバッグモードでエラーログを確認
- ✓ PHPバージョンを確認・変更
- ✓ ファイルパーミッションを確認
- ✓ 解決しなければサーバー会社に連絡
500エラーは、ほとんどの場合.htaccessファイルかプラグインの問題です。落ち着いて、このページで紹介した方法を順番に試してみてください。