Найти тему

phpBB — обновление до 3.3.0

Оглавление

Обновим форум с версии 3.2.9 на версию 3.3.0. Текущий форум работает на IIS. PHP версии 5.6.31. Минимально поддерживаемая phpBB 3.3 Proteus версия PHP повышена до PHP 7.1.3. Так что вместе с форумом придётся обновить PHP. Кроме того, в новой версии форума отказываются работать многие расширения, будем их чинить.

-2

Подготовительные работы

PHP

Сперва установим PHP 7.3.7 на IIS. Установим также PHP Manager for IIS, чтобы в любой момент переключить версию PHP. Про установку PHP на IIS написал здесь:

Установка PHP 7.3.7 на IIS 10

Устанавливаем. Без новой версии PHP не удастся даже запустить инсталлятор phpBB 3.3.0.

У меня большая база данных, поэтому обновлять саму базу форума будем через командную строку. Поскольку у меня установлено одновременно несколько версий PHP, то настроим серверные переменные так, чтобы версия PHP 7.3.7 была в приоритете.

Правой кнопкой на "Мой компьютер", свойства.

-3

Advanced system settings.

-4

Вкладка Advanced > Environment Variables.

-5

В разделе System variables выделяем параметр Path и нажимаем Edit.

-6

Находим PHP v7.3 и перемещаем кнопкой Move Up выше остальных версий PHP. Ok. Сохраняем изменения.

Расширения

Подготовим имеющиеся расширения к переходу на новую версию. В первую очередь — обновите все свои расширения до последней версии.

-7

Board Rules у меня требует обновления... Ссылка "Перепроверить все версии" поможет.

Устанавливаем расширение [3.2][3.3][RC] Extension .yml check.

https://www.phpbb.com/community/viewtopic.php?t=2528456

-8

Скачиваем, распаковываем, устанавливаем.

-9

Включаем новое расширение.

-10

Появляется новая ссылка в Персонализация > Управление расширениями > Extension .yml check.

-11

Данное расширение проверяет у других расширений синтаксис YML файлов на соответствие phpBB 3.3. Скроллим вниз.

-12

Красным помечены расширения с ошибками. Можно нажать на YML файл справа и увидеть содержимое и предлагаемый вариант исправления. Есть два распространённых бага.

  • Pattern нужно заменить на path.
  • Расставить обязательные кавычки.

Вот пример исправления для pattern:

-13

Вот пример исправления для кавычек:

-14

Внесите изменения в файлы расширений, вы можете воспользоваться предлагаемым кодом, но будьте осторожны, проверяйте. Случается, что Extension .yml check предлагает некорректную замену, как, например, здесь:

-15

Видно, что правая кавычка уехала куда-то далеко. Правим файлы до тех пор, пока все расширения не позеленеют. К сожалению, это не позволяет исправить все ошибки. Часть расширений так и не заработает без дополнительного вмешательства. Решение проблем с некоторыми распространёнными расширениями рассмотрим после обновления форума.

Обновление на phpBB 3.3

Инструкция по установке:

https://www.phpbb.com/support/docs/en/3.3/ug/upgradeguide/upgrade32/

По инструкции выполняем обновление.

Скачиваем дистрибутив phpBB 3.3:

https://www.phpbb.com/downloads/

Нас интересует full 3.3.0 package.

-16

Скачиваем phpBB-3.3.0.zip и распаковываем в отдельную директорию.

-17

В настройках конференции устанавливаем стиль prosilver.

-18

Персонализация > стили. Деактивируем остальные стили.

-19

Мой стиль — prosilver Special Edition, мной специально отредактирован. Он старый, для версии 3.2.0, удалю его, потом новый сделаю, это уже отдельная история, которая здесь не рассматривается.

-20

Удаляю свой старый стиль.

-21

Теперь у форума один стиль — prosilver.

-22

Переходим к расширениям.

-23

Отключаем все.

-24

Снова переходим в настройки конференции и меняем язык на British English.

-25

Персонализация > языковые пакеты.

-26

Удаляем все пакеты кроме British English.

-27
-28
-29

В распакованном нами новом дистрибутиве удаляем:

  • files
  • images
  • store
  • config.php
  • web.config
-30

Останавливаем сайт.

-31

Перезапускаем IIS:

iisreset
-32

Иногда IIS зажимает некоторые файлы и их не удаётся удалить, перезапуск помогает.

Удаляем на сайте всё кроме:

  • ext
  • files
  • images
  • store
  • config.php
  • web.config
  • и ваши собственные файлы, не относящиеся к форуму
-33

Копируем с заменой всё из распакованной папки дистрибутива на сайт.

-34

Дожидаемся окончания копирования.

Пришло время обновить базу. Запускаем командную строку от администратора. Переходим в папку сайта:

cd C:\ваш_сайт

Выполняем:

php ./bin/phpbbcli.php db:migrate --safe-mode

Естественно, php запускается из версии 7.3.7, переменную Path мы для этого и меняли. Получается нечто такое:

-35

Видим [OK] The database update was successful. В IIS запускаем сайт.

-36

Из папки сайта удаляем директорию install.

-37

Заходим по ссылке:

https://www.phpbb.com/languages/

-38

И качаем перевод форума для версии 3.3.

-39

Я скачиваю russian_2_1_3.zip. Распаковываем.

-40

Копируем содержимое в корень сайта.

-41

Текущую версию PHP сайта на IIS можно посмотреть в PHP Manager.

-42

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

-43
You are running an unsupported PHP version. Please upgrade to PHP 7.1.3 or higher before trying to install or update to phpBB 3.3

В PHP Manager меняем версию PHP на 7.3.7.

-44
-45

Проверяем работу сайта.

-46

Сайт заработал. Заходим в админку.

-47

Версия PHP 7.3.7, версия форума 3.3.0. Обновление прошло успешно.

Приводим всё в порядок

Теперь нужно вернуть все настройки на прежние. Русскую локализацию мы уже скачали, включим. Переходим в Customize > Language packs.

-48

Устанавливаем русский язык — Install.

-49

В Board settings устанавливаем Default language — Русский.

-50

Снова возвращаемся в Customize > Language pack, удаляем British English.

-51

После удаления все пользователи начинают использовать русский язык, интерфейс админки теперь снова на русском.

-52

Теперь можно снова установить British English, пусть будет.

-53

У нас два языка, русский — основной.

-54

На самом деле вы устанавливайте языковые пакеты те, которые нужны именно вашему форуму.

А теперь самое интересное, начинаем по одному включать расширения обратно.

-55

Некоторые у меня включились без проблем, а некоторые — нет. Рассмотрим способы лечения некоторых расширений.

Profile Side switcher

Profile Side switcher версии 1.0.0 у меня при включении сломал форум. Отключаем расширение (или не включаем), нажимаем "Удалить данные".

-56

Решение проблемы простое, обновить расширение до версии 1.0.1.

https://www.phpbbguru.net/community/viewtopic.php?t=42377

-57

Обновляем расширение на 1.0.1.

-58

Расширение Profile Side switcher заработало.

Contact Admin

Расширение Contact Admin 1.1.10 не заработало.

-59

Решение — редактируем в расширении файл ext.php.

-60

Правим код, находим функцию is_enableable()

public function is_enableable()
{
$config = $this->container->get('config');
// only allow install between 3.1.3 for events added and 3.4 due to 3.4 removing upload function from includes/functions_posting per 3.2
// phpBB only supports 3.2 and so will I
return phpbb_version_compare($config['version'], '3.2', '>=') && phpbb_version_compare($config['version'], '3.3', '<=');
}
-61

Меняем на:

public function is_enableable()
{
return phpbb_version_compare(PHPBB_VERSION, '3.2.0', '>=');
}
-62

После этого расширение работает.

Расширение Lightbox после включения форум не поломало, но сам эффект Lightbox перестал работать. Решение есть здесь:

https://www.phpbb.com/customise/db/extension/lightbox/support/topic/211641?p=722721#p722721

-63

А именно, в файле resizer.js находим код:

$(this).load();

И меняем на:

$(this).trigger('load');

После этих изменения Lightbox работает как положено.

Yandex Metrika

Расширение Yandex Metrika написано мной. Версия 1.0.2 не совместима с phpBB 3.3. Решение простое, запомните код своего счётчика Яндекс метрики, удалите расширение, сотрите папку с расширением. Скачайте и установите Yandex Metrika 1.0.3. Введите код в настройках форума.

Расширение Yandex Metrika для phpBB 3.3

-64

Скачиваем Yandex Metrika 1.0.3. Старую папку ya_metrika удаляем, новую yametrika вставляем. В этом вся соль, в phpBB 3.3 нельзя в имени расширения использовать знак подчёркивания. В коде также имеются соответствующие изменения.

-65

Затем я создал новый стиль для форума и внёс свои правки, здесь создание стилей не рассматриваю.

-66

Пример форума на phpBB 3.3.0:

https://юкучино.рф

И самое главное! Регистрируем новый ключ ReCaptcha на https://www.google.com/recaptcha и переходим на новую невидимую капчу:

-67

P.S.

Бонус — исправление ошибки при удалении сразу нескольких сообщений:

https://github.com/phpbb/phpbb/pull/5821/files

-68
-69
-70

Источник:
https://internet-lab.ru/phpbb_from_3_2_9_to_3_3_0

Если вам понравилась статья, то ставьте 👍🏻 каналу.
Пишите комментарии, задавайте вопросы, подписывайтесь.