ADPASS рекомендует материал к прочтению
Винтра
02.06.2023, 12:57

Пошаговая инструкция по переходу сайтов на 1С-Битрикс на PHP 8: идеальный и нестандартный методы

«Битрикс» обновил все свои модули и штатные компоненты для работы с PHP 8 и активно принуждает разработчиков сторонних решений обновить код своих продуктов. Вплоть до удаления решения, если оно не поддерживает 8-ю версию. При этом выполнить переход сайта с CMS Bitrix на PHP 8.x не так просто, как кажется на первый взгляд.

Почему важно обновить PHP

Если вы используете сайт под управлением 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. После обновления ядра и всех сторонних модулей переходим к тому, с чего начинали: производим настройку на стороне хостинга, выставив нужную версию.

Нестандартный (комбинированный) метод: последовательность шагов

Данный метод пригодится если у вас:

  • свой уникальный шаблон;

  • кастомные компоненты;

  • решения, не поддерживаемые более разработчиками, но необходимые вам для работы (например, решение «Аспро Медицинский центр 2.0» официально не поддерживается более разработчиком, и к нему не выпускаются никакие обновления);

  • вносились правки в ядро;

  • нет желания или возможности продлевать решение по какой-либо другой причине, например, потому что слишком дорого.

С этим нам чаще всего и приходится работать.

Итак, процесс

1. Создаем полную резервную копию сайта.

2. Обновляем ядро, как и в рекомендуемом способе. Если вы вносили изменения в ядре или штатных компонентах, то вам необходимо перенести все измененные файлы в папку local.

3. Переходим в установленные решения и обновляем все, что можно обновить. Если и сторонние решения правили, то переносим все изменения и доработки в local-папку.

4. Далее включаем вывод ошибок в настройках, файл /bitrix/.settings.php.

5. Затем настраиваем хостинг и активируем 8-ку.

6. После переходим на сайт и видим ошибки. Читаем текст ошибки и вносим изменения в файлы указанные в тексте ошибки.

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

От себя можем добавить некоторые тонкости, которых нет в описанных выше мануалах:

  • Если вы не видите ошибок, а видите белый экран, ищите их в исходном коде (Ctrl + U).

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

  • Обязательно проверьте интерактив сайта, попробуйте произвести все функциональные тесты: отправить форму, проверить калькуляторы, воспользоваться поиском по сайту.

  • Проверьте ошибки в консоли (F12).

  • Проведите проверку системы штатным инструментом /bitrix/admin/site_checker.php? lang=ru. Здесь может оказаться много подсказок в случае проблем.

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

Кстати, digital-агентство «Винтра» — золотой сертифицированный партнер 1С-Битрикс, а также официальный партнер «Аспро».

Вам понравится

Genius Group
40 минут назад
NT Technology
15.04.2024
Иностудио
02.04.2024
Как создать полезный гид
для предпринимателей?