MeWrite Docs

No application encryption key has been specified

概要

Laravelアプリケーションで暗号化キー(APP_KEY)が設定されていない場合に発生するエラーです。セッション、暗号化されたCookie、パスワードリセットトークンなど、暗号化機能を使用する際に必要です。

エラーメッセージ

No application encryption key has been specified.

または

RuntimeException: No application encryption key has been specified.
Illuminate\Encryption\MissingAppKeyException: No application encryption key has been specified.

原因

このエラーは以下の原因で発生します:

  1. APP_KEY が未設定: .env ファイルに APP_KEY が設定されていない
  2. .env ファイルがない: プロジェクトのルートに .env ファイルが存在しない
  3. キャッシュの問題: 古い設定がキャッシュされている
  4. デプロイ時のミス: 本番環境に .env がコピーされていない

解決策

1. APP_KEY を生成

1
2
3
4
5
# 新しい暗号化キーを生成
php artisan key:generate

# 成功すると以下のようなメッセージが表示される
# Application key set successfully.

2. .env ファイルを作成

1
2
3
4
5
# .env.example から .env をコピー
cp .env.example .env

# キーを生成
php artisan key:generate

3. 手動で APP_KEY を設定

1
2
3
4
# .env ファイルに追加
APP_KEY=base64:xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

# または artisan で生成されたキーをコピー

4. キャッシュをクリア

1
2
3
4
5
6
# 設定キャッシュをクリア
php artisan config:clear

# すべてのキャッシュをクリア
php artisan cache:clear
php artisan config:cache

5. 本番環境での設定

1
2
3
4
# 本番環境では環境変数として設定
export APP_KEY=base64:xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

# または .env ファイルを正しく配置

よくある間違い

  • git clone 後に .env ファイルを作成していない(.env は通常 .gitignore に含まれる)
  • Docker コンテナ内で .env がマウントされていない
  • CI/CD パイプラインで key:generate を実行していない
  • 複数環境で同じ APP_KEY を使用(セキュリティリスク)

Docker 環境での対処

1
2
3
4
5
6
7
8
# Dockerfile
# ビルド時にキーを生成しない(実行時に設定)

# docker-compose.yml
services:
  app:
    environment:
      - APP_KEY=${APP_KEY}
1
2
# docker-compose 実行時
APP_KEY=base64:xxx docker-compose up

CI/CD での対処

1
2
3
4
5
6
7
8
9
# GitHub Actions の例
jobs:
  test:
    steps:
      - uses: actions/checkout@v4
      - name: Copy .env
        run: cp .env.example .env
      - name: Generate key
        run: php artisan key:generate

セキュリティ注意事項

1
2
3
4
5
6
7
8
# APP_KEY は絶対に公開しない
# - GitHubにコミットしない
# - ログに出力しない
# - フロントエンドに露出させない

# 本番環境では必ず新しいキーを生成
php artisan key:generate --show
# 表示されたキーを安全に環境変数に設定

関連エラー

参考リンク

関連エラー

Laravel の他のエラー

最終更新: 2025-12-16