Обновления не устанавливаются - ключ, срок, доступ, права
Страница обновлений открывается, но обновления не ставятся или список пуст. Разбираем причины в порядке убывания частоты.
Как проверить
Смотрим ключ и срок продления:
echo \Bitrix\Main\Config\Option::get('main', 'update_site_key'), "\n";echo \Bitrix\Main\Config\Option::get('main', '~PARAM_MAX_SITES'), "\n";// ключ вводят в настройках главного модуля, в разделе системы обновлений// пустое значение ключа означает установку без лицензии: обновления закрыты// поле активации купона - это другое поле и для другой задачиКлюч и купон путают чаще всего остального. Купон активирует продление или дополнение, а ключ прописывают в настройках главного модуля; введённый не туда ключ выглядит как отказ активации.
Проверяем доступ к серверам обновлений:
curl -sI https://www.1c-bitrix.ru/ | head -3curl -sI https://update.1c-bitrix.ru/ | head -3# закрытый исходящий доступ - обычное дело в облаке и за корпоративным шлюзомСистема обновлений ходит наружу из кода сайта. Проверка из браузера администратора ничего не доказывает: важно, что видит сам сервер, а не рабочее место человека.
Смотрим права и место на диске:
df -h | grep -E "/$|/home" # место под распаковку обновленийls -ld bitrix/modules bitrix/updates 2>/dev/nullsudo -u www-data test -w bitrix/modules && echo "запись есть" || echo "записи нет"# обновление распаковывается в каталоги платформы: без записи оно не начнётсяЧитаем журнал ошибок во время обновления:
tail -f /var/log/php-fpm/error.log &# и запускаем обновление: ошибка приходит сюда, а не на страницуgrep -iE "update|sysupdate" bitrix/modules/error.log | tail -10Страница обновлений часто молчит о причине. Сообщение «установлено обновлений ноль» само по себе не говорит ничего, а журнал в этот момент показывает и таймаут, и отказ по правам.
Причины
-
Ключ не введён или введён не в то поле примерно 30% случаев
ПризнакСистема сообщает об ошибке активации или предлагает ввести ключ снова и снова.
ПроверкаСмотрим ключ в настройках главного модуля, в разделе системы обновлений, а не в поле купона.
Что делатьПрописываем лицензионный ключ в настройках модуля; купон активируют отдельно и для другой задачи.
-
Истёк срок продления обновлений примерно 25% случаев
ПризнакСписок обновлений пуст или недоступен, хотя сайт работает и ключ на месте.
ПроверкаСмотрим дату окончания продления на странице обновлений и в личном кабинете партнёра.
Что делатьПродлеваем лицензию: без активного продления система не отдаёт даже обновления безопасности.
-
Закрыт доступ наружу с сервера сайта примерно 20% случаев
ПризнакСтраница обновлений долго думает и заканчивается ошибкой соединения.
ПроверкаПробуем достучаться до серверов обновлений прямо с сервера сайта, а не из браузера.
Что делатьОткрываем исходящие соединения к серверам обновлений на шлюзе или в правилах облака.
-
Нет прав на запись или места на диске примерно 15% случаев
ПризнакОбновление начинается и обрывается, часть файлов уже заменена, часть нет.
ПроверкаПроверяем свободное место и право записи в каталоги платформы от имени процессов сайта.
Что делатьОсвобождаем место, выравниваем владельца файлов и повторяем обновление с того же шага.
-
Сбоит сам клиент обновлений примерно 10% случаев
ПризнакСтраница обновлений отдаёт ошибку пятисотую или сообщает о нуле установленных обновлений.
ПроверкаСмотрим журнал ошибок и целостность служебных файлов системы обновлений.
Что делатьВозвращаем служебный файл клиента из чистого дистрибутива той же версии и повторяем попытку.
Если ничего не помогло
Проверяем, не включена ли версия для разработки. Она отдаёт бета-обновления, и поведение системы на такой ветке отличается от обычной; для боевого сайта эту галочку держат выключенной.
Смотрим на хранение сессий. Обновление большого портала с сессиями в базе упирается в блокировку сессии и завершается таймаутом, а сайт при этом выглядит работающим.
Обновляем частями, а не целиком. Список обновлений ставят по нескольку модулей за раз: так видно, на каком именно модуле процесс останавливается, и повтор не начинается с самого начала.
Частые вопросы
Куда вводить лицензионный ключ?
В настройки главного модуля, в раздел системы обновлений. Поле активации купона предназначено для продлений и дополнений, и ключ в нём вызывает ошибку активации.
Ставятся ли обновления безопасности после окончания продления?
Нет: без активного продления система обновлений не отдаёт ничего. Именно поэтому продление считают не «покупкой новых возможностей», а условием поддержки сайта в рабочем состоянии.
Как понять, что дело в закрытом доступе наружу?
Проверить соединение с серверами обновлений прямо с сервера сайта командой из консоли. Браузер администратора ходит из другой сети, и его успех ничего не доказывает.
Что делать при сообщении об установке нуля обновлений?
Смотреть журнал ошибок в момент запуска: страница обновлений почти всегда молчит о причине. Дальше по журналу видно, права это, таймаут или сбой служебного файла.
Можно ли обновляться сразу на несколько версий вперёд?
Система сама ставит обновления по порядку, но после долгого перерыва их лучше ставить частями по нескольку модулей. Так проще найти шаг, на котором процесс останавливается.
Смежное
-
Обновление платформы и PHP - оглавление подтемы
-
Обновление продукта: подготовка, порядок, откат - как проходит штатное обновление
-
Ошибка после обновления PHP: причины по убыванию частоты - что бывает после смены версии языка
-
Приёмка чужого проекта: инвентарь, правки ядра, карта рисков - правки ядра, мешающие обновлению
-
Окружение за прокси и в облаке: адреса, протокол, доступ наружу - закрытый исходящий доступ
-
Инфраструктура - устройство сервера и окружения
-
Редакция продукта: ограничения, переход на старшую, ключ - где лежит ключ и что он определяет
-
Обновление платформы изнутри: шаги, файлы, откат - устройство проверки лицензии и загрузки
-
Проверка системы: требования, отчёт, что чинить - что проверить до обновления
-
Обновления в закрытом контуре: прокси и пакет вручную - путь решения, когда наружу хода нет
-
После обновления отвалился функционал - обновление встало, а часть механизмов перестала работать