config:cache とは
| 項目 |
内容 |
| ターゲット名 |
config:cache |
| カテゴリ |
Artisan |
| タイプ |
コマンド |
| 公開バージョン |
Laravel 12 (PHP 8.4) |
| FQCN/コマンド |
php artisan config:cache |
| 関連API |
config:clear、cache:clear、optimize、config:dump |
| 変更履歴 |
2015 年に Laravel 5.1 で導入。以降、デフォルトで非推奨化はされていない。 |
TL;DR
- 用途:
config/*.php を bootstrap/cache/config.php にまとめ、起動時の設定ロードを高速化する。
- 実行:
php artisan config:cache
- 落とし穴
- 設定変更後は必ず
php artisan config:clear → php artisan config:cache を実行。
- 本番環境で
.env が変わった場合、キャッシュに古い値が残る。
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:clear → config:cache を実行 |
参考リンク