Lỗi file storage/logs/laravel.log could not be opened
Khi deploy Laravel project của bạn lên server, bạn có thể gặp lỗi: The stream or file "/storage/logs/laravel.log" could not be opened: failed to open stream: Permission denied
như ảnh dưới.
Lỗi này hầu hết nguyên nhân do user chạy Web server (nginx hoặc apache) trên server của bạn không có quyền ghi vào file file /storage/logs/laravel.log
.
Để giải quyết trong trường hợp này bạn chỉ cần kiểm tra lại quyền và owner của file laravel.log trên server, thông thường sẽ là đổi owner của file laravel.log từ user bạn đang deploy sang user chạy Web Server.
Ví dụ với server chạy apache bạn có thể kiểm tra user nào đang chạy Web Server bằng lệnh ps aux | egrep '(apache|httpd)'
, nếu không có thay đổi gì thường sẽ là apache
Còn với server chạy nginx bạn có thể kiểm tra user nào đang chạy bằng lệnh ps aux | grep nginx
và thông thường sẽ là www-data
.
Lúc này bạn chỉ cần đổi lại ownser của laravel.log
file bằng lệnh
cd project_root_folder_của_bạn
#với apache
chown apache storage/logs/laravel.log
#với nginx
chown www-data storage/logs/laravel.log
Lưu ý: account của bạn phải có quyền chown của file nếu không sẽ gặp lỗi Operation not permitted
, bạn cần phải dùng quyền sudo
hoặc root account để thay đổi owner của file.