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

Что такое ElkArte
ElkArte — это свободное и открытое форумное ПО, написанное на PHP и использующее MariaDB. Оно даёт стандартный набор возможностей сообщества: темы, вложения, встраивание видео, управление расширениями. Простое, адаптивное и подходящее для современных браузеров и мобильных устройств.
Ключевые возможности:
- Простой и понятный интерфейс
- Встроенный менеджер дополнений
- Улучшённая анти‑спам функциональность
- Перетаскивание файлов для вложений
- Встраиваемое видео из YouTube, Vimeo и Dailymotion
Требования
Перед началом убедитесь, что у вас:
- Сервер с CentOS 8
- Домен, указывающий на IP сервера
- Доступ root или sudo
План установки (коротко)
- Установить стек LAMP и PHP‑модули
- Настроить php.ini
- Настроить MariaDB — создать БД и пользователя
- Скачать ElkArte и подготовить веб‑папку
- Создать виртуальный хост Apache
- Настроить SELinux и firewall
- Пройти веб‑установщик ElkArte
- Получить 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 httpdSELinux и 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 и пройдите шаги установщика.

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

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

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

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

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

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


Защита сайта 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) и ограничьте попытки авторизации
Отладка и распространённые проблемы
Проблема: сайт возвращает 500 Internal Server Error
- Проверьте /var/log/httpd/error.log и логи PHP
- Убедитесь в корректности прав и SELinux контекста
Проблема: не удаётся подключиться к базе данных
- Проверьте правильность host/user/password
- Убедитесь, что MariaDB запущен и слушает локально
Проблема: Certbot не может получить challenge
- Убедитесь, что DNS записи указывают на ваш сервер
- Проверьте, что firewall разрешает порт 80
- Если у вас обратный прокси, настройте проброс HTTP/HTTPS
Проблема: ошибки при сохранении вложений
- Проверьте права на /var/www/html/elkarte и временные директории
- Убедитесь в корректности upload_max_filesize и post_max_size в php.ini
Плейбук: быстрый план действий (SOP)
- Подготовка сервера: обновить систему, установить epel
- Установка LAMP и необходимых PHP расширений
- Настроить php.ini и перезапустить httpd
- Защитить MariaDB и создать БД/пользователя
- Развернуть файлы ElkArte и выставить права
- Создать виртуальный хост и проверить через HTTP
- Настроить SELinux и firewall
- Завершить установку через веб‑интерфейс
- Установить Certbot и получить SSL
- Настроить мониторинг и бекапы
Критерии приёмки
- Форум доступен по 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) могут быть неактуальны.
Похожие материалы
Несколько аккаунтов Skype: Multi Skype Launcher
Журнал для работы: повысить продуктивность
Персональные звуки уведомлений на Android
Скачивание шоу Hulu для офлайн‑просмотра
Microsoft Start: персонализированная новостная лента