Здравствуйте, друзья!
Недавно взял очередной проект на обслуживание. Для каждого проекта в начале работы я провожу некую стандартную проверку, в которую в том числе входит проверка актуальности версий установленных модулей, и соответствие версии php рекомендациям производителя.
Было бы понятно, если бы этот проект работал на php7.4, так как есть определенные трудности при переходе на php8 у проектов с кучей модулей из маркета или кучей своих доработок. Но тут была версия 7.2, и проект не обновлялся года два минимум, при активной лицензии.
То есть лицензию покупали, но почему-то специалист, который поддерживал проект до меня, ничего не обновлял.
Важно не только покупать лицензию, но и пользоваться ее благами, не забывать ставить обновления.
В общем с учетом того, что на хостинге nic.ru странно медленное обращение к серверу обновлений Битрикса, в счет клиенту за обновление пойдет порядка 10 часов. Также пришлось делать промежуточные резервные копии. Они делались:
- в начале обновлений,
- далее установка всех обновлений системных модулей версии php7.2,
- создание резервной копии,
- установка обновлений модулей маркетплейса,
- переход на версию php7.4,
- создание резервной копии.
- ... ну и так далее до версии php8.0.
Из интересного.
В одном из модулей пришлось править CGroup::GetList;
В какой-то момент в каталоге потерялись цены. Где-то вычитал, что в компонентах каталога нужно включить режим совместимости - добавить в массив параметров компонента "COMPATIBLE_MODE" => "Y",.
Для комплексного компонента catalog править нужно файлы element.php (вызов компонента bitrix:catalog.element) и section.php (вызов компонента 'bitrix:catalog.section) шаблона.
Также был перевод агентов на cron.
В целом все прошло хорошо, известные уязвимости закрыты, можно дальше работать по задачам.
Если кто знает, как обойти проблемы хостинга nic.ru, пишите.