はむはむエンジニアぶろぐ

365日エンジニアリング

Laravelのキャッシュディレクトリのパーミッション問題でハマった

Laravelのキャッシュディレクトリのパーミッションでハマりました。
こんな感じのエラーログが。

An exception has been thrown during the rendering of a template ("Unable to write in the cache directory ほにゃほにゃ

storageのキャッシュディレクトリの権限を777にしておけば、解決されるだろうと思っていたが再発した。

原因は、バッチ実行時にバッチ実行者がキャッシュディレクトリを755(rwxr-xr-x)で作成していてWebサーバにw権限ないためキャッシュディレクトリに書き込めなかったから。

なので、バッチ実行者をWebサーバと同じユーザで行うように変更した。

* * * * * sudo -u app php /var/www/html/project/artisan schedule:run >> /dev/null 2>&1

これで、パーミッションでエラーにならない。