はじめに
Laravel を Docker 上で開発していると、パーミッション問題 や キャッシュ起因のエラー がよく発生します。
そんなときに便利な、1 行でまとめて実行できるコマンド を紹介します。
使用するコマンド
docker compose exec php-container bash -lc "chown -R www-data:www-data storage bootstrap/cache && chmod -R 775 storage bootstrap/cache && php artisan view:clear && php artisan cache:clear"
コマンド全体の意味
docker compose exec php-container bash -lc "..."
-
php-container:Laravel が動作する PHP コンテナ名 -
bash -lc:ログインシェルとして bash を実行し、"" 内の複数コマンドを順番に実行
各コマンドの詳細解説
-
所有者を www-data に変更
chown -R www-data:www-data storage bootstrap/cache→Laravel の storage と bootstrap/cache は PHP(www-data ユーザー) が書き込める必要があります。
これをしないと下記の問題が起きます。:
-
ログが書き込まれない
-
キャッシュ生成でエラー
-
view が更新されない
-
2. アクセス権を 775 に設定
chmod -R 775 storage bootstrap/cache
775 の意味:
-
所有者 & グループ:読み書き実行 -
その他:読み取り & 実行
3. ビューキャッシュ削除
php artisan view:clear
- Blade のコンパイル済みテンプレートを削除。
- 画面表示の不具合があるときに役立ちます。
4. Laravel 全体のキャッシュ削除
php artisan cache:clear
Laravel の内部キャッシュをすべて削除します。
設定・ルート・アプリケーションキャッシュの問題に対応できます。
まとめ
この 1 行コマンドで、
- パーミッション修正
- view キャッシュクリア
- Laravel キャッシュクリア
を 一括で実行できます。
Makefile に登録してもっと便利にする
頻繁に使うなら Makefile に登録して、以下のようにすると便利です👇
fix-permission:
docker compose exec php-container bash -lc "chown -R www-data:www-data storage bootstrap/cache && chmod -R 775 storage bootstrap/cache && php artisan view:clear && php artisan cache:clear"
これで以下のように実行できるようになります:
make fix-permission