Установка Vanilla Forum на Ubuntu 18.04 LTS с Nginx и MySQL

Vanilla — это свободное, открытое форумное ПО, написанное на PHP и распространяемое по лицензии GNU GPL2. Исходный код доступен на GitHub. У Vanilla развитая система дополнений, поддерживается Markdown для оформления контента. В этом руководстве мы пройдём установку и базовую настройку Vanilla Forum на Ubuntu 18.04 LTS с Nginx в качестве веб‑сервера и MySQL в качестве сервера базы данных. Опционально показан способ получить TLS‑сертификат при помощи acme.sh и Let’s Encrypt.
Что вы получите из этой инструкции
- Полный список требований и предварительных шагов.
- Команды для установки PHP, MySQL, Nginx и Vanilla.
- Инструкции по получению и установке сертификатов Let’s Encrypt через acme.sh.
- Рекомендации по безопасности, правам доступа и типичные ошибки.
- Чеклисты для администратора, разработчика и модератора.
Требования
Vanilla требует сервер с PHP, MySQL (или совместимым) и веб‑сервером (Nginx/Apache). Для установки в продакшн обычно нужен публичный домен, корректный DNS‑запись и доступ по SSH от непользовательской учётной записи с sudo.
Минимальные требования:
- PHP 7.0 или новее (рекомендуется ≥ 7.2).
- PHP‑модули: mbstring, curl, gd, PDO, MySQLi, OpenSSL.
- MySQL 5.0+ (или MariaDB/Percona эквивалент).
- Веб‑сервер (Nginx или Apache).
- MySQL strict mode отключён.
Рекомендации:
- PHP 7.2 или новее.
- MySQL 5.7+ (или MariaDB/Percona эквивалент).
- SSL (HTTPS).
Важно: PHP 7.0 больше не получает обновлений безопасности. Ubuntu 18.04 по умолчанию поставляется с PHP 7.2, что отвечает актуальной рекомендации.
Предварительные требования
- Сервер с Ubuntu 18.04 LTS.
- Непривилегированный пользователь с правами sudo.
Начальные шаги
Проверьте версию Ubuntu:
lsb_release -ds
# Ubuntu 18.04.1 LTSНастройте часовой пояс:
sudo dpkg-reconfigure tzdataОбновите пакеты системы:
sudo apt update && sudo apt upgrade -yУстановите вспомогательные утилиты:
sudo apt install -y curl wget vim git unzip socat bash-completionШаг 1 — Установка PHP и необходимых расширений
Установите PHP и требуемые расширения (пример для 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Посмотреть загруженные модули PHP:
php -m
# Пример вывода:
# ctype
# curl
# exif
# fileinfo
# ...Проверить версию PHP:
php --version
# Пример вывода:
# PHP 7.2.10-0ubuntu0.18.04.1 (cli) (built: Sep 13 2018) ( NTS )PHP‑FPM обычно запускается и включается в автозагрузку автоматически на Ubuntu 18.04.
Шаг 2 — Установка MySQL и создание базы данных для Vanilla Forum
Vanilla поддерживает MySQL, MariaDB и Percona. В примере используем MySQL.
Установите MySQL:
sudo apt install -y mysql-serverПроверка версии MySQL:
mysql --version
# mysql Ver 14.14 Distrib 5.7.24, for Linux (x86_64)Запустите скрипт повышения безопасности MySQL и задайте пароль для root:
sudo mysql_secure_installationОтвечайте на вопросы утилиты примерно так (пример):
- Would you like to setup VALIDATE PASSWORD plugin? N
- New password: your_secure_password
- Remove anonymous users? Y
- Disallow root login remotely? Y
- Remove test database and access to it? Y
- Reload privilege tables now? Y
Подключитесь к консоли MySQL как root:
sudo mysql -u root -p
# Введите парольСоздайте базу и пользователя для Vanilla (замените значения на ваши):
mysql> CREATE DATABASE vanilladb;
mysql> GRANT ALL ON vanilladb.* TO 'vanillauser' IDENTIFIED BY 'strong_password_here';
mysql> FLUSH PRIVILEGES;
mysql> exitВажно сохранить имя базы, имя пользователя и пароль — они потребуются в инсталляторе Vanilla.
Шаг 3 — Установка acme.sh и получение сертификата Let’s Encrypt (опционально)
HTTPS не обязателен, но настоятельно рекомендуется. acme.sh — лёгкий клиент на shell для получения сертификатов от Let’s Encrypt.
Установка 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 --version
# vX.Y.ZВыдача сертификата (standalone):
# RSA 2048
acme.sh --issue --standalone -d example.com --keylength 2048
# ECDSA
acme.sh --issue --standalone -d example.com --keylength ec-256Для тестирования используйте флаг –staging.
По умолчанию сертификаты будут в каталоге пользователя, например /home/username/example.com.
Создаём директории в /etc/letsencrypt и устанавливаем сертификаты туда:
sudo mkdir -p /etc/letsencrypt/example.com
sudo mkdir -p /etc/letsencrypt/example.com_ecc
# Установка RSA
sudo 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
sudo 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 автоматически устанавливает cron/renewal и обновляет сертификаты (обычно за 60 дней до истечения).
Выйдите из root, если выходили:
exitImportant: При использовании standalone acme.sh порт 80 должен быть свободен. Для автоматической валидации лучше использовать webroot или интеграцию с web‑сервером.
Шаг 4 — Установка и конфигурация Nginx для Vanilla Forum
Если вы предпочитаете Apache, смотрите документацию Vanilla. Здесь — конфигурация Nginx.
Установка Nginx:
sudo apt install -y nginxПроверка версии:
sudo nginx -v
# nginx version: nginx/1.14.0 (Ubuntu)Создайте файл конфигурации:
sudo vim /etc/nginx/sites-available/vanilla.confПример содержимого файла (адаптируйте server_name и пути):
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;
}
}Важно: приведённый конфиг — базовый. Для продакшна добавьте строгие заголовки безопасности, rate‑limit и логирование.
Активируйте сайт и проверьте конфигурацию:
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):
sudo chown -R your_user:your_user /var/www/vanillaПерейдите в каталог и скачайте архив Vanilla:
cd /var/www/vanilla
wget https://open.vanillaforums.com/get/vanilla-core-2.6.4.zip
unzip vanilla-core-2.6.4.zip
rm vanilla-core-2.6.4.zipНастройте права для веб‑сервера:
sudo chown -R www-data:www-data /var/www/vanillaОткройте в браузере ваш домен/IP и следуйте инструкциям инсталлятора.
Шаг 6 — Завершение установки в браузере
После перехода на сайт должен открыться инсталлятор Vanilla. Заполните поля подключения к базе, данные администратора и путь к сайту, затем нажмите Continue.

После успешной установки вы попадёте в админ‑панель Vanilla.

Полезные настройки и рекомендации по безопасности
- Всегда используйте HTTPS в продакшне.
- Запретите доступ к конфигурационным и служебным каталогам (как показано в конфиге Nginx).
- Файловые права: файлы — 644, каталоги — 755; собственник — www-data.
- Отключите display_errors в php.ini на продакшне.
- Делайте регулярные бэкапы базы и каталога uploads.
- Обновляйте Vanilla и плагины через официальные релизы.
Короткая проверка прав доступа:
# Установите корректные права
sudo find /var/www/vanilla -type d -exec chmod 755 {} \;
sudo find /var/www/vanilla -type f -exec chmod 644 {} \;
sudo chown -R www-data:www-data /var/www/vanillaОтладка и распространённые ошибки
- 500 Internal Server Error: проверьте error_log Nginx и логи PHP‑FPM.
- Белая страница или ошибка подключения к БД: проверьте параметры в конфиге, учётные данные и права пользователя в MySQL.
- Ошибки SSL: проверьте права на ключи и путь в конфиге Nginx; убедитесь, что сертификаты актуальны.
- acme.sh: если порт 80 занят, используйте webroot либо временно остановите Nginx для получения сертификата.
Когда этот подход может не подойти (контрпример)
- Вы хотите использовать Windows‑сервер — инструкция для Linux/Ubuntu и не применима.
- У вас ограниченная хостинг‑панель без доступа к SSH — потребуется другой метод установки.
- В средах с SELinux (например CentOS/Fedora) потребуется дополнительная настройка безопасности.
Альтернативные подходы
- Apache вместо Nginx: используйте официальную документацию Vanilla для конфигурации Apache.
- Docker‑контейнер: упакуйте Vanilla, PHP‑FPM и MySQL в контейнеры для изоляции и лёгкого развёртывания.
- Использование управляемой базы данных (RDS) и CDN для статических ресурсов.
Модель принятия решения (упрощённо)
- Нужен быстрый VPS и максимальное управление: выбирайте Ubuntu + Nginx + MySQL.
- Нужна простота и масштабирование: рассматривайте Docker/Kubernetes и управляемые БД.
- Желаете минимальные усилия: используйте хостинг с готовой установкой форумного ПО.
flowchart TD
A[Есть VPS с Ubuntu?] -->|Да| B{Нужен HTTPS?}
A -->|Нет| X[Выберите хостинг с управлением]
B -->|Да| C[Установить acme.sh и Nginx]
B -->|Нет| D[Установить Nginx без SSL]
C --> E[Установить PHP, MySQL, Vanilla]
D --> E
E --> F[Запустить инсталлятор в браузере]Роль‑ориентированные чеклисты
Администратор (DevOps):
- Создать пользователя с sudo.
- Обновить систему и установить PHP/MySQL/Nginx.
- Настроить SSL и автоматическое обновление сертификатов.
- Настроить бэкапы базы и файлов.
- Настроить мониторинг и логи.
Разработчик/интегратор:
- Убедиться, что PHP‑расширения установлены.
- Проверить работоспособность модулей и плагинов Vanilla.
- Настроить окружение для тестирования (staging).
- Подготовить миграцию/апдейты шаблонов и тем.
Модератор/админ форума:
- Создать учётную запись администратора в инсталляторе.
- Проверить настройки безопасности и правила регистрации.
- Настроить модераторские группы и права.
Тесты и критерии приёмки
- Сайт доступен по HTTP/HTTPS и перенаправляет корректно.
- Инсталлятор завершился без ошибок; можно войти в админ‑панель.
- Создание темы и поста работает; файлы загружаются в uploads.
- Бэкапы базы восстанавливаются на тестовом стенде.
Базовый SOP (шаги для быстрой установки)
- Обновить систему: sudo apt update && sudo apt upgrade -y.
- Установить PHP + расширения.
- Установить MySQL и создать БД/пользователя.
- Установить Nginx и настроить виртуальный хост.
- Скачать и распаковать Vanilla в /var/www/vanilla.
- Настроить права и перезагрузить сервисы.
- Завершить установку через веб‑интерфейс.
Совместимость и миграция
- Версии PHP: старайтесь использовать версии, официально поддерживаемые Vanilla. При переходе на PHP 7.3/7.4 тестируйте плагины.
- Базы данных: MySQL ↔ MariaDB обычно совместимы, но проверяйте SQL‑диалекты при миграции.
- Версии Vanilla: читайте заметки к релизам перед обновлением.
Приватность и GDPR (коротко)
- Обрабатывайте персональные данные по принципу минимизации.
- Настройте политику конфиденциальности и уведомление о cookies для пользователей ЕС.
- При запросах на удаление данных реализуйте процесс удаления/анонимизации.
Краткое резюме
Vanilla легко разворачивается на Ubuntu 18.04 с использованием Nginx и MySQL. Рекомендуется использовать PHP ≥7.2 и обеспечить HTTPS для продакшн‑сайта. Следуйте чеклистам для разных ролей и регулярно обновляйте ПО и бэкапы.
Ссылки:
Похожие материалы
Несколько аккаунтов Skype: Multi Skype Launcher
Журнал для работы: повысить продуктивность
Персональные звуки уведомлений на Android
Скачивание шоу Hulu для офлайн‑просмотра
Microsoft Start: персонализированная новостная лента