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

Установка ElkArte на CentOS 8 с Let's Encrypt SSL

• 6 min read • Инструкции • Обновлено 27 Nov 2025
Установка ElkArte на CentOS 8 с Let's Encrypt
Установка ElkArte на CentOS 8 с Let's Encrypt

Кратко

ElkArte — лёгкое PHP‑форумное ПО на базе Simple Machines Forum. В этой инструкции показано, как установить ElkArte на CentOS 8, настроить LAMP (Apache + MariaDB + PHP), учётную базу данных, разрешения SELinux, открыть firewall и защитить сайт бесплатным SSL от Let’s Encrypt. Включены шаги по устранению неполадок, чек‑листы и рекомендации по безопасности.

Важно: замените примеры доменов и паролей на ваши реальные значения до выполнения команд.

Общий вид интерфейса ElkArte

Что такое ElkArte

ElkArte — это свободное и открытое форумное ПО, написанное на PHP и использующее MariaDB. Оно даёт стандартный набор возможностей сообщества: темы, вложения, встраивание видео, управление расширениями. Простое, адаптивное и подходящее для современных браузеров и мобильных устройств.

Ключевые возможности:

  • Простой и понятный интерфейс
  • Встроенный менеджер дополнений
  • Улучшённая анти‑спам функциональность
  • Перетаскивание файлов для вложений
  • Встраиваемое видео из YouTube, Vimeo и Dailymotion

Требования

Перед началом убедитесь, что у вас:

  • Сервер с CentOS 8
  • Домен, указывающий на IP сервера
  • Доступ root или sudo

План установки (коротко)

  1. Установить стек LAMP и PHP‑модули
  2. Настроить php.ini
  3. Настроить MariaDB — создать БД и пользователя
  4. Скачать ElkArte и подготовить веб‑папку
  5. Создать виртуальный хост Apache
  6. Настроить SELinux и firewall
  7. Пройти веб‑установщик ElkArte
  8. Получить SSL через Let’s Encrypt (Certbot)

Установка LAMP и PHP‑модулей

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

dnf install httpd mariadb-server php php-common php-json php-curl php-intl php-mbstring php-xmlrpc php-mysqlnd php-gd php-pgsql php-xml php-cli php-bcmath php-gmp php-zip unzip -y

Отредактируйте /etc/php.ini и установите рекомендуемые значения (откорректируйте таймзону):

nano /etc/php.ini

Измените или добавьте:

memory_limit = 256M
upload_max_filesize = 100M
max_execution_time = 360
date.timezone = Europe/Moscow

Сохраните файл. Затем запустите и включите службы Apache и MariaDB:

systemctl start httpd
systemctl start mariadb
systemctl enable httpd
systemctl enable mariadb

Настройка MariaDB

Защитите установку MariaDB и задайте пароль root:

mysql_secure_installation

Когда скрипт запросит, следуйте подсказкам (рекомендуется отвечать «Y» для удаления анонимных пользователей, запрета удалённого логина root и удаления тестовой базы).

Далее создайте базу данных и пользователя для ElkArte:

mysql -u root -p

MariaDB [(none)]> CREATE DATABASE elkarte;
MariaDB [(none)]> CREATE USER 'elkarte'@'localhost' IDENTIFIED BY 'secure_password';
MariaDB [(none)]> GRANT ALL ON elkarte.* TO 'elkarte'@'localhost' WITH GRANT OPTION;
MariaDB [(none)]> FLUSH PRIVILEGES;
MariaDB [(none)]> EXIT;

Замените secure_password на надёжный пароль.

Скачивание и подготовка ElkArte

Скачайте последнюю версию из GitHub и распакуйте её:

wget https://github.com/elkarte/Elkarte/archive/master.zip
unzip master.zip
mv Elkarte-master /var/www/html/elkarte
chown -R apache:apache /var/www/html/elkarte
chmod -R 775 /var/www/html/elkarte

Права 775 подходят для большинства установок; в более строгих средах рассмотрите более тонкую настройку владельца/группы и umask.

Настройка виртуального хоста Apache

Создайте файл /etc/httpd/conf.d/elkarte.conf:

nano /etc/httpd/conf.d/elkarte.conf

Вставьте конфигурацию и замените ServerName и ServerAdmin на ваши значения:


     ServerAdmin admin@example.com
     DocumentRoot /var/www/html/elkarte
     ServerName elk.example.com

     
          Options FollowSymlinks
          AllowOverride All
          Require all granted
     

     ErrorLog /var/log/httpd/error.log
     CustomLog /var/log/httpd/access.log combined

Перезапустите Apache:

systemctl restart httpd

SELinux и Firewall

Если SELinux включён (по умолчанию в CentOS), разрешите Apache подключаться к сети и выставьте контекст для веб‑каталога:

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

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

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

Важно: если вы используете нестандартные порты или дополнительные сервисы (например, прокси), настройте firewall и SELinux соответствующим образом.

Веб‑установщик ElkArte

Откройте в браузере http://elk.example.com и пройдите шаги установщика.

Страница установщика ElkArte

  1. Нажмите «Continue» для начала.

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

  1. Введите параметры БД (имя, хост, логин, пароль).

Настройки форума ElkArte

  1. Укажите имя форума и URL.

Заполнение базы данных ElkArte

  1. Нажмите «Continue» для заполнения структуры базы.

Создание администратора ElkArte

  1. Создайте учётную запись администратора.

Завершение установки ElkArte

  1. Нажмите на ссылку для перехода в установленный форум и выполните вход.

Форум ElkArte — фронтенд

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

Защита сайта SSL от Let’s Encrypt

Рекомендуется защитить форум сертификатом от Let’s Encrypt. Варианты установки Certbot:

  • certbot-auto (старый способ, в исходной инструкции использовался certbot-auto)
  • Пакеты из EPEL: certbot и python3-certbot-apache

Пример из исходной инструкции (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

certbot-auto --apache -d elk.example.com

Современная альтернатива (через EPEL):

dnf install epel-release -y
dnf install certbot python3-certbot-apache -y
certbot --apache -d elk.example.com

Во время получения сертификата вам предложат ввести email и согласиться с условиями. Затем Certbot создаст SSL‑виртуальный хост и предложит опцию перенаправления всего трафика на HTTPS — выберите «Redirect», если сайт корректно работает по HTTPS.

Типичные сообщения Certbot и важные файлы сертификата:

  • Путь к цепочке и сертификату: /etc/letsencrypt/live/elk.example.com/fullchain.pem
  • Путь к приватному ключу: /etc/letsencrypt/live/elk.example.com/privkey.pem

После установки проверьте конфигурацию на https://www.ssllabs.com/ssltest/ (замените домен на ваш).

Автоматическое обновление сертификата

Let’s Encrypt сертификаты действуют 90 дней. Проверьте, что у вас есть автоматическое обновление — systemd‑таймер или cron‑задача.

Проверить ручной запуск продления:

certbot renew --dry-run

Если вы используете certbot-auto, используйте certbot-auto renew.

Чек‑лист перед запуском в продакшн

  • Настроен HTTPS и перенаправление HTTP→HTTPS
  • База данных на защищённом хосте (или локально) с надёжными паролями
  • Регулярные резервные копии /etc/letsencrypt и каталога с форумом
  • Ограничены права на файлы и каталоги
  • SELinux и firewall настроены корректно
  • Настроен мониторинг (лог-файлы, доступность)

Безопасность и жёсткая настройка

Рекомендации по повышению безопасности:

  • Регулярно обновляйте систему и PHP‑модули dnf update
  • Отключите ненужные PHP‑функции (в php.ini disable_functions)
  • Защитите доступ к /var/www/html/elkarte путем корректных прав и, при необходимости, использованием .htaccess (AllowOverride All позволяет использовать .htaccess)
  • Резервное копирование: регулярный бекап БД (mysqldump) и каталога форума
  • Храните резервные копии ключей Let’s Encrypt в безопасном месте
  • По возможности используйте WAF (mod_security) и ограничьте попытки авторизации

Отладка и распространённые проблемы

  1. Проблема: сайт возвращает 500 Internal Server Error

    • Проверьте /var/log/httpd/error.log и логи PHP
    • Убедитесь в корректности прав и SELinux контекста
  2. Проблема: не удаётся подключиться к базе данных

    • Проверьте правильность host/user/password
    • Убедитесь, что MariaDB запущен и слушает локально
  3. Проблема: Certbot не может получить challenge

    • Убедитесь, что DNS записи указывают на ваш сервер
    • Проверьте, что firewall разрешает порт 80
    • Если у вас обратный прокси, настройте проброс HTTP/HTTPS
  4. Проблема: ошибки при сохранении вложений

    • Проверьте права на /var/www/html/elkarte и временные директории
    • Убедитесь в корректности upload_max_filesize и post_max_size в php.ini

Плейбук: быстрый план действий (SOP)

  1. Подготовка сервера: обновить систему, установить epel
  2. Установка LAMP и необходимых PHP расширений
  3. Настроить php.ini и перезапустить httpd
  4. Защитить MariaDB и создать БД/пользователя
  5. Развернуть файлы ElkArte и выставить права
  6. Создать виртуальный хост и проверить через HTTP
  7. Настроить SELinux и firewall
  8. Завершить установку через веб‑интерфейс
  9. Установить Certbot и получить SSL
  10. Настроить мониторинг и бекапы

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

  • Форум доступен по HTTPS и корректно отвечает
  • Админ‑панель доступна и рабочая
  • Данные в базе корректно заполнены (тестовые темы/пользователи)
  • Выполняется автоматическое обновление сертификатов (certbot renew –dry-run прошёл без ошибок)
  • Резервные копии успешно создаются и восстанавливаются

Роли и обязанности после установки

  • Системный администратор: обновления ОС, мониторинг, бекапы
  • Администратор форума: модерация, управление дополнениями, настройки форума
  • Оборудование/Сеть: резервирование сети, проверка DNS и балансировки (если есть)

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

  • Использовать Docker для изоляции: контейнеры для Apache/PHP и отдельный контейнер для MariaDB
  • Разделить БД на отдельный сервер или управляемую базу данных для масштабируемости
  • Использовать прокси/балансировщик (nginx) перед Apache для SSL‑терминации

Краткий глоссарий (1 строка)

  • LAMP: Linux + Apache + MariaDB/MySQL + PHP
  • Certbot: клиент для автоматического получения сертификатов Let’s Encrypt
  • SELinux: механизм контроля доступа в Linux

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

Установка ElkArte на CentOS 8 включает стандартные шаги: подготовка LAMP, создание БД, размещение файлов, настройка Apache и SELinux, затем получение SSL от Let’s Encrypt. После установки выполните чек‑лист безопасности и настройте автоматическое обновление сертификатов.

Если вам нужно, могу прислать готовый systemd unit для задания автоматического резервного копирования или шаблон nginx/Apache конфигурации для специфичных сценариев.


Примечание

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