Laravel Artisan config:clear
概要
Laravel の設定キャッシュを削除して、config/*.php や .env の変更を即座に反映させるコマンドです。
- カテゴリ: artisan
- 対象: Laravel 12 / PHP 8.4
- 関連:
config:cache、cache:clear
TL;DR
php artisan config:clear
設定キャッシュが bootstrap/cache/config.php から削除され、以降のリクエストで設定ファイルを再読み込みします。
キャッシュが無い場合は何も起きません。
詳細
Laravel では php artisan config:cache で bootstrap/cache/config.php を生成し、アプリ起動時に設定を高速にロードします。
設定ファイルや .env を変更した場合は キャッシュをクリア してから再キャッシュするか、開発環境でそのまま動かします。
シグネチャ
php artisan config:clear [options]
| オプション | 型 | 必須 | デフォルト | 説明 |
|---|---|---|---|---|
--env=ENV |
string | ❌ | 現在の APP_ENV |
指定した環境のキャッシュを削除 |
--no-interaction |
flag | ❌ | – | 対話なしで実行 |
--quiet |
flag | ❌ | – | 出力を抑制 |
- 戻り値:
void - 例外:
RuntimeException(削除失敗時)
使用例
最小例
php artisan config:clear
実務例(CI/CD で設定更新後)
# 1. 設定変更
git pull origin main
# 2. キャッシュをクリア
php artisan config:clear
# 3. 再キャッシュ(本番は必須)
php artisan config:cache
よくある落とし穴
| 状況 | 原因 | 対策 |
|---|---|---|
| ファイルが削除されない | bootstrap/cache の書き込み権限不足 |
chmod 775 bootstrap/cache か chown -R www-data |
| コマンド実行時にエラーが出る | キャッシュが無いのに RuntimeException |
既に無ければそのまま無視、エラー抑制 |
| 環境が異なる | --env を忘れた |
本番/開発で切り替える際は必ず --env=production 等を指定 |
代替・関連コマンド
| コマンド | 役割 | 選択ポイント |
|---|---|---|
config:cache |
設定キャッシュを生成 | 本番環境で高速化が必要 |
config:clear |
設定キャッシュを削除 | 設定変更直後、開発時 |
config:store |
データベースへ設定保存 | マルチテナント等で中央管理が必要 |
実務パターン
- 設定変更 → 2.
config:clear→ 3.config:cache
(開発環境は 2. のみで十分)
テスト例(Pest)
use Illuminate\Support\Facades\File;
it('removes the config cache file', function () {
// まずキャッシュを生成
$this->artisan('config:cache');
// キャッシュが存在することを確認
expect(File::exists(base_path('bootstrap/cache/config.php')))->toBeTrue();
// キャッシュをクリア
$this->artisan('config:clear');
// 削除されたことを確認
expect(File::exists(base_path('bootstrap/cache/config.php')))->toBeFalse();
});
エラー別トラブルシュート
| エラー | 発生原因 | 解決策 |
|---|---|---|
RuntimeException: Could not remove config cache file. |
書き込み権限がない | chmod 775 bootstrap/cache / chown -R www-data |
No such file or directory(キャッシュ無し) |
キャッシュファイルが存在しない | config:cache で再作成後、再度実行 |
Permission denied |
サーバの SELinux/AppArmor がブロック | ポリシー調整または権限付与 |
