- カテゴリ: artisan
- 掲載バージョン: Laravel 12・PHP 8.4
- 名前空間 / FQCN / コマンド:
php artisan key:generate - 関連: config:clear, config:cache, env, APP_KEY
- 変更履歴: 早期バージョンから継続提供(挙動は安定)
要点(TL;DR)
- Laravel アプリの 暗号化に使う APP_KEY を生成・設定する
php artisan key:generateを一度実行すればよい- 既存環境で再実行すると暗号化データが読めなくなる点に注意
概要
key:generate は、Laravel アプリケーションで使用される 暗号化キー(APP_KEY) を生成し、.env に設定する Artisan コマンドです。
セッション、Cookie、Crypt ファサードなどの暗号化処理は、このキーを前提に動作します。
新規プロジェクト作成後や、.env を新しく用意した直後に必ず実行します。
構文 / シグネチャ
php artisan key:generate [--show] [--force]
オプション
| オプション | 必須 | 説明 |
|---|---|---|
--show | 任意 | 生成したキーを表示する(.env は変更しない) |
--force | 任意 | 既存の APP_KEY を上書きする |
- 戻り値:なし(成功時はメッセージ出力)
- 例外/副作用:
.envのAPP_KEYを更新(--showを除く)
使用例
最小例
php artisan key:generate
.env に以下のような値が設定されます。
APP_KEY=base64:xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
実務例
Docker / CI で初回セットアップ時に実行
php artisan key:generate --force
php artisan config:clear
- 初回デプロイ時のみ実行
- 既存データが無い状態であれば
--forceでも問題ありません
よくある落とし穴・注意
- 本番環境で再実行しない
→ セッション、暗号化済みデータ、パスワードリセットトークンが無効になります config:cache実行後にキー変更すると反映されない
→ 変更後はphp artisan config:clearを実行.envが書き込み不可だと失敗
→ 権限やデプロイ方法を確認
代替・関連APIとの比較
--show.envを直接編集したい場合に使用
config:cacheAPP_KEY設定後に実行するとパフォーマンス向上
- 環境変数で直接指定
- コンテナ環境では
.envを使わずAPP_KEYを外部注入することも多い
- コンテナ環境では
テスト例(Pest)
it('has application key', function () {
expect(config('app.key'))->not->toBeEmpty();
});
トラブルシュート(エラー別)
| 症状/エラー | 原因 | 対処 |
|---|---|---|
No application encryption key has been specified. | APP_KEY 未設定 | php artisan key:generate を実行 |
| セッションが突然切れる | キー再生成 | バックアップから復元、再生成しない |
| 設定が反映されない | config キャッシュ | php artisan config:clear |
参考リンク
- Laravel 公式ドキュメント(Application Key)
https://laravel.com/docs/12.x/encryption - Artisan コンソールドキュメント
https://laravel.com/docs/12.x/artisan

