Установка¶
Установка плагина¶
После добавления лицензии в License Manager установите плагин через GPM, как любой другой:
Плагин также можно установить из Admin → Plugins. После включения Forum Pro добавляет пункт Forum в боковую панель админки и регистрирует собственные команды CLI в bin/plugin forum-pro.
Включение публичной части¶
Публичный форум по умолчанию выключен, чтобы установка плагина не открывала маршруты раньше времени. Включите его в Admin → Plugins → Forum Pro → General или в user/config/plugins/forum-pro.yaml:
Откройте /forum. В SQLite схема обновляется автоматически при первом использовании, и форум сразу начинает работать.
Настройка базы данных¶
SQLite (по умолчанию)¶
Настраивать ничего не нужно. База данных создаётся по адресу user/data/forum-pro/db/forum.sqlite, а рядом записываются защитные файлы, запрещающие доступ к ней.
Предупреждение
Стандартные конфигурации Grav для nginx не блокируют загрузку .sqlite, а nginx игнорирует .htaccess. Если вы обслуживаете Grav через nginx, добавьте в блок сервера:
Вкладка 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, можно сослаться на одно из его именованных подключений вместо повторного указания учётных данных:
Одна и та же схема и одни и те же миграции работают на всех трёх движках. CI Forum Pro прогоняет полный набор тестов на SQLite, MySQL 8 и PostgreSQL 16 с PHP 8.3 и 8.4.
Политика миграций¶
sqlite-only(по умолчанию) автоматически применяет ожидающие миграции в SQLite, а на остальных движках требует ручного запуска.autoприменяет миграции автоматически на любом движке.manualникогда не применяет их автоматически.
Миграции берут блокировку базы данных, поэтому два одновременных запроса не могут применить один шаг дважды. Применить их вручную можно так:
bin/plugin forum-pro migrate --status # показать, что будет выполнено
bin/plugin forum-pro migrate # применить
Фоновый процесс¶
Forum Pro перекладывает реальную работу на планировщик Grav: доставку почты, выдачу значков, очистку по срокам хранения, очистку сессий, подсчёт просмотров, дайджест для модераторов и запланированные проверки спама. Добавьте планировщик в crontab:
Вкладка Status в админке выводит точную строку для вашей установки, включая нужный бинарник PHP, и сообщает, запускался ли планировщик недавно.
Очередь также можно один раз обработать вручную — это полезно при отладке:
Подключение форума¶
По умолчанию форум доступен по frontend.route (/forum). Чтобы разместить его в другом месте, включая корень сайта, создайте страницу и назначьте ей тип Forum. Форум займёт маршрут этой страницы.
Это безопасно благодаря трём правилам:
- Реальные страницы сайта всегда имеют приоритет над маршрутами форума, поэтому существующая страница по тому же пути продолжает отображаться как обычно.
/forumпродолжает работать, если страница подключения не создана.- Форум, подключённый в корне, сосуществует с остальным сайтом. Ваш блог, документация и целевые страницы не затрагиваются.
Чтобы подключить форум в корне сайта, сделайте страницу форума домашней страницей 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 не мог перенаправить ссылку сброса на сайт злоумышленника:
Если значение пустое, Forum Pro использует system.custom_base_url, а затем хост запроса, записывая предупреждение в журнал.
Дальнейшие шаги¶
Откройте Admin → Forum → Structure, создайте первый раздел и категорию, затем изучите Конфигурацию.