CMS: WordPress, Битрикс, Tilda и другие

Битрикс упал после обновления: типичные ошибки и решения

Белый экран, ошибка прав, конфликт компонентов, проблемы с базой и кешем. Чек-лист, как поднять Битрикс за час.

обновлено 8 минут чтения 3 Дмитрий Акиндинов
Содержание
  1. Что обновляется в Битриксе
  2. Главные риски
  3. Главное правило: не паниковать
  4. Решения по симптомам
  5. Откат после обновления
  6. Советы по подготовке к обновлению
  7. Когда нужна техподдержка Битрикса
  8. Чек-лист безопасного обновления
  9. Когда стоит делегировать
  10. Частые вопросы

Из тридцати обновлений Битрикса три-пять проходят с проблемами, но типовые случаи лечатся по чек-листу за 30-60 минут. Разбор действительно неудачного обновления занимает 2-8 часов, поэтому первым делом смотрят не в код, а на дату последней резервной копии.

Битрикс это сложный движок с тысячами файлов и десятками модулей, которые тесно связаны между собой. Даже минорное обновление иногда превращает рабочий сайт в белый экран. По моей статистике, из 30 обновлений Битрикса 3-5 проходят с какими-то проблемами: где-то предупреждение, где-то критическая ошибка.

Хорошая новость: типичные проблемы у Битрикса повторяются, и их можно лечить по чек-листу за 30-60 минут. Разберу самые частые сценарии и порядок действий.

Сломанная шестерёнка с предупреждением над сайтом

Что обновляется в Битриксе

В отличие от WordPress, у Битрикса есть несколько уровней обновления:

  • Ядро (главный модуль). Самый рискованный. Меняется редко.
  • Модули (Информационные блоки, Каталог, Интернет-магазин и т.д.). Обновляются чаще.
  • Решение (готовый шаблон сайта типа Малый бизнес, Магазин).
  • Маркетплейс-компоненты от сторонних разработчиков.

Когда вы жмёте Обновление в админке, обычно идёт пакет с обновлениями всех уровней разом. Это удобно, но делает поиск проблемы сложнее.

Главные риски

Чаще всего ломается:

Конфликт собственных компонентов

В Битриксе нормальная практика делать копии стандартных компонентов в bitrix/templates/<тема>/components/... и править их под себя. После обновления стандартный компонент изменился, а кастомизированный остался старый. Несовместимость, ошибка.

Расхождение базы данных и кода

При обновлении модуля одновременно меняется код (PHP-файлы) и структура базы. Если апгрейд базы прошёл наполовину, появляются ошибки Unknown column или Table doesn't exist.

Кеш с устаревшими данными

После обновления кеш ссылается на старые классы и методы, которых больше нет. Сайт падает, пока кеш не сброшен.

Маркетплейс-компоненты

Купленные на маркетплейсе модули могут быть несовместимы с новой версией ядра. После обновления компонент не запускается.

Лицензия и активация

После обновления Битрикс может проверить лицензию. Если она кончилась, или есть проблемы с активацией, сайт временно недоступен в админке.

Главное правило: не паниковать

Битрикс это движок с историей. Любая поломка после обновления чаще всего восстанавливается за 30-60 минут стандартными процедурами. Не нужно сразу удалять файлы или перезаливать всё с нуля.

Алгоритм действий:

Шаг 1: соберите информацию

  • Что именно показывает сайт? Белый экран, ошибка PHP с текстом, страница не открывается.
  • В какой момент проявилось? Сразу после обновления, через час, после кеширования.
  • Какие модули обновлялись? Видно в Обновления > Состояние обновлений.

Шаг 2: включите режим отладки

Если у вас не включена отладка, сейчас самое время.

В файле bitrix/.settings.php ищите блок exception_handling, проверьте:

'exception_handling' => array(
    'value' => array(
        'debug' => true,
        'handled_errors_types' => E_ALL & ~E_NOTICE & ~E_STRICT,
        'exception_errors_types' => E_ERROR | E_CORE_ERROR | E_COMPILE_ERROR,
        'ignore_silence' => true,
        'log' => array(
            'settings' => array(
                'file' => '/bitrix/php_interface/error_log.log',
                'log_size' => 1000000,
            ),
        ),
    ),
    'readonly' => false,
),

Откройте сайт. Должна появиться текстовая ошибка PHP с указанием файла и строки. Это уже половина диагностики.

Шаг 3: посмотрите логи

bitrix/php_interface/error_log.log содержит ошибки Битрикса. Также смотрите error_log Apache/nginx и php_errors.log хостинга.

Свежие ошибки в самом конце файла. Ищете ошибку, которая совпадает с моментом падения.

Шаг 4: сбросьте кеш

Самое простое и часто работающее.

В админке: Настройки > Производительность > Очистка файлов кеша. Жмёте Очистить весь кеш.

Если в админку не зайти, удаляете кеш руками через FTP/SSH:

rm -rf /home/user/saitfix.ru/public_html/bitrix/cache/*
rm -rf /home/user/saitfix.ru/public_html/bitrix/managed_cache/*
rm -rf /home/user/saitfix.ru/public_html/bitrix/stack_cache/*

Проверяете сайт. Если заработал, проблема была в кеше.

Шаг 5: проверьте лицензию

В админке Настройки > Главный модуль > Активация ключа. Если там написано Лицензия истекла или Срок активного обслуживания закончился, идёте в личный кабинет 1С-Битрикс, продлеваете.

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

Терминал с ошибочными строками и иконкой инструмента

Решения по симптомам

Симптом: белый экран на главной

Самое вероятное:

  1. Включите режим отладки (см. выше). Появится текст ошибки.
  2. Посмотрите ошибку. Часто это Class XXX not found или Call to undefined method.
  3. Если ошибка указывает на конкретный модуль, попробуйте:
В админке: Маркетплейс > Установленные решения. Найдите модуль, переустановите.
  1. Если модуль маркетплейса не работает, временно деактивируйте его в Маркетплейс > Установленные решения > Деактивировать.
  1. Сбросьте кеш.

Симптом: ошибка Unknown column ... или Table ... doesn't exist

База обновилась наполовину. Решение:

  1. Зайдите в Настройки > Обновления > Список обновлений.
  2. Запустите принудительное обновление через консоль:
В адресной строке: /bitrix/admin/update_system.php?force=Y

Или через SSH:

php -f /home/user/saitfix.ru/public_html/bitrix/php_interface/update_setup.php

Завершит апгрейд базы.

  1. Если не помогает, обращайтесь в техподдержку Битрикса с скриншотом ошибки. Они часто дают решение в течение дня.

Симптом: ошибка прав на запись

Cannot create file..., Permission denied. Битрикс не может что-то записать.

Решение:

# Корректные права для Битрикса
find /home/user/saitfix.ru/public_html -type d -exec chmod 755 {} ;
find /home/user/saitfix.ru/public_html -type f -exec chmod 644 {} ;
chown -R www-data:www-data /home/user/saitfix.ru/public_html

На разных хостингах группа разная (www-data для Debian/Ubuntu, apache для CentOS, nobody иногда для shared). Узнайте через ls -la index.php какой пользователь и группа должны быть.

Симптом: компонент не отображается

Вместо компонента пустое место или текст ошибки.

Решение:

  1. Проверьте, что шаблон компонента существует. bitrix/templates/<тема>/components/<название>/<шаблон>/template.php. Если нет, удалите ссылку или верните стандартный.
  2. Проверьте, что параметры компонента совместимы. После обновления некоторые параметры могут быть переименованы.
  3. Очистите кеш конкретного компонента в админке.

Симптом: страница доступна, но без оформления

CSS и JS не загружаются. Ошибка 404 на ассетах в DevTools браузера.

Решение:

  1. Проверьте, что Composite Cache (композитный кеш) не путает пути. Настройки > Композитный сайт > Очистить весь композитный кеш.
  2. Перегенерируйте <head>-блок: Настройки > Производительность > CSS/JS > Пересоздать.
  3. Проверьте .htaccess на корректность правил для статики.

Симптом: админка работает, фронтенд не работает (или наоборот)

Часто из-за несовместимости шаблона. Если у вас кастомный шаблон под старую версию Битрикса:

  1. Временно переключитесь на стандартный шаблон. В админке Настройки > Сайты > <ваш сайт> > Шаблон сайта.
  2. Если сайт начал работать, проблема в кастомном шаблоне. Чините его файлы вручную, сравнивая с обновлённым ядром.

Симптом: ошибка с composite cache

Composite cache: invalid component output. Часто после обновления.

Решение:

  1. Настройки > Композитный сайт > Отключить.
  2. Очистите весь кеш.
  3. Включите композитный обратно после устранения причины.

Симптом: проблема с PHP-версией

После обновления модуля он требует PHP 8.1+, а у вас 7.4. В логах: syntax error, unexpected ....

Решение: обновите PHP через панель хостинга. Перед обновлением проверьте на staging-копии, что весь сайт работает на новой версии PHP.

Сервер с инструментом и прогресс-баром

Откат после обновления

Если ничего не помогает, восстанавливаемся из бэкапа.

В стандартном Битриксе есть встроенный механизм бэкапов: Настройки > Сайт > Резервное копирование. Создаётся архив, в нём файлы и база. Восстановление через тот же интерфейс или через скрипт restore.php.

Если своего бэкапа нет, восстановление возможно через бэкап хостинга (если включён) или из вашего внешнего хранилища.

После восстановления:

  1. Обязательно отключите автоматическое обновление до выяснения причины.
  2. Подготовьтесь как следует и попробуйте снова через staging.

Советы по подготовке к обновлению

Чтобы избежать проблем на следующий раз:

1. Регулярные бэкапы

Перед обновлением обязательно бэкап. Желательно ещё ежедневный фоновый. Подробно про бэкапы Битрикса в отдельных статьях.

2. Staging-копия

Те же шаги, что для WordPress. Битрикс на staging обновляется так же, как на проде, но без последствий.

3. Не обновляться в боевые часы

Утро понедельника плохой выбор. Лучше вечер пятницы или ночь субботы.

4. Сначала маленькие обновления, потом большие

Если у вас Битрикс не обновлялся полгода, не ставьте все апдейты разом. По одному модулю за раз, с тестом после каждого. Это медленнее, но позволяет точно понять, что сломало.

5. Контроль изменений в кастомных компонентах

Если ваш разработчик правил bitrix/templates/<тема>/components/..., ведите список этих правок. Перед обновлением проверяете, что в новой версии стандартного компонента ничего критичного не поменялось.

6. Не обновляйтесь сразу после релиза

Битрикс часто выпускает быстрые фиксы первой волны багов. Подождите 2-4 недели после релиза мажорной версии, потом обновляйтесь.

7. Проверка модулей маркетплейса

Перед обновлением ядра зайдите в Маркетплейс > Установленные решения. Каждый модуль проверьте на совместимость с новым ядром (часто эта информация в описании на самом маркетплейсе).

Если модуль несовместим, либо подождите его апдейт, либо удалите перед обновлением Битрикса.

Когда нужна техподдержка Битрикса

Битрикс предоставляет официальную техподдержку владельцам активной лицензии. Звонок туда оправдан в случаях:

  • Сложная ошибка, которая не лечится перечисленными методами.
  • Подозрение на баг в коде Битрикса, не в вашем коде.
  • Проблемы с восстановлением из бэкапа.
  • Проблемы с лицензией, активацией, переносом.

Поддержка отвечает по тикетам обычно за 2-24 часа в рабочее время.

Чек-лист безопасного обновления

  • Активная лицензия Битрикс.
  • Свежий бэкап файлов и базы.
  • Создан и протестирован staging.
  • Все маркетплейс-модули совместимы с новым ядром.
  • Не обновляться первые 2 недели после релиза.
  • Включён режим отладки на случай проблем.
  • Есть план отката из бэкапа.
  • Время обновления выбрано в часы низкой нагрузки.
  • После обновления сразу проверка ключевых страниц.
  • Мониторинг 24 часа после.

Когда стоит делегировать

Решение проблем после неудачного обновления Битрикса занимает 2-8 часов в зависимости от сложности. Полная подготовка к мажорному обновлению с staging и тестами это 6-12 часов.

Это входит в часовую ставку или в любой из тарифов на /#pricing. Если у вас Битрикс упал после обновления и нужна срочная помощь, опишите ситуацию через /#contact. Связанные материалы по Битриксу в /blog/category/cms/, там есть отдельные статьи про лицензию Битрикса и сравнение с другими CMS.

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

Что делать, если Битрикс упал после обновления

Не обновлять дальше. Включить вывод ошибок, найти первую запись в логе и определить модуль. Большая часть падений это несовместимость одного компонента, а не поломка ядра.

Как откатить обновление Битрикса

Из резервной копии, снятой до апдейта. Битрикс умеет откатывать обновления модулей, но при мажорном переходе надёжнее вернуть копию целиком, вместе с базой данных.

Сколько занимает восстановление

Типовой случай 30-60 минут. Сложный, с кастомными доработками и правками ядра, 2-8 часов. Разброс даёт не сам Битрикс, а количество самодеятельности в проекте.

Как обновляться без сюрпризов

Сначала на копии сайта, потом на боевом. Подготовка мажорного обновления с тестовой площадкой занимает 6-12 часов и окупается одним несостоявшимся простоем магазина.

Передайте техническую часть в надёжные руки.

Слежу за хостингом, бэкапами и обновлениями. Когда что-то пойдёт не так – звоните мне, не своему программисту, не в спортзал и не маме.

Короткие вопросы по теме

Все вопросы по теме "CMS: WordPress, Битрикс, Tilda и другие"

Заявка

Обсудим задачу

Напишите имя и телефон, выберите удобный канал. Перезвоню или напишу в течение часа в рабочее время.

Куда удобнее ответить?