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

Установка Vanilla Forum на CentOS 8 и защита через Let's Encrypt SSL

5 min read Серверы Обновлено 27 Nov 2025
Установка Vanilla Forum на CentOS 8 с SSL
Установка Vanilla Forum на CentOS 8 с SSL

Скриншот или логотип Vanilla Forum

TL;DR

Vanilla — лёгкое и многоязычное ПО для форумов на PHP. В этой инструкции показано, как установить Vanilla на CentOS 8 с Nginx, MariaDB, PHP-FPM и получить бесплатный SSL от Let’s Encrypt. Включены команды, конфигурация Nginx, настройки SELinux и проверка работоспособности.

Важно: все команды выполняйте от пользователя с sudo или от root.

Кому подходит эта инструкция

  • Системным администраторам, которые разворачивают форум на собственном сервере.
  • Разработчикам, которым нужно локальное или боевое окружение на CentOS 8.

Основные шаги (вкратце)

  1. Установить стек LEMP (Nginx, MariaDB, PHP-FPM и расширения).
  2. Настроить базу данных MariaDB для Vanilla.
  3. Скачать и разместить файлы Vanilla в веб-корне.
  4. Настроить PHP-FPM для работы с Nginx.
  5. Добавить виртуальный хост Nginx для Vanilla.
  6. Получить и установить SSL через Certbot (Let’s Encrypt).
  7. Настроить SELinux и брандмауэр.
  8. Пройти веб-инсталлятор Vanilla и завершить настройку.

Требования

  • Сервер с CentOS 8.
  • Доступ root или пользователь с sudo.
  • Доменное имя, указывающее на сервер (в примере используется vanilla.linuxbuz.com).

Установка LEMP (Nginx, MariaDB, PHP и расширения)

Установите Nginx, MariaDB и PHP с нужными расширениями одной командой:

dnf install nginx mariadb-server php php php-mysqlnd php-opcache php-xml php-xmlrpc php-gd php-mbstring php-json php-fpm php-curl php-pear php-openssl php-intl unzip -y

Запустите и включите сервисы:

systemctl start nginx
systemctl start php-fpm
systemctl start mariadb
systemctl enable nginx
systemctl enable php-fpm
systemctl enable mariadb

Примечание: если вы используете нестандартные путевые или сокеты PHP-FPM, скорректируйте конфигурацию Nginx и пути в следующих шагах.

Настройка MariaDB (база данных для Vanilla)

Защитите MariaDB:

mysql_secure_installation

Отвечайте на вопросы, как указано в подсказках. Затем войдите в консоль MariaDB:

mysql -u root -p

Создайте базу и пользователя для Vanilla:

MariaDB [(none)]> CREATE DATABASE vanilladb CHARACTER SET utf8 COLLATE utf8_general_ci;
MariaDB [(none)]> CREATE USER 'vanilla'@'localhost' IDENTIFIED BY 'password';
MariaDB [(none)]> GRANT ALL PRIVILEGES ON vanilladb.* TO 'vanilla'@'localhost';
MariaDB [(none)]> FLUSH PRIVILEGES;
MariaDB [(none)]> EXIT;

Замените ‘password’ на безопасный пароль. В продакшене используйте более строгую кодировку (utf8mb4) при необходимости.

Скачивание и размещение Vanilla

Скачайте последнюю стабильную сборку Vanilla (пример для версии 3.3):

wget https://open.vanillaforums.com/get/vanilla-core-3.3.zip

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

unzip vanilla-core-3.3.zip

Переместите пакет в корень веб-сервера и установите владельца:

mv package /var/www/html/vanilla
chown -R nginx:nginx /var/www/html/vanilla

Если у вас другой веб-каталог (например, /var/www/vanilla), используйте его.

Настройка пула PHP-FPM

Отредактируйте пул по пути /etc/php-fpm.d/www.conf и установите пользователя и группу nginx:

nano /etc/php-fpm.d/www.conf

Найдите и измените:

user = nginx
group = nginx

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

mkdir -p /var/lib/php/session
chown -R nginx:nginx /var/lib/php/session

Перезапустите php-fpm:

systemctl restart php-fpm

Важно: проверьте путь сокета php-fpm в вашей конфигурации (обычно /var/run/php-fpm/www.sock). Позже он будет использоваться в конфигурации Nginx.

Конфигурация Nginx для Vanilla

Создайте виртуальный хост:

nano /etc/nginx/conf.d/vanilla.conf

Вставьте конфигурацию (скорректируйте server_name):

server {

  listen 80;
  server_name vanilla.linuxbuz.com;
  root /var/www/html/vanilla;
  index index.php;

  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(/|$) {
    fastcgi_split_path_info ^(.+\.php)(/.+)$;
    try_files $fastcgi_script_name =404;
    set $path_info $fastcgi_path_info;
    fastcgi_param PATH_INFO $path_info;
    fastcgi_index index.php;
    include fastcgi.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-fpm/www.sock;
  }

  location ~* \.php(/|$) {
    rewrite ^ /index.php$uri last;
  }
  location / {
    try_files $uri $uri/ @vanilla;
  }

  location @vanilla {
    rewrite ^ /index.php$uri last;
  }

}

Сохраните и перезапустите Nginx:

systemctl restart nginx

Совет: в продакшне добавьте механизмы кэширования и gzip для производительности.

Защита сайта через Let’s Encrypt (Certbot)

Установите certbot-auto и сделайте его исполняемым:

wget https://dl.eff.org/certbot-auto
mv certbot-auto /usr/local/bin/certbot-auto
chown root /usr/local/bin/certbot-auto
chmod 0755 /usr/local/bin/certbot-auto

Получите сертификат и автоматическую настройку Nginx:

certbot-auto --nginx -d vanilla.linuxbuz.com

Во время работы утилиты вам предложат ввести email, принять условия и выбрать перенаправление HTTP на HTTPS. Выберите перенаправление (обычно пункт 2) для новых сайтов.

Примерный вывод, который вы увидите при установке сертификата:

Saving debug log to /var/log/letsencrypt/letsencrypt.log
Plugins selected: Authenticator nginx, Installer nginx
Enter email address (used for urgent renewal and security notices) (Enter 'c' to

cancel): [email protected]

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Please read the Terms of Service at
https://letsencrypt.org/documents/LE-SA-v1.2-November-15-2017.pdf. You must
agree in order to register with the ACME server at
https://acme-v02.api.letsencrypt.org/directory
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
(A)gree/(C)ancel: A

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Would you be willing to share your email address with the Electronic Frontier
Foundation, a founding partner of the Let's Encrypt project and the non-profit
organization that develops Certbot? We'd like to send you email about our work
encrypting the web, EFF news, campaigns, and ways to support digital freedom.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
(Y)es/(N)o: Y

Obtaining a new certificate
Performing the following challenges:
http-01 challenge for vanilla.linuxbuz.com
Waiting for verification...
Cleaning up challenges
Deploying Certificate to VirtualHost /etc/nginx/conf.d/vanilla.conf

Если certbot успешно отработал, он внесёт изменения в конфигурацию Nginx и создаст сертификаты в /etc/letsencrypt/live/ваш_домен/. Для автоматического продления добавьте cron или systemd таймер, если certbot-auto не установил его сам:

# Проверка продления (можно в cron раз в день)
certbot-auto renew --dry-run

Настройка SELinux и брандмауэра

Если SELinux включён, дайте httpd право на установление сетевых соединений и исправьте контекст файлов:

setsebool httpd_can_network_connect on -P
chcon -R -u system_u -t httpd_sys_rw_content_t -r object_r /var/www/html/vanilla

Откройте порты в firewalld:

firewall-cmd --permanent --add-service=http
firewall-cmd --permanent --add-service=https
firewall-cmd --reload

Важно: проверяйте, не блокируют ли внешние брандмауэры (например, облачный провайдер) порты 80/443.

Первый запуск и веб-инсталлятор

Откройте в браузере https://vanilla.linuxbuz.com. Вы увидите страницу установки, где нужно указать:

  • настройки базы данных (имя, пользователь, пароль, host);
  • название приложения, email администратора;
  • логин и пароль администратора.

Настройки базы данных

Настройки приложения

После заполнения и нажатия Continue установка завершится, и вы попадёте в административную панель:

Интерфейс Vanilla на CentOS

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

  • Сайт доступен по HTTPS без ошибок сертификата.
  • Веб-инсталлятор успешно сохранил конфигурацию и показал панель администратора.
  • PHP-FPM обрабатывает запросы, нет ошибок 500 в логах.
  • SELinux не мешает записи в нужные каталоги.

Резервное копирование и обновление

  • Регулярно бэкапьте базу данных и каталог /var/www/html/vanilla.
  • Перед обновлением проверяйте совместимость плагинов и PHP-версии.

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

mysqldump -u root -p vanilladb > vanilladb-$(date +%F).sql

Альтернативные подходы

  • Docker: если вы предпочитаете контейнеры, используйте официальные/сообщественные образы PHP+Nginx+MariaDB для упрощённого развёртывания.
  • Apache + mod_php: можно использовать Apache вместо Nginx, тогда настройки виртуального хоста и PHP-FPM не потребуются.
  • Управляемый хостинг: для минимизации поддержки можно выбрать провайдера с преднастроенным форумом.

Частые ошибки и способы их устранения

  • 502 Bad Gateway: проверьте, запущен ли php-fpm и совпадает ли путь сокета в nginx (fastcgi_pass unix:/var/run/php-fpm/www.sock;).
  • 500 Internal Server Error: смотрите логи /var/log/nginx/error.log и /var/log/php-fpm/www-error.log.
  • Проблемы с правами: убедитесь, что nginx владеет файловой системой, и SELinux контексты выставлены верно.

Пример быстрого чеклиста для устранения неполадок

  1. systemctl status php-fpm nginx mariadb
  2. tail -n 100 /var/log/nginx/error.log
  3. tail -n 100 /var/log/php-fpm/error.log
  4. ls -la /var/www/html/vanilla
  5. restorecon -R /var/www/html/vanilla (если SELinux)

Рекомендации по безопасности

  • Отключите права записи на каталоги, где это не требуется.
  • Регулярно обновляйте PHP, MariaDB и Vanilla.
  • Ограничьте доступ к административной панели по IP, если возможно.
  • Подумайте о WAF (web application firewall) и защите от брута.

Мини-методика развёртывания (SOP)

  1. Подготовить сервер, задать hostname и timezone.
  2. Установить обновления: dnf update -y.
  3. Установить LEMP стек (см. выше).
  4. Настроить базу и пользователя MariaDB.
  5. Разместить файлы Vanilla и установить права.
  6. Настроить и перезапустить php-fpm, nginx.
  7. Получить сертификат через certbot-auto.
  8. Проверить логи и функциональность сайта.
  9. Настроить автоматическое обновление сертификатов и бэкапы.

Роли и задачи (кто что делает)

  • Системный администратор: установка LEMP, настройка SELinux, брандмауэра, SSL.
  • DevOps/инженер по развёртыванию: автозапуск, CI/CD для обновлений, мониторинг.
  • Владелец сообщества/админ форума: финальные настройки в панели Vanilla, модерация.

Короткий словарь

  • LEMP: Linux, Nginx (Engine-X), MariaDB/MySQL, PHP.
  • PHP-FPM: FastCGI Process Manager для обработки PHP-запросов.
  • Certbot: клиент для автоматического получения сертификатов от Let’s Encrypt.

Когда этот способ может не подойти

  • Если вы не администрируете сервер — лучше выбрать управляемый хостинг.
  • Если у вас строгие требования к доступности и масштабированию, рассмотрите кластерные решения и балансировщики.

Заключение

Поздравляю — после выполнения шагов вы получите рабочий форум Vanilla, доступный по HTTPS. Проверьте безопасность, настройте резервное копирование и мониторинг, и периодически обновляйте компоненты системы.

Если возникли вопросы по конкретным ошибкам, приведите логи и конфигурации, и я помогу с диагностикой.


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

  • Установите LEMP, настройте MariaDB и PHP-FPM.
  • Разместите Vanilla в /var/www/html/vanilla и настройте права.
  • Настройте Nginx и получите сертификат Let’s Encrypt через certbot-auto.
  • Проверьте SELinux, откройте порты и завершите инсталляцию через веб-интерфейс.
Поделиться: 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 быстро