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

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

• 7 min read • Инструкция • Обновлено 25 Nov 2025
Установка Vanilla Forum на Ubuntu 18.04 с Nginx
Установка Vanilla Forum на Ubuntu 18.04 с Nginx

Логотип/фоновая картинка Vanilla Forum

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, если выходили:

exit

Important: При использовании 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 Forum

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

Интерфейс Vanilla Forum

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

  • Всегда используйте 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 (шаги для быстрой установки)

  1. Обновить систему: sudo apt update && sudo apt upgrade -y.
  2. Установить PHP + расширения.
  3. Установить MySQL и создать БД/пользователя.
  4. Установить Nginx и настроить виртуальный хост.
  5. Скачать и распаковать Vanilla в /var/www/vanilla.
  6. Настроить права и перезагрузить сервисы.
  7. Завершить установку через веб‑интерфейс.

Совместимость и миграция

  • Версии PHP: старайтесь использовать версии, официально поддерживаемые Vanilla. При переходе на PHP 7.3/7.4 тестируйте плагины.
  • Базы данных: MySQL ↔ MariaDB обычно совместимы, но проверяйте SQL‑диалекты при миграции.
  • Версии Vanilla: читайте заметки к релизам перед обновлением.

Приватность и GDPR (коротко)

  • Обрабатывайте персональные данные по принципу минимизации.
  • Настройте политику конфиденциальности и уведомление о cookies для пользователей ЕС.
  • При запросах на удаление данных реализуйте процесс удаления/анонимизации.

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

Vanilla легко разворачивается на Ubuntu 18.04 с использованием Nginx и MySQL. Рекомендуется использовать PHP ≥7.2 и обеспечить HTTPS для продакшн‑сайта. Следуйте чеклистам для разных ролей и регулярно обновляйте ПО и бэкапы.


Ссылки:

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