Если вы используете сайт под управлением 1С-Битрикс любой редакции и ваш сайт работает на PHP версии ниже 8.0 — вы можете лицезреть вот такую надпись в админ панели своего сайта:
Версия PHP 7.х объявлена устаревшей и больше не поддерживается, для нее не выпускаются исправления функциональных ошибок и ошибок безопасности. Использование версий PHP ниже 8 крайне нерекомендовано.
Вы не сможете установить обновления продуктов «1С-Битрикс» для исправления ошибок и получения нового функционала, пока не обновите PHP до минимальной версии 8.0 или рекомендованной 8.1 в своем серверном окружении.
На первый взгляд очевидно, что нужно просто перейти на работу сервера в связке с PHP 8-ой версии. Ок. Идем в панель управления хостингом. Находим наш сайт, переходим в настройки и выбираем нужную версию PHP. Можно выбрать сразу 8.2 последнюю. к примеру, в панели ispmanager это делается здесь:
Переходим на сайт для проверки и с вероятностью 99,99% ваш сайт сломается или вообще выдаст белый экран.
Все просто. В новой версии PHP немного изменились требования к написанию кода и то, что разрешалось в версии 7.4, например, теперь вызывает ошибку и сайт ломается. Получается для работы сайта необходимо, чтобы весь код соответствовал новым требованиям. Как известно Битрикс — это система управления, состоящая по большей части из ядра и публичной части. С ядром все понятно, но остается сторонний код: это и шаблон, и свои компоненты, и сторонние модули, установленные из Макретплейса Битрикс. Вот в них и заключается вся боль.
Мы рассмотрим два сценария обновления сайта. Первый — идеальный (правильный, рекомендуемый), а второй — нестандартный (комбинированный метод)
1. Так как «Битрикс» уже все обновил и настроил под использование 8-ки, прежде чем изменять настройки сервера, мы должны обновить ядро через стандартный функционал «Битрикс». Естественно для этого у вас должна быть активная поддержка на решение. Если нет, и вы видите надпись, что срок поддержки вашей лицензии окончен, то необходимо продлить ее, купив за 25% от стоимости лицензии. Редакцию вашей лицензии вы можете увидеть все в том же разделе /bitrix/admin/update_system.php?lang=ru в секции «Ответ сервера обновлений».
2. Теперь переходим в установленные решения.
В этом разделе нас интересуют все сторонние решения, установленные на сайте. Их необходимо также обновить. Конечно, есть платные и бесплатные решения. Бесплатные обновляем, а на платных смотрим срок поддержки активен или нет. Если нет, то каждое решение необходимо продлить. Условия продления могут быть разными, но обычно это 50% от стоимости решения. Подробнее вы можете посмотреть на странице Маркетплейса, кликнув по названию этого решения.
3. После обновления ядра и всех сторонних модулей переходим к тому, с чего начинали: производим настройку на стороне хостинга, выставив нужную версию.
Результат: Если сайт небольшой, относительно новый и создавался с использованием стандартных компонентов Битрикс (с минимальными внесениями изменений) или на каком-либо готовом решении, то он запустится без каких-либо проблем. К сожалению, за нашу практику мы ни разу не встретили сайт, который достаточно просто обновить. Так что нам такой вариант не подходит. Поэтому мы работаем по второму сценарию.
Данный метод пригодится если у вас:
С этим нам чаще всего и приходится работать.
Сразу оговоримся, лицензия на решение 1С-Битрикс у вас должна быть активной в любом случае. Вносить правки в ядро — отчаянный шаг.
Итак, процесс:
1. Создаем полную резервную копию сайта.
2. Обновляем ядро, как и в рекомендуемом способе. Если вы вносили изменения в ядре или штатных компонентах, то вам необходимо перенести все измененные файлы в папку local.
3. Переходим в установленные решения и обновляем все, что можно обновить. Если и сторонние решения правили, то переносим все изменения и доработки в local-папку.
4. Далее включаем вывод ошибок в настройках, файл /bitrix/.settings.php.
5. Затем настраиваем хостинг и активируем 8-ку.
6. После переходим на сайт и видим ошибки. Читаем текст ошибки и вносим изменения в файлы указанные в тексте ошибки. Информации по типовым ошибкам море. Вот лишь несколько примеров, которых будет достаточно для практически любого сайта:
От себя можем добавить некоторые тонкости, которых нет в описанных выше мануалах.
Описанное выше может решить штатный администратор сайта. Углубляться детальнее нет смысла. Более сложные моменты требуют специальных знаний.
Таким способом мы уже перевели на новые рельсы практически всех наших клиентов. А теперь решили поделиться инструкцией. И если понадобится, готовы помочь реализовать ее.