Гид по технологиям

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

• 6 min read • DevOps • Обновлено 23 Nov 2025
Установка Vanilla Forum на FreeBSD 12 — Nginx, MariaDB, PHP
Установка Vanilla Forum на FreeBSD 12 — Nginx, MariaDB, PHP

Иллюстрация установки Vanilla Forum

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.

Мастер установки Vanilla Forum

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

После установки вы увидите панель администратора Vanilla.

Интерфейс Vanilla Forum на Nginx и FreeBSD

Проверки и базовый контрольный список перед запуском

  • Убедитесь, что 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)

  1. Обновить систему и установить зависимости.
  2. Установить и настроить MariaDB, создать базу.
  3. Установить PHP-FPM и нужные расширения.
  4. Установить и настроить Nginx.
  5. Загрузить и распаковать Vanilla.
  6. Настроить сертификаты и включить HTTPS.
  7. Провести smoke-тесты и мониторинг.

Риски и рекомендации по смягчению

  • Риск: компрометация учётной записи администратора.
    Митигирование: используйте сложные пароли и двухфакторную аутентификацию при возможности.

  • Риск: утечка резервных копий.
    Митигирование: шифруйте бэкапы и храните их в ограниченном хранилище.

  • Риск: устаревшие компоненты (PHP/MariaDB).
    Митигирование: планируйте регулярные обновления и тестирование на стейдже.

Короткий глоссарий

  • PHP-FPM — менеджер процессов PHP.
  • acme.sh — клиент для получения сертификатов от ACME-провайдеров (например, Let’s Encrypt).
  • fullchain.pem — полный цепной файл сертификата (сертификат + промежуточные).

Полезные ссылки

Краткое резюме

Установка Vanilla на FreeBSD 12 возможна в несколько шагов: подготовить систему, установить PHP и MariaDB, настроить Nginx и опционально получить сертификаты через acme.sh. После распаковки Vanilla завершите установку через веб-мастер и выполните базовые проверки безопасности и работоспособности.

Важно: тестируйте изменения на стейдж-сервере перед переносом в продакшн.

Поделиться: X/Twitter Facebook LinkedIn Telegram
Автор
Редакция

Похожие материалы

Несколько аккаунтов Skype: Multi Skype Launcher
Программное обеспечение

Несколько аккаунтов Skype: Multi Skype Launcher

Журнал для работы: повысить продуктивность
Productivity

Журнал для работы: повысить продуктивность

Персональные звуки уведомлений на Android
Android.

Персональные звуки уведомлений на Android

Скачивание шоу Hulu для офлайн‑просмотра
Стриминг

Скачивание шоу Hulu для офлайн‑просмотра

Microsoft Start: персонализированная новостная лента
Новости

Microsoft Start: персонализированная новостная лента

Как изменить имя в Epic Games быстро
Гайды

Как изменить имя в Epic Games быстро