Установка Vanilla Forum на FreeBSD 12 с Nginx и MariaDB

Vanilla — бесплатная открытая платформа для форума на PHP. В этой пошаговой инструкции показано, как установить Vanilla Forum на FreeBSD 12 с Nginx, MariaDB и PHP-FPM. Опционально описано получение TLS-сертификата через acme.sh и Let’s Encrypt, а также базовые рекомендации по безопасности и проверке работоспособности.
Важно: перед установкой убедитесь, что у вас есть резервные копии и доступ по sudo.
Что вы получите
- Пошаговую инструкцию по настройке PHP 7.3, MariaDB 10.2 и Nginx на FreeBSD 12.0.
- Команды для получения сертификатов Let’s Encrypt через acme.sh.
- Проверочные команды и короткий чек-лист для продакшн-готовности.
Требования
Vanilla требует сервер с PHP, MySQL/MariaDB и веб-сервером (Nginx или Apache). Для продакшн-установки настоятельно рекомендуется доменное имя и HTTPS.
Минимальные требования Vanilla:
- PHP 7.0 или новее.
- PHP-расширения: mbstring, cURL, GD, PDO/MySQLi, OpenSSL.
- MySQL 5.0+ или эквивалент (MariaDB/Percona).
- Веб-сервер (Nginx/Apache).
- Рекомендуется отключённый строгий режим MySQL (strict mode).
Рекомендуется:
- PHP 7.2 или новее.
- MySQL/MariaDB 5.7+ или эквивалент.
- SSL/TLS для шифрования трафика.
В этом руководстве используется PHP 7.3 и MariaDB 10.2.
Предварительные условия
- Сервер с FreeBSD 12.
- Нерутовый пользователь с правами sudo.
Начальные шаги
Проверьте версию FreeBSD:
uname -ro
# FreeBSD 12.0-RELEASEНастройте часовой пояс:
tzsetupОбновите систему и пакеты:
freebsd-update fetch install
pkg update && pkg upgrade -yУстановите базовые утилиты:
pkg install -y sudo vim unzip wget bash socatШаг 1 — Установка PHP и расширений
Установите PHP и необходимые расширения (в примере — php73):
sudo pkg install -y php73 php73-mbstring php73-curl php73-gd php73-pdo php73-mysqli php73-pdo_mysql php73-json php73-openssl php73-ctype php73-dom php73-hash php73-iconv php73-tokenizer php73-calendar php73-fileinfo php73-session php73-simplexml php73-xml php73-filterПроверьте версию PHP:
php --version
# PHP 7.3.9 (cli) (built: Jul 25 2019 01:28:53) ( NTS )
# Copyright (c) 1997-2018 The PHP Group
# Zend Engine v3.3.7, Copyright (c) 1998-2018 Zend Technologies
# with Zend OPcache v7.3.7, Copyright (c) 1999-2018, by Zend TechnologiesВключите и запустите PHP-FPM:
sudo sysrc php_fpm_enable=yes
sudo service php-fpm startПроверьте статус сервиса при необходимости:
sudo service php-fpm statusШаг 2 — Установка MariaDB и создание базы данных
Vanilla поддерживает MySQL, MariaDB и Percona. В примере используем MariaDB 10.2:
sudo pkg install -y mariadb102-client mariadb102-serverПроверьте версию MariaDB:
mysql --versionВключите и запустите сервис MySQL/MariaDB:
sudo sysrc mysql_enable="yes"
sudo service mysql-server startЗапустите скрипт повышения безопасности:
sudo mysql_secure_installationОтвечайте на вопросы сценария, например:
- VALIDATE PASSWORD plugin? — N
- Новая парольная фраза для root — ваш надёжный пароль
- Удалить анонимных пользователей? — Y
- Запретить удалённый вход root? — Y
- Удалить тестовую базу? — Y
- Перезагрузить таблицы привилегий? — Y
Подключитесь к MariaDB как root:
sudo mysql -u root -p
# затем введите парольСоздайте базу данных и пользователя для Vanilla (замените значения):
CREATE DATABASE dbname;
GRANT ALL ON dbname.* TO 'username' IDENTIFIED BY 'mypassword';
FLUSH PRIVILEGES;Выйдите из консоли:
exitВажно: используйте надёжные пароли и сохраните их в защищённом месте.
Шаг 3 — Установка acme.sh и получение сертификата Let’s Encrypt (опционально)
HTTPS защищает данные пользователей. Acme.sh — лёгкий клиент для получения сертификатов от Let’s Encrypt.
Скачайте и установите acme.sh:
sudo su - root
git clone https://github.com/Neilpang/acme.sh.git
cd acme.sh
./acme.sh --install --accountemail you@example.com
source ~/.bashrc
cd ~Проверьте версию acme.sh:
acme.sh --version
# v2.8.2Запросите сертификат RSA и ECDSA для домена example.com (замените на ваш домен):
# RSA 2048
acme.sh --issue --standalone -d example.com --keylength 2048
# ECDSA
acme.sh --issue --standalone -d example.com --keylength ec-256Для тестирования используйте флаг –staging.
Каталоги с выдаваемыми сертификатами по умолчанию будут расположены в вашем домашнем каталоге, например:
- RSA: /home/username/example.com
- ECC/ECDSA: /home/username/example.com_ecc
Список выданных сертификатов:
acme.sh --listСоздайте папки для копий сертификатов (локализовано для FreeBSD):
sudo mkdir -p /etc/letsencrypt/example.com
sudo mkdir -p /etc/letsencrypt/example.com_eccУстановите сертификаты в целевые файлы и настройте команду перезагрузки Nginx (на FreeBSD используйте service):
# RSA
acme.sh --install-cert -d example.com \
--cert-file /etc/letsencrypt/example.com/cert.pem \
--key-file /etc/letsencrypt/example.com/private.key \
--fullchain-file /etc/letsencrypt/example.com/fullchain.pem \
--reloadcmd "sudo service nginx reload"
# ECC/ECDSA
acme.sh --install-cert -d example.com --ecc \
--cert-file /etc/letsencrypt/example.com_ecc/cert.pem \
--key-file /etc/letsencrypt/example.com_ecc/private.key \
--fullchain-file /etc/letsencrypt/example.com_ecc/fullchain.pem \
--reloadcmd "sudo service nginx reload"acme.sh автоматически продлевает сертификаты по умолчанию.
Завершите сеанс root и вернитесь к обычному пользователю:
exitШаг 4 — Установка Nginx и конфигурация для Vanilla
Установите Nginx:
sudo pkg install -y nginxПроверьте версию:
nginx -vВключите и запустите Nginx:
sudo sysrc nginx_enable=yes
sudo service nginx startСоздайте конфигурационный файл для Vanilla:
sudo vim /usr/local/etc/nginx/vanilla.confПример содержимого (адаптируйте server_name и пути под ваш сервер):
server {
listen 80;
listen 443 ssl;
server_name example.com;
root /usr/local/www/vanilla;
index index.php;
# RSA
ssl_certificate /etc/letsencrypt/example.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/example.com/private.key;
# ECC
ssl_certificate /etc/letsencrypt/example.com_ecc/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/example.com_ecc/private.key;
location ~* /\.git { deny all; return 403; }
location /build/ { deny all; return 403; }
location /cache/ { deny all; return 403; }
location /cgi-bin/ { deny all; return 403; }
location /uploads/import/ { deny all; return 403; }
location /conf/ { deny all; return 403; }
location /tests/ { deny all; return 403; }
location /vendor/ { deny all; return 403; }
location ~* ^/index\.php(/|$) {
include fastcgi_params;
fastcgi_param SCRIPT_NAME /index.php;
fastcgi_param SCRIPT_FILENAME $realpath_root/index.php;
fastcgi_param X_REWRITE 1;
fastcgi_pass 127.0.0.1:9000;
}
location ~* \.php(/|$) {
rewrite ^ /index.php$uri last;
}
location / {
try_files $uri $uri/ @vanilla;
}
location @vanilla {
rewrite ^ /index.php$uri last;
}
}Примечание: для полнофункциональной продакшн-конфигурации посетите официальную документацию Vanilla по Nginx.
Добавьте include в основной nginx.conf внутри блока http:
include vanilla.conf;Проверьте конфигурацию и перезагрузите Nginx:
sudo nginx -t
sudo service nginx reloadШаг 5 — Установка Vanilla Forum
Создайте корневую папку для веб-контента:
sudo mkdir -p /usr/local/www/vanillaПерейдите в неё:
cd /usr/local/www/vanillaСкачайте архив Vanilla:
sudo wget https://open.vanillaforums.com/get/vanilla-core-3.2.zipРаспакуйте и удалите архив:
sudo unzip vanilla-core-3.2.zip
sudo rm vanilla-core-3.2.zip
sudo mv package/* . && mv package/.* .Установите права владельца на веб-папку:
sudo chown -R www:www /usr/local/www/vanillaОткройте ваш сайт в браузере по адресу http://example.com или https://example.com и следуйте мастеру установки.
Шаг 6 — Завершение установки через веб-интерфейс
После открытия сайта вы должны увидеть мастер установки Vanilla.

Заполните поля мастера: данные базы, учётную запись администратора и параметры сайта. Нажмите Continue → и дождитесь завершения.
После установки вы увидите панель администратора Vanilla.

Проверки и базовый контрольный список перед запуском
- Убедитесь, что PHP-FPM запущен: sudo service php-fpm status.
- Проверьте доступность MariaDB и корректность учётных данных.
- Убедитесь, что права на /usr/local/www/vanilla корректны (веб-сервер может писать в нужные каталоги).
- Проверьте Nginx: sudo nginx -t.
- Откройте сайт в браузере по HTTPS и проверьте валидность сертификата.
- Протестируйте регистрацию, вход и создание темы.
Частые ошибки и как их исправить
500 Internal Server Error после установки.
Проверьте логи Nginx и PHP-FPM. Убедитесь, что права на файлы и каталоги установлены правильно (www:www).Ошибки подключения к базе.
Убедитесь, что имя базы, пользователь и пароль совпадают с настройками, и что MariaDB слушает локально.Проблемы с SSL после переноса сертификатов.
Проверьте пути к файлам fullchain.pem и private.key и перезапустите Nginx.
Альтернативные подходы
- Вместо Nginx можно использовать Apache с mod_php или php-fpm.
- Вместо MariaDB используйте MySQL или Percona, соблюдая совместимость версий.
- Для получения сертификатов можно применять certbot вместо acme.sh.
Роли и чек-листы
Администратор сервера:
- Проверил обновления FreeBSD и установил пакеты.
- Настроил брандмауэр и лимиты (ufw/pf).
DevOps / Разработчик:
- Настроил Nginx и PHP-FPM.
- Обеспечил автоматическое копирование сертификатов и перезагрузку сервиса.
Контент-менеджер:
- Проверил возможность писать сообщения и загружать вложения.
- Проверил работу плагинов/дополнений.
Критерии приёмки
- Сайт доступен по HTTPS без предупреждений в браузере.
- Авторизация/регистрация пользователей работает.
- Можно создавать темы и сообщения.
- Загружаются изображения и файлы (если это разрешено в настройках).
- Нет критических ошибок в логах веб-сервера и PHP.
Мини-методология развёртывания (быстрый SOP)
- Обновить систему и установить зависимости.
- Установить и настроить MariaDB, создать базу.
- Установить PHP-FPM и нужные расширения.
- Установить и настроить Nginx.
- Загрузить и распаковать Vanilla.
- Настроить сертификаты и включить HTTPS.
- Провести smoke-тесты и мониторинг.
Риски и рекомендации по смягчению
Риск: компрометация учётной записи администратора.
Митигирование: используйте сложные пароли и двухфакторную аутентификацию при возможности.Риск: утечка резервных копий.
Митигирование: шифруйте бэкапы и храните их в ограниченном хранилище.Риск: устаревшие компоненты (PHP/MariaDB).
Митигирование: планируйте регулярные обновления и тестирование на стейдже.
Короткий глоссарий
- PHP-FPM — менеджер процессов PHP.
- acme.sh — клиент для получения сертификатов от ACME-провайдеров (например, Let’s Encrypt).
- fullchain.pem — полный цепной файл сертификата (сертификат + промежуточные).
Полезные ссылки
- https://open.vanillaforums.com/
- https://github.com/vanilla/vanilla
- https://docs.vanillaforums.com/developer/backend/server-nginx/
- https://docs.vanillaforums.com/developer/backend/server-apache/
Краткое резюме
Установка Vanilla на FreeBSD 12 возможна в несколько шагов: подготовить систему, установить PHP и MariaDB, настроить Nginx и опционально получить сертификаты через acme.sh. После распаковки Vanilla завершите установку через веб-мастер и выполните базовые проверки безопасности и работоспособности.
Важно: тестируйте изменения на стейдж-сервере перед переносом в продакшн.
Похожие материалы
Несколько аккаунтов Skype: Multi Skype Launcher
Журнал для работы: повысить продуктивность
Персональные звуки уведомлений на Android
Скачивание шоу Hulu для офлайн‑просмотра
Microsoft Start: персонализированная новостная лента