Failed to open stream: Permission denied

Август, 2022

Нет прав на запись, Отказано в доступе

Дословный перевод ошибки: "Не удалось открыть поток: Отказано в доступе".

# Примеры ошибок

The stream of file "storage/logs/laravel.log" could not be opened in append mode: Failed to open stream: Permission denied. The exception occurred while attempting to log...

Unable to create lockable file. Please ensure you have permission to create files in this location.

file_put_contents(storage/framework/views/xxx.php): Failed to open stream: Permission denied

# Теория

Laravel использует директории bootstrap/cache/ и storage/ для хранения системных файлов, кэша и логов, поэтому у пользователя под которым запускается php должен быть доступ на запись в эти директории.

Для начала необходимо ознакомится с основами прав доступа в UNIX системах, с командами chmod и chown, например, статья #1 , статья #2 или погуглив самостоятельно. Для более сложных задач можно углубиться до ACL (Access Control List) .

# Быстрое решение

1sudo chgrp -R www-data storage bootstrap/cache
2sudo chmod -R ug+rwx storage bootstrap/cache
highlight by torchlight.dev

где www-data - группа под которой работает web-сервер (nginx, apache).