PHPの500エラーについて

採用はこちら

PHPの500エラーとは、Webサイトにアクセスした際に表示される 「HTTP 500 Internal Server Error」 のことです。

これは、ユーザー側のブラウザや通信環境ではなく、サーバー側で何らかの問題が発生し、ページを正常に表示できなかった状態を意味します。

PHPサイトでは、PHPファイルの記述ミス、.htaccess の設定ミス、ファイル権限の問題、PHPバージョンの不一致、メモリ不足、WordPressのプラグイン不具合など、さまざまな原因で500エラーが発生します。

500エラーは原因が画面上に詳しく表示されないことが多いため、発生時にはエラーログを確認しながら、原因を一つずつ切り分けることが重要です。

目次

500エラーの基本的な意味

HTTPステータスコードには、Webサーバーがブラウザに対して返す処理結果が含まれています。

代表的なステータスコードには、以下のようなものがあります。

ステータスコード意味
200正常に表示された
301 / 302リダイレクト
403アクセスが禁止されている
404ページが見つからない
500サーバー内部エラー
503サーバーが一時的に利用できない

このうち500エラーは、サーバー内部で予期しない問題が起き、リクエストを処理できなかった場合に返されるエラーです。

PHPサイトの場合、ユーザーがページにアクセスすると、サーバー上でPHPファイルが実行されます。

その処理中に重大なエラーが起きると、サーバーは正常なページを返せず、500エラーを表示します。

ただし、実際にブラウザへ500エラーとして表示されるかどうかは、サーバー設定やPHPのエラー表示設定、CMS・フレームワークの仕様によって異なります。

場合によっては、白い画面だけが表示されたり、PHPのエラーメッセージが表示されたりすることもあります。

PHPで500エラーが起きる主な原因

PHPの500エラーは、原因が1つに限定されるものではありません。

代表的な原因としては、以下が挙げられます。

  • PHPの構文エラー
  • PHPのFatal error
  • .htaccess の記述ミス
  • ファイルやディレクトリの権限ミス
  • PHPバージョンの不一致
  • メモリ不足
  • 処理時間のタイムアウト
  • WordPressのテーマやプラグインの不具合
  • データベース接続エラー
  • Composerやライブラリの読み込みエラー
  • サーバー設定の問題

ここからは、それぞれの原因について詳しく解説します。

PHPの構文エラー

セミコロンや括弧の閉じ忘れ

PHPファイル内に文法ミスがあると、500エラーの原因になることがあります。

たとえば、以下のコードはセミコロンが不足しています。

<?php
echo "Hello World"

正しくは以下のように記述します。

<?php
echo "Hello World";

また、括弧の閉じ忘れもよくあるミスです。

<?php
if ($user) {
    echo "ログイン中";

この場合、最後に } が不足しています。

正しくは以下です。

<?php
if ($user) {
    echo "ログイン中";
}

PHPの構文エラーは、開発環境では画面にエラーメッセージが表示されることがあります。

しかし、本番環境ではセキュリティ上の理由からエラー表示を無効にしているケースが多く、詳細なエラー内容が表示されずに500エラーだけが出ることがあります。

構文チェックには php -l を使う

PHPファイルの構文エラーを確認したい場合は、コマンドラインで以下を実行します。

php -l ファイル名.php

例:

php -l index.php

問題がなければ、以下のように表示されます。

No syntax errors detected in index.php

構文エラーがある場合は、エラーの種類や該当行が表示されます。

ただし、サーバーによっては、コマンドラインで使われるPHPとWebサーバー経由で実行されるPHPのバージョンが異なる場合があります。

そのため、CLI上で問題がなくても、Web上ではエラーになる可能性があります。

PHPのFatal error

未定義の関数やクラスを呼び出している

PHPの文法自体に問題がなくても、実行時に重大なエラーが発生すると500エラーになることがあります。

たとえば、存在しない関数を呼び出した場合です。

<?php
my_custom_function();

my_custom_function() が定義されていない場合、PHPは処理を続けることができず、Fatal errorになります。

また、存在しないクラスを使った場合も同様です。

<?php
$user = new UserService();

UserService クラスが読み込まれていない場合、クラスが見つからないエラーが発生します。

ファイルの読み込み漏れにも注意する

独自PHPサイトやフレームワークでは、必要なファイルの読み込み漏れによって500エラーが発生することがあります。

たとえば、以下のようなケースです。

<?php
require_once 'functions.php';

このとき、functions.php が存在しない、パスが間違っている、権限が不足しているといった問題があると、PHPの実行に失敗します。

LaravelやSymfonyなどのフレームワークでは、名前空間の指定ミス、autoloadの不具合、Composerの依存関係エラーなどが原因になることもあります。

.htaccess の記述ミス

Apache環境ではよくある原因

Apacheサーバーを利用している場合、.htaccess の記述ミスは500エラーの代表的な原因です。

.htaccess は、リダイレクト、URL書き換え、アクセス制御、キャッシュ設定などを行うための設定ファイルです。

たとえば、以下のような記述ミスがあるとエラーになる可能性があります。

RewriteEngine On
RewriteRule ^old-page$ /new-page [R=301,L

この例では、最後の ] が不足しています。

正しくは以下です。

RewriteEngine On
RewriteRule ^old-page$ /new-page [R=301,L]

.htaccess の記述に問題がある場合、PHPファイル自体に問題がなくても500エラーが発生します。

php_valuephp_flag の使用に注意する

.htaccess に以下のようなPHP設定を書くと、環境によっては500エラーになることがあります。

php_value memory_limit 256M

昔ながらのApacheモジュール版PHPでは使える場合がありますが、PHP-FPMやCGI/FastCGI環境では、.htaccess から php_valuephp_flag を指定できないことがあります。

特にレンタルサーバーでは、PHP設定を変更する方法がサーバーごとに決められています。

たとえば、以下のような方法を使うケースがあります。

  • サーバー管理画面から変更する
  • php.ini を編集する
  • .user.ini を使う
  • WordPressの wp-config.php で一部設定する

.htaccess を編集した直後に500エラーが出た場合は、まず .htaccess の記述ミスを疑いましょう。

ファイルやディレクトリの権限ミス

パーミッションが不適切だと500エラーになることがある

PHPファイルやディレクトリの権限が不適切な場合も、500エラーが発生することがあります。

一般的な目安は以下です。

種類一般的な権限
ディレクトリ755
PHPファイル644
CGIとして実行するファイル755が必要な場合あり

たとえば、PHPファイルの権限が 777 になっていると、サーバーによってはセキュリティ上の理由で実行を拒否し、500エラーになることがあります。

一方で、必要な読み取り権限や実行権限が不足している場合も、PHPファイルを正しく処理できません。

777には安易に設定しない

トラブル対応時に、すべてのファイルやディレクトリを 777 にしてしまうケースがありますが、これは避けるべきです。

777 は、所有者・グループ・その他すべてのユーザーに読み取り、書き込み、実行権限を与える設定です。

一時的に動作するように見える場合もありますが、セキュリティリスクが非常に高くなります。

また、サーバーによっては 777 のファイル実行を拒否し、500エラーの原因になることもあります。

多くのPHPサイトでは、基本的に以下を目安にします。

ディレクトリ:755
ファイル:644

ただし、最適な権限はサーバーの実行ユーザーや所有者設定によって変わります。

レンタルサーバーを利用している場合は、サーバー会社の推奨設定も確認しましょう。

PHPバージョンの不一致

古いコードが新しいPHPで動かないケース

PHPのバージョン変更によって、これまで動いていたサイトが500エラーになることがあります。

たとえば、古いPHPで使われていた関数が新しいPHPで非推奨または削除されていたり、以前は警告で済んでいた処理がFatal errorになる場合があります。

特にPHP 7系からPHP 8系へ変更した際には、互換性の問題が発生することがあります。

WordPressの場合でも、古いテーマや更新が止まっているプラグインが新しいPHPバージョンに対応していないと、500エラーの原因になります。

新しい構文が古いPHPで使えないケース

反対に、新しいPHPの構文を古いPHP環境で使うとエラーになります。

たとえば、以下のようなnull合体演算子は古いPHPでは使えません。

<?php
echo $name ?? 'ゲスト';

サーバー移転やPHPバージョン変更を行った後に500エラーが出た場合は、現在のPHPバージョンとコードの互換性を確認しましょう。

PHPバージョンは、コマンドラインで以下のように確認できます。

php -v

また、PHPファイルに以下を記述して確認する方法もあります。

<?php
phpinfo();

ただし、phpinfo() はサーバー情報を大量に表示するため、確認後は必ず削除してください。

PHPのメモリ不足

メモリ上限を超えると処理が止まる

PHPには、1回の処理で使用できるメモリ上限があります。

大量のデータを処理したり、大きな画像をリサイズしたり、WordPressで重いプラグインを使ったりすると、メモリ不足によって500エラーが発生することがあります。

代表的なエラーは以下です。

Allowed memory size of 134217728 bytes exhausted

この場合、PHPの memory_limit を増やすことで改善する可能性があります。

memory_limit = 256M

WordPressでは、wp-config.php に以下を追加することでメモリ上限を増やせる場合があります。

define('WP_MEMORY_LIMIT', '256M');

設定値を上げるだけでは根本解決にならないこともある

メモリ不足は、単純にメモリ上限が低いだけでなく、コードや処理内容に問題がある場合もあります。

たとえば、以下のようなケースです。

  • 無限ループが発生している
  • 大量データを一度に読み込んでいる
  • 画像処理が重すぎる
  • ループ内で大量のデータベースクエリを実行している
  • WordPressプラグインが過剰にリソースを使っている

一時的な対処として memory_limit を増やすのは有効ですが、同じエラーが繰り返される場合は、処理内容そのものを見直す必要があります。

処理時間のタイムアウト

PHPの処理が長すぎるとエラーになる

PHPの処理が長時間続くと、サーバー側で処理が打ち切られ、500エラーや504エラーになることがあります。

よくあるケースは以下です。

ケース
大量データの一括処理CSVインポート、商品データ更新
外部API通信APIの応答が遅い
画像処理大きな画像のリサイズ
データベース処理重いSQL、ループ内クエリ
バックアップ処理WordPressのバックアッププラグイン

PHPには、最大実行時間を指定する設定があります。

max_execution_time = 30

この場合、PHP処理が30秒を超えると、タイムアウトする可能性があります。

500ではなく502や504になることもある

タイムアウトが原因の場合、必ず500エラーになるとは限りません。

サーバー構成によっては、以下のようなエラーになることもあります。

エラー主な意味
500サーバー内部エラー
502上流サーバーから不正な応答を受け取った
504上流サーバーの応答がタイムアウトした

特にNginx + PHP-FPMの構成では、PHP-FPMとの通信に問題がある場合、502や504が表示されることもあります。

WordPressで500エラーが起きる主な原因

WordPressサイトでは、PHPの500エラーが比較的よく発生します。

主な原因は以下です。

原因内容
プラグインの不具合更新後の互換性エラーなど
テーマの不具合functions.php の記述ミスなど
.htaccess の破損パーマリンクやリダイレクト設定の問題
PHPバージョン不一致古いテーマ・プラグインが新しいPHPに非対応
メモリ不足プラグイン過多や重い処理
WordPress本体更新の失敗一部ファイルの更新失敗など

プラグインを停止する

WordPressで500エラーが発生し、管理画面にも入れない場合は、プラグインが原因かどうかを切り分けます。

FTPやサーバーのファイルマネージャーで、以下のフォルダ名を変更します。

wp-content/plugins

たとえば、以下のように変更します。

plugins_old

これにより、すべてのプラグインが一時的に無効化されます。

サイトが表示されるようになった場合は、プラグインのいずれかが原因です。

その後、フォルダ名を元に戻し、プラグインを1つずつ有効化して原因を特定します。

ただし、全プラグインを停止すると、問い合わせフォーム、EC機能、会員機能、セキュリティ機能なども一時的に停止する可能性があります。

原因になっていそうなプラグインが分かっている場合は、そのプラグインのフォルダだけをリネームする方法も有効です。

テーマを切り替える

テーマが原因で500エラーが発生することもあります。

特に、functions.php を編集した直後に500エラーが出た場合は、テーマ側のPHPエラーを疑いましょう。

FTPで現在使用中のテーマフォルダ名を変更すると、WordPressがそのテーマを読み込めなくなります。

テーマフォルダは以下にあります。

wp-content/themes/

たとえば、現在のテーマが my-theme の場合、以下のように変更します。

my-theme

my-theme_old

にします。

別の有効なテーマが存在すれば、WordPressが別テーマに切り替わる場合があります。

ただし、必ず復旧するとは限りません。

可能であれば、管理画面、WP-CLI、またはデータベースから安全にテーマを切り替える方法も検討しましょう。

.htaccess を再生成する

WordPressでは、.htaccess の破損や記述ミスによって500エラーが発生することがあります。

まず、FTPやファイルマネージャーで以下のファイル名を変更します。

.htaccess

たとえば、以下のように変更します。

.htaccess_old

これでサイトが表示される場合は、.htaccess が原因の可能性があります。

管理画面に入れる場合は、以下の操作で .htaccess を再生成できます。

設定 → パーマリンク → 変更を保存

この操作により、WordPressの基本的なリライトルールが再生成されます。

WordPressでデバッグログを確認する方法

wp-config.php にデバッグ設定を追加する

WordPressで500エラーの原因を調べる場合は、デバッグログを有効にすると原因を特定しやすくなります。

wp-config.php に以下を追加します。

define('WP_DEBUG', true);
define('WP_DEBUG_LOG', true);
define('WP_DEBUG_DISPLAY', false);

この設定により、エラー内容が以下のファイルに記録されます。

wp-content/debug.log

WP_DEBUG_DISPLAYfalse にしているため、画面上にはエラーを表示せず、ログにのみ記録できます。

調査後はデバッグ設定を戻す

本番環境でデバッグログを有効にした場合は、調査後に無効化しましょう。

define('WP_DEBUG', false);

また、debug.log にはサーバーパス、SQL、プラグイン名、場合によっては個人情報やAPIキーに関わる情報が記録される可能性があります。

そのため、調査後はログファイルの内容を確認し、必要に応じて削除またはアクセス制限を行うことが大切です。

データベース接続エラー

DB設定の誤りでPHP処理が失敗することがある

PHPサイトでは、MySQLなどのデータベースに接続できない場合にもエラーが発生します。

WordPressの場合は、wp-config.php の以下の設定を確認します。

define('DB_NAME', 'database_name');
define('DB_USER', 'database_user');
define('DB_PASSWORD', 'database_password');
define('DB_HOST', 'localhost');

よくある原因は以下です。

原因内容
DB名の間違い指定したデータベースが存在しない
DBユーザー名の間違い接続ユーザーが正しくない
DBパスワードの間違いパスワード変更後に設定を更新していない
DBホストの間違いlocalhost 以外の指定が必要な場合がある
DBサーバー障害データベースサーバーが停止している

WordPressでは専用のエラー画面が出ることもある

WordPressの場合、データベース接続に失敗すると、500エラーではなく「データベース接続確立エラー」と表示されることがあります。

一方、独自PHPサイトやLaravelなどのフレームワークでは、例外処理や本番環境の設定によって500エラーとして表示されることがあります。

そのため、500エラーが出た場合でも、データベース接続に関するログが残っていないか確認しましょう。

Composerやライブラリの不具合

autoloadの不具合で500エラーになることがある

LaravelやComposerを利用しているPHPアプリケーションでは、依存ライブラリの読み込みに失敗すると500エラーが発生することがあります。

たとえば、以下のような原因が考えられます。

  • vendor ディレクトリが存在しない
  • vendor/autoload.php が読み込めない
  • Composerの依存関係が壊れている
  • クラス名や名前空間が間違っている
  • 本番環境に必要なライブラリがインストールされていない

クラスが見つからない場合は、以下のコマンドでautoloadを再生成すると改善することがあります。

composer dump-autoload

本番環境での composer update には注意する

Composer関連のトラブル対応では、以下のようなコマンドが使われることがあります。

composer install
composer dump-autoload

本番環境では、composer.lock に基づいて依存関係をインストールする以下のコマンドが一般的です。

composer install --no-dev

一方で、以下のコマンドには注意が必要です。

composer update

composer update は依存パッケージのバージョンを更新するため、予期しない互換性問題を引き起こす可能性があります。

本番環境で安易に実行するのではなく、開発環境や検証環境で確認してから反映するのが安全です。

500エラーが出たときの確認手順

500エラーが発生した場合は、闇雲に修正するのではなく、順番に原因を切り分けることが重要です。

直前に変更した内容を確認する

まず、エラーが発生する直前に何を変更したかを確認します。

直前の作業疑うべき原因
PHPファイルを編集した構文エラー、関数ミス
.htaccess を編集したRewriteRuleやPHP設定のミス
WordPressプラグインを更新したプラグインの互換性エラー
WordPressテーマを編集したfunctions.php の記述ミス
PHPバージョンを変更した互換性エラー
サーバー移転をしたパス、権限、DB設定ミス
SSL化したリダイレクト設定ミス
Composerを更新した依存関係エラー

500エラーは、直前に行った作業が原因になっていることが多いです。

まずは変更前の状態に戻せるか確認しましょう。

エラーログを確認する

500エラーの原因特定で最も重要なのが、エラーログの確認です。

レンタルサーバーの場合、管理画面に以下のような項目が用意されていることがあります。

  • エラーログ
  • アクセスログ
  • サーバーログ
  • PHPエラーログ

VPSや専用サーバーでは、以下のような場所にログがあることが多いです。

Apacheの場合:

/var/log/apache2/error.log

または、

/var/log/httpd/error_log

Nginxの場合:

/var/log/nginx/error.log

PHP-FPMの場合:

/var/log/php-fpm/www-error.log

ログには、以下のような情報が記録されます。

PHP Fatal error: Uncaught Error: Call to undefined function sample_function()

この場合、未定義の関数を呼び出していることが原因です。

PHP Parse error: syntax error, unexpected token

この場合、PHPの構文エラーが原因です。

AH00526: Syntax error on line 12 of /path/to/.htaccess

この場合、.htaccess の12行目に問題があります。

.htaccess を一時的に無効化する

Apache環境で原因が分からない場合は、.htaccess を一時的に無効化して確認します。

.htaccess

を以下のように変更します。

.htaccess_bak

これでサイトが表示されるようになれば、.htaccess が原因の可能性が高いです。

WordPressの場合は、管理画面に入れるようになった後で、パーマリンク設定から .htaccess を再生成しましょう。

ファイル権限を確認する

FTPやサーバー管理画面で、ファイルやディレクトリの権限を確認します。

基本的な目安は以下です。

ディレクトリ:755
ファイル:644

ただし、サーバー環境によって適切な設定は異なります。

特に以下のような状態には注意しましょう。

  • PHPファイルが 777 になっている
  • ディレクトリに必要な実行権限がない
  • ファイル所有者がサーバー実行ユーザーと合っていない
  • アップロード後に権限が変わっている

PHPバージョンを確認する

PHPバージョンの変更後に500エラーが出た場合は、現在のPHPバージョンを確認します。

php -v

WordPressの場合は、以下も確認しましょう。

  • WordPress本体の対応バージョン
  • 使用テーマのPHP対応状況
  • 使用プラグインのPHP対応状況
  • 更新停止しているプラグインの有無

PHP 8系では、古いコードがエラーになるケースもあるため、古いテーマやプラグインを利用しているサイトでは特に注意が必要です。

メモリ不足やタイムアウトを確認する

エラーログに以下のような記録がある場合は、メモリ不足が疑われます。

Allowed memory size exhausted

また、以下のような記録がある場合は、処理時間の超過が疑われます。

Maximum execution time exceeded

この場合、設定値を見直すだけでなく、重い処理の内容も確認しましょう。

よくあるエラーログと原因

500エラーの原因は、エラーログを見ることでかなり絞り込めます。

ログの内容主な原因
PHP Parse errorPHPの構文ミス
PHP Fatal error致命的エラー
Call to undefined function関数が定義されていない
Class not foundクラスの読み込み失敗
Allowed memory size exhaustedメモリ不足
Maximum execution time exceeded処理時間超過
Permission denied権限不足
.htaccess: Invalid command.htaccess の記述ミス
No such file or directoryファイルパスの間違い
Connection refusedDBや外部サービスへの接続失敗

ブラウザ上に表示される500エラーだけでは、原因を正確に判断することはできません。

必ずサーバー側のログを確認しましょう。

500エラーと似たエラーの違い

500エラーと似たエラーには、403、404、502、503、504などがあります。

それぞれ原因が異なるため、混同しないようにしましょう。

403 Forbidden

403は、アクセスが禁止されている場合に表示されます。

主な原因は以下です。

  • ファイルやディレクトリの権限不足
  • IP制限
  • Basic認証の設定ミス
  • WAFによるブロック
  • indexファイルが存在しない
  • サーバー設定でアクセスが拒否されている

404 Not Found

404は、ページやファイルが見つからない場合に表示されます。

主な原因は以下です。

  • URLが間違っている
  • ファイルが存在しない
  • WordPressのパーマリンク設定ミス
  • リダイレクト設定ミス
  • 削除済みページにアクセスしている

502 Bad Gateway

502は、ゲートウェイやプロキシが上流サーバーから正しい応答を受け取れなかった場合に表示されます。

Nginx + PHP-FPM構成で、PHP-FPMが停止している場合などに発生することがあります。

503 Service Unavailable

503は、サーバーが一時的に利用できない場合に表示されます。

主な原因は以下です。

  • サーバー高負荷
  • メンテナンス中
  • アクセス過多
  • リソース制限
  • WordPressのメンテナンスファイル残存

WordPress更新中に失敗すると、以下のファイルが残って503になることがあります。

.maintenance

504 Gateway Timeout

504は、上流サーバーからの応答が時間内に返ってこなかった場合に表示されます。

重いPHP処理、外部APIの応答遅延、データベース処理の遅延などが原因になることがあります。

PHPの500エラーを防ぐための対策

500エラーは、日頃の運用である程度防ぐことができます。

本番環境で直接編集しない

本番サイトのPHPファイルやWordPressの functions.php を直接編集すると、少しのミスでサイト全体が500エラーになることがあります。

安全に作業するには、以下の流れが理想です。

ローカル環境で編集
↓
テスト環境で確認
↓
本番環境へ反映

特にWordPressの functions.php は、構文ミスがあると管理画面にも入れなくなる可能性があります。

変更前にバックアップを取る

PHPファイル、.htaccess、テーマ、プラグイン、データベースは、変更前にバックアップを取っておきましょう。

最低限、以下はバックアップしておくと安心です。

index.php
.htaccess
wp-config.php
functions.php
wp-content/themes/
wp-content/plugins/
データベース

バックアップがあれば、500エラーが発生しても変更前の状態に戻しやすくなります。

PHPバージョン変更前に互換性を確認する

PHPバージョンを変更する前に、使用しているCMS、テーマ、プラグイン、ライブラリが対応しているか確認しましょう。

特にWordPressでは、以下を確認することが重要です。

  • WordPress本体が新しいPHPに対応しているか
  • 使用中のテーマが対応しているか
  • 使用中のプラグインが対応しているか
  • 更新停止しているプラグインがないか
  • 独自カスタマイズ部分が古いPHPコードになっていないか

PHPバージョン変更は、できればテスト環境で確認してから本番に反映しましょう。

エラーログを定期的に確認する

500エラーとして表面化していなくても、サーバー内部ではPHP WarningやDeprecatedが発生している場合があります。

軽微な警告を放置すると、PHPバージョンアップ時に重大なエラーへ変わることがあります。

定期的にログを確認し、小さなエラーのうちに修正しておくことが大切です。

不要なプラグインや古いコードを整理する

WordPressでは、プラグインが増えすぎると、500エラーのリスクも高くなります。

以下のようなプラグインは見直しましょう。

  • 使っていないプラグイン
  • 長期間更新されていないプラグイン
  • PHP 8系に対応していないプラグイン
  • 同じ機能を重複して持つプラグイン
  • エラーや警告を頻繁に出しているプラグイン

独自PHPサイトでも、古いライブラリや不要なコードは定期的に整理することが重要です。

500エラー発生時の応急処置

サイトが突然500エラーになった場合は、まず復旧を優先します。

WordPressの場合

WordPressで500エラーが発生した場合は、以下の順番で確認します。

1. 直前に更新・編集した内容を確認する
2. wp-content/plugins をリネームしてプラグインを停止する
3. 使用中テーマのフォルダ名を変更する
4. .htaccess を一時的に無効化する
5. wp-config.php でデバッグログを有効化する
6. PHPバージョンを変更前に戻す
7. サーバーのエラーログを確認する

特に、プラグイン更新直後に500エラーが出た場合は、プラグインが原因である可能性が高いです。

独自PHPサイトの場合

独自PHPサイトで500エラーが発生した場合は、以下を確認します。

1. 直前に編集したPHPファイルを戻す
2. php -l で構文チェックを行う
3. .htaccess を一時的に無効化する
4. サーバーのエラーログを確認する
5. ファイルやディレクトリの権限を確認する
6. PHPバージョンを確認する
7. Composer利用サイトなら dump-autoload を実行する
8. DB接続や外部APIの接続状況を確認する

最初からすべてを変更するのではなく、1つずつ確認しながら原因を切り分けましょう。

まとめ

PHPの500エラーは、サーバー側でPHP処理や設定に問題が発生し、ページを正常に表示できない状態です。

主な原因としては、以下が挙げられます。

  • PHPの構文エラー
  • Fatal error
  • .htaccess の記述ミス
  • ファイル権限の問題
  • PHPバージョンの不一致
  • メモリ不足
  • 処理時間のタイムアウト
  • WordPressのプラグインやテーマの不具合
  • データベース接続エラー
  • Composerやライブラリの不具合

500エラーは、ブラウザ上の表示だけでは原因を判断しにくいエラーです。

そのため、発生時にはまず以下を確認しましょう。

1. 直前に何を変更したか
2. エラーログに何が記録されているか
3. .htaccess、PHP構文、ファイル権限に問題がないか
4. WordPressならプラグイン・テーマ・デバッグログを確認する

特に重要なのは、エラーログを確認することです。

500エラーは一見すると原因が分かりにくいですが、ログには「どのファイルの何行目で何が起きたか」が記録されていることがあります。

PHPの500エラーに対応する際は、焦って設定を大きく変更するのではなく、ログを確認しながら原因を一つずつ切り分けることが、最も確実な解決方法です。

以上、PHPの500エラーについてでした。

最後までお読みいただき、ありがとうございました。

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!
目次