Установка 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 — Завершение установки через веб-интерфейс
После открытия вашего домена в браузере вы будете перенаправлены на экран установки.

Заполните необходимые поля и нажмите кнопку Continue (Продолжить) для завершения установки. После этого появится административная панель 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 (официальная документация содержит подсказки).
Мини-методология установки (сжатая последовательность)
- Подготовить сервер и обновить пакеты.
- Установить PHP + расширения.
- Установить MariaDB и создать БД/пользователя.
- (Опционально) Получить TLS-сертификаты через acme.sh.
- Настроить Nginx и активировать сайт.
- Развернуть файлы 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. Проведите финальную проверку прав доступа, безопасности и бэкапов перед запуском в продакшн.
Похожие материалы
Несколько аккаунтов Skype: Multi Skype Launcher
Журнал для работы: повысить продуктивность
Персональные звуки уведомлений на Android
Скачивание шоу Hulu для офлайн‑просмотра
Microsoft Start: персонализированная новостная лента