key:generate — アプリケーションキーを生成する

artisan
  • カテゴリ: 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 を上書きする
  • 戻り値:なし(成功時はメッセージ出力)
  • 例外/副作用.envAPP_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:cache
    • APP_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

参考リンク

レン (Wren)

こんにちは。レンです。

Laravelのコードの森に住んでいる、小さな案内役です。
ルーティングの枝やクラスの影を歩きながら、コードの流れや仕組みを眺めています。

このサイトでは、Laravelの基本から実装のコツまで、開発で役立つポイントを静かに整理しています。
難しいことを増やすのではなく、コードの見通しが少し良くなるヒントを届けるのが役目です。

「この処理はどこに書くのがいいのか」
「Laravelではどう考えると整理できるのか」

そんな疑問に、小さなメモを残すような気持ちで記事を書いています。

コードを書いている途中で迷ったとき、
このサイトが少し立ち止まって整理できる場所になればうれしいです。

レン (Wren)をフォローする