Перейти к основному содержанию
 

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

phpBB 3.3 Proteus

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

phpbb

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

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 была в приоритете.

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

phpbb

Advanced system settings.

phpbb

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

phpbb

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

phpbb

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

Расширения

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

phpbb

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

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

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

phpbb

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

phpbb

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

phpbb

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

phpbb

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

phpbb

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

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

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

phpbb

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

phpbb

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

phpbb

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

Обновление на 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.

phpbb

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

phpbb

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

phpbb

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

phpbb

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

phpbb

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

phpbb

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

phpbb

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

phpbb

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

phpbb

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

phpbb

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

phpbb

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

phpbb

phpbb

phpbb

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

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

phpbb

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

phpbb

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

iisreset

phpbb

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

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

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

phpbb

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

phpbb

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

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

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

Выполняем:

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

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

phpbb

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

phpbb

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

phpbb

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

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

phpbb

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

phpbb

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

phpbb

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

phpbb

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

phpbb

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

phpbb

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.

phpbb

phpbb

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

phpbb

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

phpbb

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

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

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

phpbb

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

phpbb

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

phpbb

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

phpbb

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

phpbb

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

phpbb

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

phpbb

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

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

phpbb

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

Profile Side switcher

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

phpbb

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

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

phpbb

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

phpbb

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

Contact Admin

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

phpbb

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

phpbb

Правим код, находим функцию 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', '<=');
	}

phpbb

Меняем на:

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

phpbb

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

Lightbox

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

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

phpbb

А именно, в файле 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

phpbb

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

phpbb

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

phpbb

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

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

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

phpbb

P.S.

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

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

phpbb

phpbb

phpbb

Теги