Похожие элементы

1С:Битрикс
1С:Битрикс Управление сайтом

"1С-Битрикс: Управление сайтом" - система управления контентом веб-проекта (CMS) от российской компании «Битрикс».

Обновление PHP до 8.1

Задача: обновить до последней версии ПО "1С-Битрикс: Управление сайтом" на сайте https://www.zashita-pravo.ru 

Сайт размещен на ресурсах хостинг-провайдера TimeWeb

Информация о последней версии ПО 1С приходит в рассылке по электронной почте c адреса Адрес электронной почты защищен от спам-ботов. Для просмотра адреса в браузере должен быть включен Javascript., на 03.08.2024 информация такая:

"Информационное сообщение сайта www.1c-bitrix.ru
-------------------------------------------------------
Уважаемый пользователь!
Установите обновление программного продукта "1C-Битрикс: Управление сайтом" прямо сейчас!
Какие обновления доступны для вашего сайта?
Служба сообщений
24.400.0
- Добавлена возможность останавливать отправку СМС в режиме очереди.
- Разработчикам: добавлены события очереди 'OnBeforeProcessQueue', 'OnAfterProcessQueue', 'OnBeforeSendMessageFromQueue', 'OnAfterSendMessageFromQueue' для управления, аналитики и контроля отправки СМС.

UI-библиотека
24.200.500
- Добавлена новая иконка в набор."

Решение:

  1. Зайти в панель управления (https://hosting.timeweb.ru) под аккаунтом владельца сайта.
  2. В разделе панели управления "Сайты \ Резервные копии" создать резервную копию файлов сайта и базы данных. Дождаться завершения операции создания резервной копии сайта: в  разделе "Статус задач" операция "Создание резервной копии по требованию" из статуса "В процессе" должна перейти в статус "Выполнено".
  3. В разделе "Сайты \ Мои сайты" нажать на зелёный значок шестеренки (Настройки сайта), временно переключить настройку "Версия PHP и PYTHON" на PHP 8.3, нажать кнопку "Сохранить настройки"
  4. Открыть консоль администрирования сайта (https://www.zashita-pravo.ru/bitrix/admin), перейти в раздел "Marketplace \ Обновление платформы", произвести обновление ПО "1С-Битрикс: Управление сайтом".
  5. Вернуть в панели управления TimeWeb Hosting в настройках сайта версию PHP 7.4.

Старая версия: 1С-Битрикс: Управление сайтом 23.300.200
Новая версия: 1С-Битрикс: Управление сайтом 24.0.700

Проверка сайта на уровне PHP 8.4 выдает ошибки:

[Error]
Undefined constant "PAGEN_2" (0)
/home/c/cy71313/zashita-pravo.ru/public_html/bitrix/templates/main/header.php:431
#0: include_once /home/c/cy71313/zashita-pravo.ru/public_html/bitrix/modules/main/include/prolog_after.php:88
#1: require(string) /home/c/cy71313/zashita-pravo.ru/public_html/bitrix/modules/main/include/prolog.php:11
#2: require_once(string) /home/c/cy71313/zashita-pravo.ru/public_html/bitrix/header.php:1
#3: require(string) /home/c/cy71313/zashita-pravo.ru/public_html/personal/index.php:2

После возврата PHP 7.4 сайт перестал открываеться. В браузере возвращается HTTP ERROR 500. 

В логах веб-сервера - ошибки:

PHP Fatal error:  
Uncaught Error: Call to undefined function Bitrix\\Main\\str_ends_with() in /home/c/cy71313/zashita-pravo.ru/public_html/bitrix/modules/main/lib/loader.php:388
Stack trace:
#0 [internal function]: Bitrix\\Main\\Loader::autoLoad('Bitrix\\\\Main\\\\ORM...')
#1 /home/c/cy71313/zashita-pravo.ru/public_html/bitrix/modules/main/lib/loader.php(330): spl_autoload_call('Bitrix\\\\Main\\\\ORM...')
#2 /home/c/cy71313/zashita-pravo.ru/public_html/bitrix/modules/main/include/autoload.php(361): Bitrix\\Main\\Loader::registerHandler(Array)
#3 /home/c/cy71313/zashita-pravo.ru/public_html/bitrix/modules/main/include/urlrewrite.php(9): require_once('/home/c/cy71313...')
#4 /home/c/cy71313/zashita-pravo.ru/public_html/bitrix/urlrewrite.php(2): include_once('/home/c/cy71313...')
#5 {main}\n  thrown in /home/c/cy71313/zashita-pravo.ru/public_html/bitrix/mo

Решение: полное восстановление файлов сайта и базы данных с резервной копии, сделанной до обновления.

Проверка сайта в консоли администратора показывает 2 проблемы:

Обязательные параметры PHP: Ошибка! Установлена версия PHP 7.4.33, требуется 8.0.0 и выше
Кодировка базы данных: Ошибка! Кодировка базы (utf8mb4) отличается от кодировки соединения (utf8)

Создание тестовой копии сайта

Для создания тестовой копии сайта создается тикет в службу поддержки TimeWeb. Тестовая копия сайта доступна по URL https://zashitaprav.webtm.ru/ (логины и пароли те же, как на основном сайте).

Инструкция от ChatGPT (https://t.me/GPT4Telegrambot) по обновлению сайта для совместимости с PHP 8.4:

Чтобы перевести сайт на 1С-Битрикс с PHP 7.3 на PHP 8.4, выполните следующие шаги:
### 1. Проверка совместимости
Перед обновлением убедитесь, что ваша версия 1С-Битрикс и все используемые модули совместимы с PHP 8.4. Для этого:
- Ознакомьтесь с [официальной документацией Битрикс](https://dev.1c-bitrix.ru/learning/course/index.php?COURSE_ID=43&LESSON_ID=2436) по совместимости версий.
- Проверьте, не используются ли устаревшие функции или библиотеки, которые могут вызвать ошибки при переходе на новую версию PHP.

### 2. Резервное копирование
Перед любыми изменениями обязательно создайте резервную копию вашего сайта и базы данных. Это позволит восстановить сайт в случае возникновения проблем.

### 3. Обновление 1С-Битрикс
Если ваша версия Битрикс устарела, обновите её до последней стабильной версии, которая поддерживает PHP 8.4. Это можно сделать через административную панель:
- Перейдите в раздел «Обновление системы».
- Следуйте инструкциям для обновления.

### 4. Обновление PHP
Теперь необходимо обновить версию PHP на вашем сервере:
- **Для Linux (например, Ubuntu)**:
  1. Добавьте репозиторий с новой версией PHP:
          sudo add-apt-repository ppa:ondrej/php
     sudo apt-get update
     
  2. Установите PHP 8.4:
          sudo apt-get install php8.4
     
  3. Установите необходимые расширения:
          sudo apt-get install php8.4-mysql php8.4-xml php8.4-mbstring php8.4-curl php8.4-gd php8.4-intl
     
  4. Перезапустите веб-сервер:
          sudo systemctl restart apache2
     
     или
          sudo systemctl restart nginx
     
- **Для Windows**:
  - Скачайте последнюю версию PHP с [официального сайта PHP](https://windows.php.net/download/) и следуйте инструкциям по установке.

### 5. Настройка конфигурации

После установки PHP 8.4 проверьте файл конфигурации php.ini на наличие необходимых настроек для вашего сайта (например, memory_limit, upload_max_filesize, и т.д.).

### 6. Тестирование

После обновления PHP выполните тестирование вашего сайта:

- Проверьте все основные функции и страницы.
- Обратите внимание на ошибки или предупреждения в логах.
- Используйте инструменты для тестирования производительности и совместимости.

### 7. Исправление ошибок

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

- Обновить код, чтобы устранить устаревшие функции.
- Установить или обновить модули, которые могут быть несовместимы с новой версией PHP.

### Заключение

Обновление версии PHP — это важный шаг к повышению безопасности и производительности вашего сайта на 1С-Битрикс. Следуя вышеуказанным шагам и тщательно тестируя сайт после обновления, вы сможете успешно перейти на PHP 8.4.