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

Установка Vanilla Forum на Debian 9 с Nginx, MariaDB и SSL

• 6 min read • Системное администрирование • Обновлено 23 Nov 2025
Vanilla Forum на Debian 9: Nginx, MariaDB и SSL
Vanilla Forum на Debian 9: Nginx, MariaDB и SSL

Краткое описание

Vanilla — это свободное open-source решение для обсуждений, написанное на PHP и распространяемое под лицензией GNU GPL2. Исходный код доступен на GitHub. Система поддерживает плагины и темы, а контент может быть написан на Markdown. В этом руководстве показано, как установить Vanilla Forum на сервер с Debian 9, используя Nginx как веб-сервер, MariaDB как СУБД и, при желании, обеспечить TLS через acme.sh и Let’s Encrypt.

Важно: в примерах используются версии, указанные в исходном материале (например, PHP 7.2, MariaDB 10.2). Если вы разворачиваете в продакшн, рассмотрите использование актуальных стабильных версий PHP и баз данных.

Что вы получите в этом руководстве

  • Подготовка сервера Debian 9
  • Установка PHP 7.2 и расширений, требуемых Vanilla
  • Установка MariaDB и создание базы данных/пользователя
  • Опциональное получение сертификатов с помощью acme.sh и Let’s Encrypt
  • Конфигурация Nginx для работы Vanilla
  • Установка файлов Vanilla и завершение установки через веб-интерфейс
  • Практические советы по безопасности, чек-листы и рекомендации по миграции

Требования

Vanilla требует сервера с PHP, СУБД (MySQL/MariaDB/Percona) и веб-сервером (Nginx или Apache). Для продакшн-установки обычно нужен домен и корректно настроенные DNS-записи.

Минимальные требования:

  • PHP 7.0 или новее.
  • Расширения PHP: mbstring, cURL, GD, PDO, MySQLi, OpenSSL.
  • MySQL 5.0+ или эквивалент (MariaDB/Percona).
  • Веб-сервер (Nginx, Apache и т. п.).
  • Отключён строгий режим MySQL.

Рекомендуется:

  • PHP 7.2 или новее.
  • MySQL 5.7 или новее (или эквивалент MariaDB/Percona).
  • SSL/TLS — для безопасного соединения.

Примечание: PHP 7.0 больше не получает патчей безопасности; настоятельно рекомендуется использовать поддерживаемые версии PHP.

Предварительные условия

  • Сервер с Debian 9 (stretch).
  • Ненулевой пользователь с sudo-привилегиями (не root).

Начальные шаги (подготовка системы)

Проверьте версию Debian:

lsb_release -ds  
# Debian GNU/Linux 9.7 (stretch)

Установите правильный часовой пояс:

sudo dpkg-reconfigure tzdata

Обновите пакеты системы:

sudo apt update && sudo apt upgrade -y

Установите часто используемые утилиты:

sudo apt install -y curl wget vim git unzip socat bash-completion apt-transport-https lsb-release ca-certificates dirmngr software-properties-common

Шаг 1 — Установка PHP и расширений

Добавьте репозиторий для более новой версии PHP и обновите индексы:

sudo wget -O /etc/apt/trusted.gpg.d/php.gpg https://packages.sury.org/php/apt.gpg  
echo "deb https://packages.sury.org/php/ $(lsb_release -sc) main" | sudo tee /etc/apt/sources.list.d/php.list  
sudo apt update && sudo apt upgrade -y

Установите PHP 7.2 и нужные расширения:

sudo apt install -y php7.2 php7.2-cli php7.2-fpm php7.2-common php7.2-mbstring php7.2-curl php7.2-gd php7.2-mysql php7.2-json

Проверка установленных модулей (пример вывода):

php -m  
  
ctype  
curl  
exif  
fileinfo  
. . .  
. . .

Проверка версии PHP:

php --version  
  
# PHP 7.2.14-1+0~20190113100742.14+stretch~1.gbpd83c69 (cli) (built: Jan 13 2019 10:07:43) ( NTS )  
# Copyright (c) 1997-2018 The PHP Group  
# Zend Engine v3.2.0, Copyright (c) 1998-2018 Zend Technologies  
# with Zend OPcache v7.2.14-1+0~20190113100742.14+stretch~1.gbpd83c69, Copyright (c) 1999-2018, by Zend Technologies

На Debian 9 служба php-fpm обычно запускается и включается в автозагрузку автоматически.

Шаг 2 — Установка MariaDB и создание базы данных для Vanilla

Vanilla поддерживает MySQL/MariaDB/Percona. В этом руководстве — MariaDB 10.2 из репозитория MariaDB:

sudo apt-key adv --recv-keys --keyserver keyserver.ubuntu.com 0xF1656F24C74CD1D8  
sudo add-apt-repository 'deb [arch=amd64,i386,ppc64el] https://mirrors.nxthost.com/mariadb/repo/10.2/debian stretch main'  
sudo apt update  
sudo apt install -y mariadb-server

Проверьте версию MariaDB:

mysql --version

Запустите скрипт безопасной начальной настройки:

sudo mysql_secure_installation

Примеры ответов в интерактивном режиме (следуйте подсказкам):

Would you like to setup VALIDATE PASSWORD plugin? N  
New password: your_secure_password  
Re-enter new password: your_secure_password  
Remove anonymous users? [Y/n] Y  
Disallow root login remotely? [Y/n] Y  
Remove test database and access to it? [Y/n] Y  
Reload privilege tables now? [Y/n] Y

Подключитесь к оболочке MariaDB и создайте базу и пользователя:

sudo mysql -u root -p  
# Enter password

mariadb> CREATE DATABASE dbname;  
mariadb> GRANT ALL ON dbname.* TO 'username' IDENTIFIED BY 'mypassword';  
mariadb> FLUSH PRIVILEGES;

Замените dbname, username и mypassword на собственные значения. Затем выйдите:

mariadb> exit

Шаг 3 — Установка acme.sh и получение сертификата Let’s Encrypt (опционально)

TLS не обязателен, но настоятельно рекомендуется для продакшн-сайта. В руководстве используется acme.sh — лёгкий клиент на shell без внешних зависимостей.

Установка acme.sh:

sudo su - root  
git clone https://github.com/Neilpang/acme.sh.git  
cd acme.sh   
./acme.sh --install --accountemail [email protected]  
source ~/.bashrc  
cd ~

Проверка версии acme.sh:

acme.sh --version  
# v2.8.0

Получение сертификатов RSA и ECDSA:

# 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

Создайте целевой каталог для копий сертификатов (в примере — /etc/letsencrypt):

`mkdir -p /etc/letsecnrypt/example.com`  
`sudo mkdir -p /etc/letsencrypt/example.com_ecc`

Установите сертификаты в системный каталог и задайте reload-команду для Nginx:

# 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 systemctl reload nginx.service"  
  
# 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 systemctl reload nginx.service"

acme.sh автоматически обновляет сертификаты каждые 60 дней по умолчанию.

Вернитесь к обычному sudo-пользователю:

exit

Шаг 4 — Установка и настройка Nginx для Vanilla

Установите Nginx:

sudo apt install -y nginx

Проверьте версию:

sudo nginx -v

Создайте конфигурационный файл:

sudo vim /etc/nginx/sites-available/vanilla.conf

Вставьте следующую конфигурацию (пример):

server {  
  
  listen 80;  
  listen 443 ssl http2;  
  server_name forum.example.com;  
  root /var/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 snippets/fastcgi-php.conf;  
    fastcgi_param SCRIPT_NAME /index.php;  
    fastcgi_param SCRIPT_FILENAME $realpath_root/index.php;  
    fastcgi_param X_REWRITE 1;  
    fastcgi_pass unix:/var/run/php/php7.2-fpm.sock;  
  }  
  
  location ~* \.php(/|$) {  
    rewrite ^ /index.php$uri last;  
  }  
  
  location / {  
    try_files $uri $uri/ @vanilla;  
  }  
  
  location @vanilla {  
    rewrite ^ /index.php$uri last;  
  }  
  
}

Примечание: для боевой эксплуатации используйте рекомендованную официальную конфигурацию Nginx для Vanilla на странице документации проекта.

Активируйте сайт и проверьте конфигурацию:

sudo ln -s /etc/nginx/sites-available/vanilla.conf /etc/nginx/sites-enabled
sudo nginx -t
sudo systemctl reload nginx.service

Шаг 5 — Установка файлов Vanilla Forum

Создайте корневую папку сайта и установите владельца:

sudo mkdir -p /var/www/vanilla

Замените {your_user} на имя вашего не-root пользователя и выполните:

sudo chown -R {your_user}:{your_user} /var/www/vanilla

Перейдите в корень сайта и загрузите архив Vanilla:

cd /var/www/vanilla
wget https://open.vanillaforums.com/get/vanilla-core-2.8.1.zip

Распакуйте и удалите архив:

unzip vanilla-core-2.8.1.zip
rm vanilla-core-2.8.1.zip
mv vanilla-2.8.1/* . && mv vanilla-2.8.1/.* .

Установите корректные права для веб-сервера:

sudo chown -R www-data:www-data /var/www/vanilla

Откройте сайт в браузере и следуйте инструкциям веб-инсталлятора.

Шаг 6 — Завершение установки через веб-интерфейс

После открытия вашего домена в браузере вы будете перенаправлены на экран установки.

Инсталлятор Vanilla Forum — экран ввода данных

Заполните необходимые поля и нажмите кнопку Continue (Продолжить) для завершения установки. После этого появится административная панель Vanilla Forum.

Интерфейс Vanilla Forum в браузере

Практические советы и безопасность

  • Права доступа: каталоги с загружаемыми файлами и кешем должны принадлежать www-data, но критические конфигурационные файлы не должны быть доступны по вебу.
  • Запрет доступа к чувствительным каталогам уже включён в пример конфигурации Nginx (/.git, /conf, /vendor и др.).
  • Регулярно создавайте бэкапы базы данных и каталога uploads.
  • Обновляйте PHP и пакеты ОС для получения исправлений безопасности.
  • Если вы используете режим строгой проверки паролей MySQL, следите за совместимостью с приложением; Vanilla требует отключённого strict mode.

Чек-листы по ролям

Администратор системы (sysadmin):

  • Подготовить сервер (обновления, базовый софт).
  • Установить PHP и расширения.
  • Развернуть MariaDB и создать базу/пользователя.
  • Настроить acme.sh/Let’s Encrypt (опционально).
  • Настроить и протестировать Nginx.
  • Настроить бэкапы и мониторинг.

Владелец форума / контент-админ:

  • Пройти установку через веб-интерфейс.
  • Настроить административную учётную запись и базовые параметры форума.
  • Установить нужные плагины/темы.
  • Настроить политику модерации и правила сообщества.

Критерии приёмки

  • Сайт доступен по HTTP и (опционально) по HTTPS.
  • Веб-инсталлятор Vanilla успешно завершил настройку.
  • Пользовательская и административная панели функционируют.
  • Базы данных доступны, и соединение установлено.
  • Nginx не выдаёт ошибок при проверке конфигурации (nginx -t).

Миграция и когда это не подходит

  • Если вы используете старую или неподдерживаемую версию PHP (<7.0), обновите PHP перед установкой.
  • Для высоконагруженных проектов рассмотрите нагрузочное тестирование и горизонтальное масштабирование (кеширование, балансировка).
  • Если вы предпочитаете Apache, адаптируйте конфигурацию сервера под Apache (официальная документация содержит подсказки).

Мини-методология установки (сжатая последовательность)

  1. Подготовить сервер и обновить пакеты.
  2. Установить PHP + расширения.
  3. Установить MariaDB и создать БД/пользователя.
  4. (Опционально) Получить TLS-сертификаты через acme.sh.
  5. Настроить Nginx и активировать сайт.
  6. Развернуть файлы Vanilla и завершить через веб-инсталлятор.

Глоссарий — 1 строка

  • PHP-FPM: менеджер процессов PHP для FastCGI.
  • acme.sh: клиент для получения сертификатов Let’s Encrypt на shell.
  • Nginx: лёгкий и быстрый веб-сервер.

Ссылки

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

Vanilla Forum — лёгкий в установке PHP-форум с поддержкой плагинов и Markdown. Следуя этому руководству, вы развернёте Vanilla на Debian 9 с Nginx и MariaDB и, при необходимости, добавите HTTPS через acme.sh / Let’s Encrypt. Проведите финальную проверку прав доступа, безопасности и бэкапов перед запуском в продакшн.

Поделиться: 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 быстро