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

Установка

Установка плагина

После добавления лицензии в License Manager установите плагин через GPM, как любой другой:

bin/gpm install forum-pro

Плагин также можно установить из Admin → Plugins. После включения Forum Pro добавляет пункт Forum в боковую панель админки и регистрирует собственные команды CLI в bin/plugin forum-pro.

Включение публичной части

Публичный форум по умолчанию выключен, чтобы установка плагина не открывала маршруты раньше времени. Включите его в Admin → Plugins → Forum Pro → General или в user/config/plugins/forum-pro.yaml:

frontend:
  enabled: true
  route: /forum

Откройте /forum. В SQLite схема обновляется автоматически при первом использовании, и форум сразу начинает работать.

Настройка базы данных

SQLite (по умолчанию)

Настраивать ничего не нужно. База данных создаётся по адресу user/data/forum-pro/db/forum.sqlite, а рядом записываются защитные файлы, запрещающие доступ к ней.

Предупреждение

Стандартные конфигурации Grav для nginx не блокируют загрузку .sqlite, а nginx игнорирует .htaccess. Если вы обслуживаете Grav через nginx, добавьте в блок сервера:

location ~* /user/data/forum-pro/ { deny all; }

Вкладка Status в админке сообщает, доступен ли файл базы данных через интернет, чтобы вы могли убедиться, что блокировка работает.

MySQL, MariaDB или PostgreSQL

Настройте блок database для своего сервера:

database:
  type: mysql          # sqlite | mysql | pgsql
  mysql:
    host: localhost
    port: 3306
    dbname: grav_forum
    username: forum
    password: '...'
database:
  type: pgsql
  pgsql:
    host: localhost
    port: 5432
    dbname: grav_forum
    username: forum
    password: '...'
    sslmode: prefer

Если вы уже используете плагин Database, можно сослаться на одно из его именованных подключений вместо повторного указания учётных данных:

database:
  connection: my-named-connection

Одна и та же схема и одни и те же миграции работают на всех трёх движках. CI Forum Pro прогоняет полный набор тестов на SQLite, MySQL 8 и PostgreSQL 16 с PHP 8.3 и 8.4.

Политика миграций

auto_migrate: sqlite-only    # auto | sqlite-only | manual
  • sqlite-only (по умолчанию) автоматически применяет ожидающие миграции в SQLite, а на остальных движках требует ручного запуска.
  • auto применяет миграции автоматически на любом движке.
  • manual никогда не применяет их автоматически.

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

bin/plugin forum-pro migrate --status   # показать, что будет выполнено
bin/plugin forum-pro migrate            # применить

Фоновый процесс

Forum Pro перекладывает реальную работу на планировщик Grav: доставку почты, выдачу значков, очистку по срокам хранения, очистку сессий, подсчёт просмотров, дайджест для модераторов и запланированные проверки спама. Добавьте планировщик в crontab:

* * * * * cd /path/to/grav && bin/grav scheduler 1>> /dev/null 2>&1

Вкладка Status в админке выводит точную строку для вашей установки, включая нужный бинарник PHP, и сообщает, запускался ли планировщик недавно.

Очередь также можно один раз обработать вручную — это полезно при отладке:

bin/plugin forum-pro work

Подключение форума

По умолчанию форум доступен по frontend.route (/forum). Чтобы разместить его в другом месте, включая корень сайта, создайте страницу и назначьте ей тип Forum. Форум займёт маршрут этой страницы.

Это безопасно благодаря трём правилам:

  1. Реальные страницы сайта всегда имеют приоритет над маршрутами форума, поэтому существующая страница по тому же пути продолжает отображаться как обычно.
  2. /forum продолжает работать, если страница подключения не создана.
  3. Форум, подключённый в корне, сосуществует с остальным сайтом. Ваш блог, документация и целевые страницы не затрагиваются.

Чтобы подключить форум в корне сайта, сделайте страницу форума домашней страницей Grav и укажите пустой маршрут:

# user/config/system.yaml
home:
  alias: /forum          # папка страницы Forum

# user/config/plugins/forum-pro.yaml
frontend:
  route: ''

Тогда категории будут доступны по адресам вроде /general-discussion, темы — по /general-discussion/some-title-t123, а слаг самой страницы подключения (/forum) будет перенаправлять на /. Это естественная схема для форума, который заменяет собой домен установки XenForo.

Зарезервированные маршруты

При auth.enabled (значение по умолчанию) Forum Pro обслуживает собственную систему учётных записей по маршрутам, зарезервированным под корнем форума:

Маршрут Назначение
{forum}/login Вход
{forum}/register Создание учётной записи
{forum}/verify Подтверждение электронной почты
{forum}/reset Сброс пароля
{forum}/settings Настройки участника
{forum}/logout Выход
{forum}/u/<username> Публичный профиль
{forum}/members Список участников
{forum}/search Поиск
{forum}/messages Личные сообщения
{forum}/notifications Список уведомлений
{forum}/bookmarks Ваши закладки
{forum}/tags Просмотр меток
{forum}/queue Очередь проверки для модераторов

Настройка доверенного URL сайта

Ссылки для сброса пароля и подтверждения электронной почты строятся от абсолютного базового URL. В рабочем окружении задайте его явно, чтобы подменённый заголовок Host не мог перенаправить ссылку сброса на сайт злоумышленника:

security:
  site_url: 'https://my-site.example'

Если значение пустое, Forum Pro использует system.custom_base_url, а затем хост запроса, записывая предупреждение в журнал.

Дальнейшие шаги

Откройте Admin → Forum → Structure, создайте первый раздел и категорию, затем изучите Конфигурацию.