Вышел phpBBex 1.9.7 с поддержкой PHP 8.3, SMTP+TLS, и умной автонастройкой сервера

Список разделов phpBBex 1.x (поддерживается) Новости 1.x

Описание: Новости проекта phpBBex 1.x. Поддерживаются PHP 5.4+, 7.0+ и 8.0+.

Сообщение #1 VEG » 19.11.2023, 17:32

Вышел phpBBex 1.9.7, основанный на phpBB 3.0.14. Теперь phpBBex 1.x поддерживает и PHP 8.3!

Скачать: phpbbex_v1.9.7.7z (1.15 MB). Репозиторий на GitHub →

Требования:
  • PHP 5.6 (не рекомендуется), 7.0+ (рекомендуется 7.4), 8.0+.
  • MySQL 5.5+ или MariaDB 5.5+.

Что нового?

Поддержка PHP 8.3

Поддержка PHP 7.0+ улучшается в phpBBex с каждым новым релизом начиная с версии 1.9.3. phpBBex 1.9.7 рекомендуется использовать на PHP 7.4 (так как поддержка этой версии лучше всего протестирована), но даже самый новый PHP 8.3 уже тоже поддерживается. Устаревший PHP 5.6 всё ещё поддерживается, но настоятельно рекомендуется обновиться, так как переход на PHP 7.0+ даёт заметный прирост производительности и снижает нагрузку на сервер.

Изображение

Согласно статистике WordPress, PHP 5.x используется менее чем на 5% веб-серверов с PHP. Самое время обновиться и вам!

Избавление от устаревшего кода

Новая миссия phpBBex − быть легковесным движком форумов, каким был оригинальный phpBB 3.0. И даже тут есть где избавиться от лишнего жирка.

  • Удалено много устаревшего кода для поддержки устаревших версий PHP. Для работы phpBBex нужен PHP 5.6 и выше.
  • Удалена неиспользуемая в phpBB 3.0 и phpBBex система хуков.
  • Удалён код поддержки IE5-IE10 в редакторе BBCode. IE11 всё ещё поддерживается.
  • Очищен код работы с БД от неподдерживаемых типов БД.
  • Из config.php удалён неиспользуемый параметр $dbms (во всех версиях phpBBex он мог быть только mysql).
  • Из config.php удалён вредный параметр $load_extensions, который использовался при некорректной конфигурации сервера и мог приводить к значительному замедлению работы форума. Все требуемые расширения PHP должны быть явно включены в конфигурации PHP, их динамическая подгрузка только скрывала проблему.
  • Удалены нерелевантные для phpBBex и устаревшие текстовые документы, такие как история изменений оригинального phpBB 3.0.
  • UMIL переехал в includes и доступен только в standalone варианте (всё остальное не использовалось).

Дистрибутив phpBBex полегчал почти на 100 килобайт!

Поддержка SMTP с TLS для доставки писем

Поддержка SMTP была значительно доработана. SMTP через TLS теперь тоже поддерживается, так что при желании можно настроить отправку писем, например, через Gmail. Для этого нужно указать адрес SMTP-сервера с префиксом tls:// (например, tls://smtp.gmail.com) и порт 465.

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

Полностью автоматические настройки сервера и cookies

В оригинальном phpBB ещё со времён на заре интернета всегда присутствовали настройки cookies и путей, некорректное изменение которых могло легко привести к полной неработоспособности форума и невозможности зайти под администратором, чтобы их исправить обратно. 20 лет назад эти настройки возможно и имели смысл, но с тех пор появились возможности полностью автоматически получать верные значения этих параметров, которые всегда будут работать и не приведут к поломке форума. Что и было сделано в phpBBex 1.9.7.

Все современные браузера корректно поддерживают cookies, поэтому нет необходимости поддерживать передачу номера сессии SID через URL на страницах пользователя, что имело смысл наверное только лет 25 назад. phpBBex не делал этого по умолчанию изначально, но была опция включения этой функции, требующей немало запутанного кода. Смысл был в том, что она могла помочь администратору попасть обратно в админку в случае установки неверных настроек cookies. Но так как теперь все настройки cookies устанавливаются автоматически, удалось упростить код движка и полностью избавиться от установки SID через URL на страницах для посетителей. Это не касается админки. В админкее SID передаётся через URL как дополнительная мера безопасности, где он используется не для поддержания сессии, а для её верификации.

В крайне редких случаях, когда нужно изменить автоматически выбранные значения настроек сервера и cookies, это можно сделать из config.php, что гораздо более логичное место для системных настроек такого типа.

Более логичная система прав

В оригинальном phpBB 3.0 система прав всегда была перегружена, и целый ряд прав не имел смысла. Например, право печати темы на самом деле просто убирало кнопку печати, но при этом пользователю всё равно ничто не мешало распечатать страницу. Или право пересылки личного сообщения просто убирало кнопку, но пользователю ничто не мешало скопировать текст сообщения и переслать его куда нужно. В phpBB 3.1+ многие из этих прав были упрощены и сделаны более разумными, и phpBBex перенимает лучшее.

Доработанная обработка ошибок

Исключения из новых версий PHP корректно отлавливаются и обрабатываются так же как и другие ошибки. При этом предупреждения PHP более не ломают работу сайта. Это изменение позволит текущей версии phpBBex работать и на ещё не вышедших версиях PHP 8.x, так как ломающие совместимость изменения всегда сразу ограничиваются предупреждением, и только потом при выходе новой мажорной версии они становятся ошибками.

Отображение всех предупреждений можно включить обратно установкой @define('ERROR_REPORTING', E_ALL); либо включением отладочного режима @define('DEBUG', true); в config.php. Эти параметры будут полезны, если вы делаете какие-то изменения в коде и хотите убедиться, что в нём нет скрытых проблем, и что код готов к будущим версиям PHP.

Другие полезные изменения

  • В URL viewtopic.php больше не добавляется ненужный параметр f (как всегда было на phpbbex.com, но было недоступно в обычной версии движка).
  • Корректно показывается имя темы для сообщений (с префиксом «Re: ») в панели модератора.
  • Исправлена ошибка, когда переключатель разделов при переносе и объединении тем сбрасывал текущий режим.
  • Все файлы .htaccess наконец обновлены для совместимости с Apache 2.4+.
  • Расширение No Follow Externals теперь доступно для всех пользователей по умолчанию бесплатно.
  • Упоминание phpBBex в копирайтах не обязательно, копирайт phpBBex не добавляется если пользователь указал какой-то свой копирайт.
  • Немного сокращены тексты email-уведомлений.
  • Исправлена давняя ошибка, из-за которой пользователю мог отдаваться CSS, не соответствующий языку форума.
  • Кнопка цитирования теперь появляется и при выделении пальцем на сенсорном экране (а не только мышкой).
  • Скрипт обновления БД database_update.php переименован в db_update.php и научился обновлять все версии phpBBex 1.x.x и phpBB 3.0.x.
  • Инсталлятор больше не спрашивает необязательные настройки, которые потом можно поменять в панели администратора.
  • Инсталлятор создаёт config.php на самом последнем этапе, чтобы избежать ситуации, когда форум ещё не установлен, но файл конфигурации присутствует и скрипты форума уже пытаются работать.

Обновление c phpBBex 1.0.0+ до 1.9.7

  1. Сделайте резервную копию вашего сайта (как файлов, так и БД).
  2. Удалите файлы предыдущей версии phpBBex (кроме config.php, файлов аватар в каталоге ./images/avatars/ и файлов вложений в каталоге ./files/), на их место запишите файлы новой версии (не перезаписывая config.php). Если вы обновляетесь со старых версий phpBBex до 1.5.2 или phpBB 3.0, в каталоге загруженных аватар ./images/avatars/upload/ обязательно необходимо удалить старый файл .htaccess.
  3. Запустите через браузер install/db_update.php?purge=all&bots=1. Скрипт попросит создать файл вида allow_upd_*.key в каталоге cache. Создайте такой файл и запустите скрипт ещё раз. Должна появиться надпись OK.

После обновлений со старых версий phpBBex или phpBB 3.0 могли остаться некоторые хвосты, которые нужно удалить в админке:

  • Зайдите "Система" › "Управление модулями" › "Панель администратора" › "Общие" › "Конфигурация сервера", удалите "ACP_SEND_STATISTICS" (было удалено в версии 1.9.5) и "ACP_COOKIE_SETTINGS" (было удалено в версии 1.9.7).
  • Зайдите "Система" › "Управление модулями" › "Администраторский раздел" › "Система" › "Автоматизация", удалите "ACP_VERSION_CHECK" (было удалено в версии 1.3.0).
  • Зайдите "Пользователи и группы" › "Управление группами", удалите устаревшую группу "REGISTERED_COPPA" (была удалена в версии 1.9.6).
  • Зайдите "Сообщения" › "Вложения" › "Группы расширений", удалите устаревшую группу "QUICKTIME_MEDIA" (была удалена в версии 1.7.1). Вместо неё используйте новые группы "HTML5-аудио" и "HTML5-видео", которые отображают поддерживаемые файлы в виде плеера и поддерживают следующие расширения: ogg, opus, flac, webm, wav, mp3, mp4, m4a, m4v.

Все ваши изменения придётся проделать повторно. Если у вас большое количество изменений, переносить их со старой версии форума на новую версию может быть утомительным. Вручную вносить правки из новой версии в вашу версию тоже плохой вариант — изменений слишком много. Для автоматизации процесса обновления рекомендуется освоить Git, и использовать последнюю версию движка из репозитория проекта.

Конвертация из phpBB 3.0.0 - 3.0.14

  1. Сделайте резервную копию вашего сайта (как файлов, так и БД).
  2. Если у вас установлены стили, отличные от prosilver, удалите их через админку и установите стиль prosilver для всех пользователей по умолчанию. Для этого зайдите в "Стили", и там на страницах "Стили", "Шаблоны", "Темы" и "Наборы рисунков" удалите всё, что отличается от prosilver. Если этого не сделать, после копирования файлов phpBBex вы получите ошибку, поскольку в комплекте с ним идёт только стиль prosilver.
  3. Если у вас есть хоть одно важное (глобальное) объявление — обязательно сделайте их обычными перед конвертацией (после конвертации вы сможете сделать их обратно глобальными).
  4. Далее следуйте инструкции обновления phpBBex 1.0.0 до phpBBex последней версии, которую вы найдёте выше, только скрипт db_update.php нужно запустить дважды (за первый запуск он обновит базу до phpBB 3.0.14, а за второй запуск уже до phpBBex последней версии). Если у вас были установлены модификации, могут возникнуть ошибки (что-то вроде «колонка такая-то уже существует»), но большинство из них легко разрешается (спрашивайте, поможем).
  5. После этого зайдите в "Админка" › "Система" › "Управление модулями" › "Администраторский раздел" и добавьте модули "Быстрый ответ", "Верхние ссылки", "Управление вложениями", "Настройки отображения" и "Лог регистраций" в подходящие вам разделы. Не забудьте включить эти модули после добавления.
  6. Зайдите в "Админка" › "Система" › "Управление модулями" › "Модераторский раздел" и добавьте модуль "Редактировать предупреждение" в категорию "Предупреждения".
  7. Для отображения аватар их необходимо синхронизировать. Зайдите в STK (подкаталог ./stk/) › "Admin Tools" › "Resynchronise avatars", нажмите "Yes" и подождите, пока не появится надпись "Avatars successfully resynchronised".
  8. Для установки новых пакетов смайликов: Зайдите в "Админка" › "Сообщения" › "Смайлики" › "Установить пакет смайликов", выберите phpbbex.pak или phpbb3.pak (в зависимости от того, какой пакет смайликов вы хотите), выберите радиокнопку "Удалить все" и нажмите "Установить пакет смайликов".
  9. Не забудьте установить зарегистрированным пользователям новое право оценивать сообщения.

Обновление кодировки уже существующей базы с utf8mb3 на utf8mb4

Если вы обновляетесь с версии меньше 1.9.6, рекомендуется также обновить кодировку БД со старой utf8mb3 на новую utf8mb4, что обеспечит поддержку emoji. К сожалению, процесс конвертации может быть нетривиальным, если вы использовали множество дополнительных модификаций. Обязательно сделайте бэкап базы перед конвертацией, так как достаточно велик риск, что что-то пойдёт не так. Затем запустите install/db_update.php?purge=cache&utf8mb4=1, создайте файл что вас попросит, и запустите скрипт повторно. Начнётся конвертация. Процесс конвертации может занять несколько минут! В самом конце, если всё хорошо, вы увидите OK. Если же в процессе возникла ошибка, ваша база будет в частично конвертированном состоянии, и лучше восстановить версию из бэкапа. Если у вас возникли проблемы с конвертацией, спрашивайте в этой теме — поможем. Скорее всего нужно будет немного подправить скрипт конвертации под особенности вашей базы.

Смотрите также

VEG M
Автор темы, Администратор
Аватара
Откуда: Finland
Репутация: 1653
С нами: 11 лет 11 месяцев

Сообщение #2 VEG » 25.11.2023, 13:00

В первоначальный релиз закрался небольшой баг, который приводил к тому, что в IE11 сессия запоминалась только до закрытия браузера. Согласно caniuse.com, IE8-11 должны поддерживать параметр Max-Age в Set-Cookie, но по-видимому это ошибочная информация, и на практике для него требуется дополнительно указывать устаревший параметр Expires.

Хоть IE11 и почти не используется, он всё ещё поддерживается в phpBBex, поэтому v1.9.7 перевыпущена с этим небольшим исправлением. Обновление доступно по всем старым ссылкам.

На самом деле, я изначально планировал выпустить v1.9.7 именно сегодня, но так как казалось, что уже всё запланированное и так готово, сделал это на неделю раньше. Немного поспешил :oops:
VEG M
Автор темы, Администратор
Аватара
Откуда: Finland
Репутация: 1653
С нами: 11 лет 11 месяцев


Вернуться в Новости 1.x



cron