laravelで”php artisan config:cache
” すると上記のエラーが出ることがあります。単純に使用しているサーバの内部容量がないから、キャッシュする分すらも容量の余裕が残ってないよと怒られている感じです。
対策
容量の大きいファイルを消す、または別の環境に移動してあげましょう。以下でサーバ内のどの部分で容量を食っているのか確認できます。
# duコマンドでディスク使用量を集計する
sudo du -sh /*
7.0M /bin
44M /boot
56K /dev
11M /etc
746M /home
...省略
16G /opt
上の例だと、16GBも容量を使っている/opt
が原因っぽいです。更にディレクトリ内部に入ってコマンドを打っていくか、/opt内のディレクトリを調べるようなコマンドで調査します。
# ディレクトリの中を更に調べていく
sudo du -sh /opt/*
43M /opt/aaa
16G /opt/website
sudo du -sh /opt/website/*
80M /opt/website/20200416195307
6.6G /opt/website/backup_220301.zip
2.2G /opt/website/archive.zip
...
今回の場合はなんだかよく分からないzipファイルが配置されてあったので、別のストレージに写して保管して削除して容量を増やしました。これでconfig:cacheも動くはずですが…
それでも動かない
充分な容量を確保したのにconfig:cacheが動かなかったので、もう少し調べました。どうやら「ファイルを消した」というタスクの処理がサーバ内で残っているみたい(キャッシュみたいなもの?)で、そのタスクをkillしてあげる必要があったようです。
# lsofで処理中のプロセス確認 | grepでキーワードを絞り込む
sudo lsof | grep laravel.log
php 24216 user 6w REG 202,1 2238095360 347873 /opt/website/backup_220301.zip (deleted)
php 24217 user 6w REG 202,1 2238095360 347873 /opt/website/backup_220301.zip (deleted)
php 24218 user 6w REG 202,1 2238095360 347873 /opt/website/backup_220301.zip (deleted)
該当しそうなタスクをkillします。
# "kill プロセスのPID"で該当しそうなプロセスのキルを行う
kill 24216
kill 24217
kill 24218
これで今度こそ動くはずですね。
まだ動かないとき
なんかまたエラーが出て怒られました。
php artisan config:cache
In PackageManifest.php line 165:
The /opt/website/bootstrap/cache directory must be present and writable.
なんかlaravelで作られるbootstrapフォルダがおかしいみたいです。自分の場合は以下で対処。
# cacheという本来あるはずのディレクトリがないっぽかったので自分で作成
cd /opt/website/bootstrap
mkdir cache
# 中身確認
ls
app.php cache
# 権限とりあえず777で書き込み許可に
chmod 777 cache/
# laravelディレクトリに戻ってキャッシュクリア
cd /opt/website
php artisan config:cache
Configuration cache cleared!
Configuration cached successfully!
ようやく!