config:cache — 設定ファイルをキャッシュするコマンド

未分類

config:cache とは

項目 内容
ターゲット名 config:cache
カテゴリ Artisan
タイプ コマンド
公開バージョン Laravel 12 (PHP 8.4)
FQCN/コマンド php artisan config:cache
関連API config:clearcache:clearoptimizeconfig:dump
変更履歴 2015 年に Laravel 5.1 で導入。以降、デフォルトで非推奨化はされていない。

TL;DR

  • 用途config/*.phpbootstrap/cache/config.php にまとめ、起動時の設定ロードを高速化する。
  • 実行php artisan config:cache
  • 落とし穴
  1. 設定変更後は必ず php artisan config:clearphp artisan config:cache を実行。
  2. 本番環境で .env が変わった場合、キャッシュに古い値が残る。
  3. bootstrap/cache に書き込み権限が無いと失敗。

概要

config:cache は、config/*.php で定義したすべての設定を一つのファイルにまとめて保存します。Laravel は起動時に bootstrap/cache/config.php を読み込み、設定ロード時間を劇的に短縮します。デプロイ時や本番環境で特に有効です。


構文 / シグネチャ

php artisan config:cache

引数

引数 必須 既定値 説明
なし

戻り値

php artisan config:cache は標準出力にメッセージを表示し、終了コード 0 を返します。ファイルを書き込む以外に戻り値はありません。


例外 / 副作用

例外 原因 対処
RuntimeException config/*.php 内に構文エラーがある エラーメッセージの箇所を修正
RuntimeException bootstrap/cache/config.php に書き込み権限がない chmod -R 775 bootstrap/cache 等で権限を付与

最小例

php artisan config:cache

実務例(デプロイスクリプト)

# 1. コードを取得
cd /var/www/myapp
git pull origin main

# 2. 依存パッケージをインストール
composer install --optimize-autoloader --no-dev

# 3. マイグレーション実行
php artisan migrate --force

# 4. 設定・ルートキャッシュ
php artisan config:cache
php artisan route:cache

よくある落とし穴・注意点

  • 設定変更忘れ
    config/*.php を編集したら 必ず php artisan config:clear でキャッシュを削除し、再度 config:cache を実行してください。
  • 環境差
    本番で .env を更新した場合、キャッシュをクリアしないと古い値が残ります。
  • 書き込み権限
    bootstrap/cache 以下に書き込み権限が無いと失敗します。sudo chown -R www-data:www-data bootstrap/cache 等で調整してください。
  • パフォーマンス効果
    小規模アプリではほとんど効果が見られませんが、設定ファイルが多い大規模アプリでは起動時間を 10〜20 % まで削減できます。

代替・関連API

API 主な用途 選択基準
config:clear 設定キャッシュを削除 設定変更時
cache:clear すべてのキャッシュをクリア アプリ全体をリセットしたい時
optimize ルート・サービス・コンフィグ全てをキャッシュ 一括最適化が必要なデプロイ
config:dump 設定を config.php に書き出す テスト環境で設定を固定したい時
  • config:cache は「最小構成で設定高速化」が主眼。
  • optimize は「ルート・サービス・設定を一括キャッシュ」したいときに使用。
  • config:clear は「設定変更直後に必ず実行」すべき。

テスト例(Pest)

it('caches configuration', function () {
    // 事前設定
    config(['app.env' => 'testing']);

    // 実行
    $this->artisan('config:cache')->assertSuccessful();

    // キャッシュファイルが生成されたか確認
    expect(storage_path('framework/cache/config.php'))->toBeFile();
});

トラブルシュート(典型的なエラー別)

症状 / エラー 原因 対処
RuntimeException: The config cache file cannot be written. bootstrap/cache の書き込み権限不足 chmod -R 775 bootstrap/cache で権限を付与
Fatal error: Uncaught SyntaxError config/*.php の構文エラー エラーメッセージで指摘された箇所を修正
Cannot read config file .env が見つからない .env を配置し、php artisan config:clear で再キャッシュ
Cache file exists but is outdated 設定を変更した後キャッシュをクリアしていない php artisan config:clearconfig:cache を実行

参考リンク

レン (Wren)

こんにちは。レンです。

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

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

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

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

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

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