メインコンテンツまでスキップ

500 エラーとデバッグ

500 内部サーバーエラーの診断と修正方法です。


ステップ 1:ログを確認する

最も重要なステップです。Laravel はすべてのエラーを以下に記録します:

tail -100 storage/logs/laravel.log

正確なエラーメッセージ、ファイル、行番号が表示されます。


ステップ 2:デバッグモードを有効化(一時的に!)

APP_DEBUG=true

ページを更新すると、以下を含む詳細なエラーページが表示されます:

  • エラーメッセージ
  • スタックトレース
  • リクエストの詳細
  • 環境情報
警告

デバッグ後は直ちに APP_DEBUG=false に設定してください!


よくある 500 エラー

「The stream or file could not be opened」

原因: ストレージパーミッションの問題。

sudo chmod -R 775 storage bootstrap/cache
sudo chown -R www-data:www-data storage bootstrap/cache

「No application encryption key has been specified」

原因: APP_KEY が欠落または無効。

php artisan key:generate

「SQLSTATE[HY000] Connection refused」

原因: データベース接続の失敗。

.env のデータベース設定を確認し、MySQL が起動していることを確認してください。

「Class 'X' not found」

原因: Composer の依存関係が欠落。

composer install --no-dev --optimize-autoloader
php artisan config:clear

「View [x] not found」

原因: ビューファイルが欠落または破損。

php artisan view:clear

ファイルが本当に欠落している場合は、元のパッケージから再アップロードしてください。

「Maximum execution time exceeded」

原因: 長時間実行される処理(バックアップ、マイグレーション、AI 分析)。

PHP タイムアウトを増やします:

max_execution_time = 300

サポート用のデバッグ情報の収集

バグを報告する際は以下を含めてください:

php -v                          # PHP バージョン
php artisan --version # Laravel バージョン
mysql --version # MySQL バージョン
cat .env | grep -E "^(APP_|DB_|MAIL_|QUEUE_)" # 設定(パスワードなし!)
tail -50 storage/logs/laravel.log # 最近のエラー

次のステップ