環境
- Laravel Framework 7.30.6
事象
Laravelを最初にセットアップした直後にブラウザでTOPページにアクセスしたら以下のメッセージ。
The stream or file "/LaravelのPath/storage/logs/laravel.log" could not be opened in append mode: failed to open stream: Permission denied The exception occurred while attempting to log: The stream or file
原因
パーミッションの問題。
ログファイルへの書き込み権限が、不足している。
- storage
対処
Webサーバー君がアクセスしてるはずなので、Webサーバー君が storage フォルダにアクセスできるようにしてあげる。
以下のいずれかの手段でWebサーバー君が storage フォルダにアクセスできるようになる。
- storageフォルダのパーミッションを777にする(やったらだめよx)
- storageフォルダのオーナーをWebサーバーに変更する
- storageフォルダのパーミッションでユーザーとグループだけフル権限与えて、その他には最低限の権限にする
わたすは、3つ目を採用するだす。
storage/ の、パーミッションを確認したらデフォで775になってた。
とりま、パーミッションはこのまんまにしておく。
例として
Webサーバがapacheだとする。
フォルダ所有オーナー(ユーザー)がhogeだとする。
apacheを、フォルダ所有オーナー(ユーザー)がhogeグループに参加させる。
# gpasswd -a apache hoge
ユーザ apache をグループ hoge に追加
#
↓
追加されてる事確認
# cat /etc/group | grep hoge
hoge:x:1010:apache
↓
ブラウザでTOPページにアクセス。
↓
正常化。
その他
また、ググっていたら以下のフォルダも対象だよと言ってる記事も合った。
- bootstrap/cache
コメント