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

Установка Flarum на CentOS 8

• 6 min read • Серверы • Обновлено 22 Nov 2025
Установка Flarum на CentOS 8
Установка Flarum на CentOS 8

Логотип Flarum

Flarum — бесплатное, с открытым исходным кодом и современное программное обеспечение для форумов, которое упрощает запуск и развитие онлайн‑сообщества. Оно простое, лёгкое, быстрое и адаптировано под мобильные устройства. Базируется на PHP и включает набор возможностей: аккуратный интерфейс, двухпанельную структуру, бесконечную прокрутку, плавающий композитор сообщений, полную отзывчивость и другое.

В этом руководстве показано, как установить форум Flarum на сервер с CentOS 8.

Требования

  • Сервер с CentOS 8.
  • Доменное имя, указывающее на IP вашего сервера.
  • Пароль root настроен на сервере.

Важно: перед началом сделайте резервную копию данных сервера и убедитесь, что у вас есть доступ по SSH.

Быстрый план установки (мини‑методология)

  1. Подготовка: включение репозиториев EPEL и Remi.
  2. Установка стеков: Nginx, MariaDB, PHP 7.3 и зависимостей.
  3. Настройка базы данных и PHP‑FPM.
  4. Установка Composer и Flarum в /var/www/html.
  5. Конфигурация Nginx и SELinux/фаервола.
  6. Получение SSL через Let\’s Encrypt.

Начало работы

Сначала установите репозитории EPEL и Remi.

dnf install epel-release -y

Затем загрузите и установите Remi:

wget http://rpms.remirepo.net/enterprise/remi-release-8.rpm  
 rpm -Uvh remi-release-8.rpm

Установка Nginx, MariaDB и PHP

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

dnf install nginx mariadb-server -y

Включите модуль php:remi-7.3 для установки PHP 7.3:

dnf module enable php:remi-7.3

Установите PHP и необходимые расширения:

dnf install php php-fpm php-common php-opcache php-pecl-apcu php-cli php-pear php-pdo php-mysqlnd php-pgsql php-pecl-mongodb php-pecl-redis php-pecl-memcache php-pecl-memcached php-gd php-mbstring php-mcrypt php-xml -y

Запустите и включите службы для автозапуска:

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

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

По умолчанию MariaDB не защищена. Запустите скрипт безопасности:

mysql_secure_installation

Ответьте на вопросы, например:

Enter current password for root (enter for none):
Set root password? [Y/n] Y
New password:
Re-enter new 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 и создайте базу и пользователя для Flarum:

mysql -u root -p

В MariaDB shell выполните:

CREATE DATABASE flarumdb;  
GRANT ALL PRIVILEGES on flarumdb.* to 'flarum'@'localhost' identified by 'password';
FLUSH PRIVILEGES;  
EXIT;

Примечание: замените ‘password’ на надёжный пароль и учтите, что команда GRANT в разных версиях MariaDB/MySQL может требовать другой синтаксис.

Настройка PHP-FPM для Nginx

Отредактируйте файл /etc/php-fpm.d/www.conf:

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

Замените пользователя и группу apache на nginx:

user = nginx
group = nginx
listen.owner = nginx
listen.group = nginx

Найдите строку

;listen = /run/php-fpm/www.sock

и замените на

listen = 127.0.0.1:9000

Сохраните и перезапустите PHP-FPM:

systemctl restart php-fpm

Важно: использование TCP сокета 127.0.0.1:9000 упрощает совместимость с Nginx, но можно использовать и unix сокет — тогда и в конфиге nginx укажите соответствующий путь.

Установка Flarum

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

curl -sS https://getcomposer.org/installer | php

Ожидаемый вывод:

All settings correct for using Composer
Downloading...

Composer (version 1.9.2) successfully installed to: /root/composer.phar
Use it: php composer.phar

Переместите бинарник и дайте права:

mv composer.phar /usr/local/bin/composer  
 chmod 755 /usr/local/bin/composer

Перейдите в корень веб-сервера и создайте проект Flarum:

cd /var/www/html  
 composer create-project flarum/flarum . --stability=beta

Установите владельца и права на веб‑корень:

chown -R nginx:nginx /var/www/html  
 chmod -R 755 /var/www/html  
 chown -R nginx:nginx /var/lib/php

Важно: если у вас большая установка и много плагинов, используйте composer с достаточным объёмом памяти и проверяйте требования RAM.

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

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

nano /etc/nginx/conf.d/flarum.conf

Добавьте конфигурацию (пример):

server {
    listen   80;
    server_name  flarum.example.com;

# note that these lines are originally from the "location /" block
root   /var/www/html/public;
index index.php index.html index.htm;

location / { try_files $uri $uri/ /index.php?$query_string; }
location /api { try_files $uri $uri/ /api.php?$query_string; }
location /admin { try_files $uri $uri/ /admin.php?$query_string; }

location /flarum {
    deny all;
    return 404;
}

location ~ \.php$ {
    try_files $uri =404;
    fastcgi_pass 127.0.0.1:9000;
    fastcgi_index index.php;
    fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
    include fastcgi_params;
}

location ~* \.html$ {
    expires -1;
}

location ~* \.(css|js|gif|jpe?g|png)$ {
    expires 1M;
    add_header Pragma public;
    add_header Cache-Control "public, must-revalidate, proxy-revalidate";
}
gzip on;
gzip_http_version 1.1;
gzip_vary on;
gzip_comp_level 6;
gzip_proxied any;
gzip_types application/atom+xml
           application/javascript
           application/json
           application/vnd.ms-fontobject
           application/x-font-ttf
           application/x-web-app-manifest+json
           application/xhtml+xml
           application/xml
           font/opentype
           image/svg+xml
           image/x-icon
           text/css
           #text/html -- text/html is gzipped by default by nginx
           text/plain
           text/xml;
gzip_buffers 16 8k;
gzip_disable "MSIE [1-6]\.(?!.*SV1)";
   }

Сохраните файл. Затем увеличьте server_names_hash_bucket_size в /etc/nginx/nginx.conf, добавив

server_names_hash_bucket_size 64;

перед закрывающей фигурной скобкой main context. Проверьте конфигурацию и перезапустите службы:

nginx -t
systemctl restart php-fpm  
 systemctl restart nginx

Примечание: если вы видите ошибки типа “unknown directive gzip_types” или проблемы с компиляцией, проверьте версию Nginx и наличие модулей.

SELinux и фаервол

Разрешите HTTP/HTTPS в фаерволе:

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

Если SELinux включён, разрешите PHP подключаться к сети:

setsebool httpd_can_network_connect on -P

Если после этого возникают ошибки доступа к файлам, проверьте контексты SELinux для /var/www/html и /var/lib/php и при необходимости примените restorecon или semanage fcontext.

Доступ к веб‑интерфейсу Flarum

Откройте в браузере http://flarum.example.com. Вы увидите страницу установщика.

Установщик Flarum

Заполните название форума, параметры базы данных, учётные данные администратора и нажмите Install Flarum. После успешной установки вы попадёте в панель управления:

Панель управления Flarum

Защита Flarum с помощью Let\’s Encrypt SSL

Скачайте клиента certbot (примеры для автоматической установки):

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

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

certbot-auto --nginx -d flarum.example.com

Во время процесса вас попросят ввести email и согласиться с условиями. Пример вывода:

Saving debug log to /var/log/letsencrypt/letsencrypt.log
Plugins selected: Authenticator apache, Installer apache
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 flarum.example.com
Waiting for verification...
Cleaning up challenges
Deploying Certificate to VirtualHost /etc/nginx/conf.d/flarum.conf

Затем выберите перенаправление HTTP на HTTPS, например опцию 2 для полного редиректа.

После установки вы увидите пути к сертификатам и рекомендации по продлению. В исходном примере сертификат истекает 2020-03-23 — это демонстрационный вывод.

Важно: certbot-auto может требовать дополнительных зависимостей и времени на установку. На сервере без интернета или с ограничениями использования внешних репозиториев процедура будет отличаться.

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

  • URL https://ваш-домен открывает форум без ошибок сертификата.
  • Главная страница, /admin и /api возвращают 200 и корректный HTML/JSON.
  • Авторизация администратора работает, темы можно создавать и читать.
  • Nginx не выдаёт ошибок конфигурации (nginx -t OK).
  • Регулярное обновление сертификатов настроено (certbot-auto renew).

Сводка команд (cheat sheet)

  • Установить репозитории: dnf install epel-release -y; rpm -Uvh remi-release-8.rpm
  • Установить стек: dnf install nginx mariadb-server -y
  • Включить PHP 7.3: dnf module enable php:remi-7.3
  • Composer: curl -sS https://getcomposer.org/installer | php
  • Создать проект: composer create-project flarum/flarum . –stability=beta
  • SELinux: setsebool httpd_can_network_connect on -P
  • Получить SSL: certbot-auto –nginx -d example

Список для администратора (role-based checklist)

  • Серверный администратор:

    • Установить и обновлять пакеты OS и PHP.
    • Настроить бэкапы /var/www/html и базы данных.
    • Настроить мониторинг (доступность, диск, память).
  • Вебмастер:

    • Проверить права на файлы и владельца nginx.
    • Настроить gzip, кеширование и заголовки безопасности.
  • Модератор/контент:

    • Создать тестовую тему и проверить загрузку файлов.
    • Проверить локализацию UI и плагинов.

Отладка и типичные ошибки

  • Проблемы с правами: убедитесь, что владелец nginx: nginx и права 755/644; для загрузки файлов может потребоваться 775.
  • Ошибки PHP-FPM 502 Bad Gateway: проверьте соответствие listen в www.conf и fastcgi_pass в nginx.
  • SELinux блокирует запись: проверьте контекст и примените restorecon или semanage fcontext.
  • Composer не может выделить память: запустите COMPOSER_MEMORY_LIMIT=-1 composer …
  • Certbot не может верифицировать домен: проверьте DNS и правило firewall, временно отключите редиректы.

Безопасность и рекомендации по эксплуатации

  • Регулярно обновляйте Composer-зависимости и плагины Flarum.
  • Настройте автоматическое продление сертификатов (cron systemd timer для certbot-auto renew).
  • Ограничьте доступ к SSH с помощью ключей и fail2ban.
  • Рассмотрите бэкап базы данных с retention policy и тестом восстановления.

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

  • При миграции с Apache сохраните конфиги .htaccess и адаптируйте правила для Nginx (try_files).
  • Проверяйте версии PHP и расширений: старые расширения могут отсутствовать в newer Remi repo.

Тесты и приёмочные критерии

  • Подключение: открыть страницу, залогиниться, создать тему и комментарий.
  • Производительность: базовая проверка времени отклика страницы < 1.5 с на простом тесте с 1 пользователем (ориентир).
  • SSL: проверить в SSL Labs для подтверждения корректной цепочки.

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

Вы установили Flarum на CentOS 8: подготовили репозитории, установили LEMP‑стек, настроили PHP‑FPM и базу данных, развернули Flarum, настроили Nginx и SSL. Дополнительно — рекомендации по безопасности, отладке и контрольный список для запуска в продакшн.

Важно: всегда тестируйте в staging перед продакшном и храните резервные копии.

Сводка ключевых шагов и чеклисты помогут вам повторить установку и быстро устранить типичные проблемы.

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