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 # 最近のエラー