Бесплатный экспресс-аудит сайта Безопасность, SEO, AI-поиск и 152-ФЗ — отчёт с баллами за минуту Проверить сайт
Обсудить проект

«Ошибка при создании файла»: права доступа на сайте

Сообщения бывают разные — «ошибка при создании файла», «не удалось записать», «нет доступа», — но причина одна: процесс, который пытается писать, не имеет на это прав.

Кто от кого работает

Файлы сайта принадлежат какому-то пользователю системы, а веб-сервер и PHP работают от своего. Если они не совпадают, запись невозможна. В окружении Битрикса сайт обычно работает от пользователя bitrix, и файлы должны принадлежать ему.

Проверяется просмотром владельца каталогов сайта и сравнением с тем, от кого запущен процесс веб-сервера.

Когда ломается

  • После переноса сайта. Архив распаковали от root — владельцем стал root. Самый частый случай.
  • После ручной правки файлов через консоль от другого пользователя.
  • После обновления, которое прервалось на середине.
  • После добавления файлов из cron, если задание запускается от root, — тогда часть кеша принадлежит ему.

Где это проявляется

Что не работаетКакой каталог проверить
Загрузка картинок и файлов/upload/
Сохранение страницы в редакторекаталог самой страницы
Очистка и создание кеша/bitrix/cache/, /bitrix/managed_cache/
Обновления продукта/bitrix/ целиком
Резервные копии/bitrix/backup/
Обмен с 1С/upload/1c_catalog/

Как чинить правильно

  1. Определите, от какого пользователя работает веб-сервер.
  2. Верните владельца файлов сайта этому пользователю — рекурсивно по каталогу сайта.
  3. Проверьте права: каталогам нужна возможность записи для владельца, файлам — обычные права на чтение и запись.
  4. Повторите операцию, которая падала.

Полные права для всех (777) проблему тоже снимают — и создают другую: любой скрипт на сервере сможет переписать ваши файлы. Так делать не надо.

Если права верные, а ошибка есть

  • Кончилось место на диске — файлы не создаются независимо от прав.
  • Кончились иноды — место есть, а новые файлы не создаются. Проверяется отдельно.
  • Каталог только для чтения — бывает после сбоя файловой системы.
  • Ограничение на уровне системы безопасности — в некоторых сборках доступ ограничен дополнительно.

Частые вопросы

Почему это началось после переноса сайта?

При копировании владельцем файлов становится тот, кто их распаковывал, — часто root. Веб-сервер работает от другого пользователя и писать в такие каталоги не может. Нужно вернуть владельца на пользователя сайта.

Можно поставить права 777 и забыть?

Так делают, и это худшее из решений: полные права для всех означают, что любой скрипт на сервере, включая загруженный злоумышленником, сможет менять ваши файлы. Правильно — правильный владелец и обычные права.

Ошибка только при загрузке картинок.

Значит проблема в каталоге загрузок: проверьте владельца и права именно на него, а заодно свободное место — при заполненном диске файлы тоже не создаются.