В Laravel права доступа особенно важны для storage и bootstrap/cache. Если веб-сервер не может писать в эти директории, сайт получает 500, не пишет логи или ломает сессии.
Проблема часто появляется после переноса проекта, распаковки архива от root или деплоя через другого пользователя.
Когда это становится срочной задачей
Исправлять нужно сразу, если сайт не открывается, не создаются логи, не работают загрузки, сессии, кеш или очередь.
Частые причины
- файлы принадлежат root после деплоя
- nginx или Apache работает под другим пользователем
- storage недоступен на запись
- bootstrap/cache нельзя обновить
- права выставлены слишком строго или слишком широко
- после composer/script изменился владелец файлов
Как я проверяю проблему
- Определяю пользователя веб-сервера и владельца файлов проекта.
- Проверяю storage, logs, framework/cache, sessions и bootstrap/cache.
- Настраиваю владельца и права без небезопасного 777.
- Проверяю запись логов, сессий и кеша.
- Фиксирую правило для будущего деплоя.
Что лучше не делать
- ставить chmod 777 на весь проект
- запускать все команды от root без необходимости
- менять права наугад по всему серверу
- оставлять storage недоступным для логов
- игнорировать пользователя php-fpm
Что входит в работу
Я настраиваю права под конкретный сервер и пользователя процесса, чтобы Laravel мог писать туда, куда должен, но без лишнего открытия файлов.
- исправленные права storage и cache
- проверка пользователя php-fpm/nginx/apache
- работающие логи и сессии
- безопасная схема владельцев файлов
- рекомендация для будущего деплоя
Что подготовить перед обращением
- ссылку на сайт, страницу, админку или проект, где видна проблема
- скриншот, текст ошибки, лог или пример поведения
- что меняли перед появлением проблемы
- доступы только к тем частям, которые нужны для диагностики
- приоритет: срочно восстановить работу или спокойно разобраться в причине
Сроки
| Типовая проблема прав | 30-60 минут |
|---|---|
| Несколько окружений | 1-2 часа |
| Сложный деплой | по схеме проекта |
Вопрос-ответ
Почему нельзя просто chmod 777?
Это открывает лишние права и может создать проблему безопасности.
Какие папки важнее всего?
storage и bootstrap/cache, а дальше зависит от загрузок, логов и очередей.
Ошибка может быть после обновления?
Да, если команды запускались другим пользователем или поменялся владелец файлов.
Итог
Ошибка прав доступа Laravel обычно решается настройкой владельца и прав для нужных директорий. Важно сделать это безопасно, а не открывать весь проект.
Нужна похожая задача? Напишите в Telegram: @rabotator_support. Коротко опишите симптом, пришлите ссылку или лог, и я предложу понятный план исправления без лишней бюрократии.