JUST · AI инженерные заметки Внедрение под ключ
Главная / Статьи / Как я ломал прод
Как я ломал продmodxправаphp-fpm 5 минут2026-09-24

Скрипт под root превратил кэш в чужой — сайт начал отдавать пустые страницы

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

5,2 споиск через DeepSeek
225 мсрешение на модели-решателе
$0,0001цена одного решения

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

Как выглядело

Сразу пять страниц каталога отдали пустой список товаров. Остальной сайт работал. База отвечала, шаблон на месте, товары в базе есть.

Причина

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

проверка
# кто владелец свежих файлов кэша
$ find core/cache -newermt '-30 min' ! -user politika
… файлы от root
# лечение: пересобрать кэш под тем же пользователем, что и сайт
$ sudo -u politika php -r '...обновление кэша...'

Что теперь делаю всегда

Скрипты — от пользователя сайтаНе от root. Если нужны права — точечно, а не на весь деплой.
Скрипты кладу в /tmpПользователь сайта не читает домашние каталоги и молча падает на старте.
После деплоя проверяю владельца кэшаОдной командой: есть ли свежие файлы не от того пользователя, под которым работает сайт.
Проверяю страницу, а не логРовно те страницы, которые правил.

Читайте дальше

Новые замеры

Письмо, когда выходит новый замер или разбор поломки. Без рассылок «о нас» и без продаж.