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

Установка ElkArte с Let's Encrypt на Ubuntu 20.04

6 min read Форумы Обновлено 25 Nov 2025
ElkArte на Ubuntu 20.04: установка и SSL
ElkArte на Ubuntu 20.04: установка и SSL

Схема установки ElkArte

О чём статья

Здесь вы найдёте подробную инструкцию по установке ElkArte — лёгкого и настраиваемого движка форума на PHP — с конфигурацией Apache, MariaDB, PHP-расширений и автоматическим выпуском SSL-сертификата от Let’s Encrypt. Показаны команды, примеры конфигураций, чек-листы для админа и оператора, а также раздел с отладкой и безопасностью.

Кому это подходит

  • Системным администраторам и хостинг-инженерам, которые разворачивают форум.
  • Автономным проектам и небольшим сообществам, которым нужен быстрый и лёгкий форум.

Основные понятия в одну строку

  • ElkArte — PHP-форум на базе Simple Machines Forum, ориентирован на простоту и расширяемость.
  • Certbot/Let’s Encrypt — бесплатный автоматизированный сервис выдачи SSL-сертификатов.

Требования

  • Сервер с Ubuntu 20.04.
  • Домен, указывающий на сервер (A/AAAA-запись).
  • Доступ root или привилегии sudo на сервере.

Шаг 1 — Установка Apache, PHP и MariaDB

ElkArte работает через веб‑сервер Apache и требует PHP + несколько расширений. Выполните установку пакетов:

apt-get install apache2 mariadb-server php7.4 libapache2-mod-php7.4 php7.4-common php7.4-curl php7.4-intl php7.4-mbstring php7.4-xmlrpc php7.4-mysql php7.4-gd php7.4-pgsql php7.4-xml php7.4-cli php7.4-imagick php7.4-bcmath php7.4-gmp php7.4-zip unzip -y

Пояснения: php7.4-mysql нужен для MariaDB/MySQL, php7.4-gd и imagick — для обработки изображений, mbstring и intl — для корректной работы с многобайтными строками и локализацией.

Откройте конфигурацию PHP для Apache и внесите рекомендуемые правки:

nano /etc/php/7.4/apache2/php.ini

Найдите и измените/проверьте значения:

memory_limit = 256M
upload_max_filesize = 100M
max_execution_time = 360
date.timezone = Asia/Kolkata

Примечание: date.timezone укажите ваш локальный часовой пояс (например, Europe/Moscow).

Примените изменения:

systemctl restart apache2

Шаг 2 — Настройка MariaDB

Запустите стандартную утилиту безопасной настройки MariaDB:

mysql_secure_installation

Ответьте утилите, чтобы установить root-пароль, убрать анонимных пользователей и тестовую базу, отключить удалённый вход root, и перезагрузить таблицы привилегий.

Далее войдите в оболочку MariaDB:

mysql -u root -p

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

CREATE DATABASE elkdb;
CREATE USER 'elk'@'localhost' IDENTIFIED BY 'password';
GRANT ALL ON elkdb.* TO 'elk'@'localhost' WITH GRANT OPTION;
FLUSH PRIVILEGES;
EXIT;

Совет по безопасности: используйте длинный уникальный пароль и ограничьте доступ пользователя только с нужных хостов (здесь — localhost).

Шаг 3 — Скачивание и размещение ElkArte

Скачайте релиз ElkArte и распакуйте в корень веб-сервера:

wget https://github.com/elkarte/Elkarte/releases/download/v1.1.6/ElkArte_v1-1-6_install.zip
unzip ElkArte_v1-1-6_install.zip -d /var/www/html/elkarte

Назначьте корректные права и владельца:

chown -R www-data:www-data /var/www/html/elkarte/
chmod -R 755 /var/www/html/elkarte/

Пояснение: www-data — стандартный пользователь Apache в Ubuntu. Права 755 дают исполнение каталогам и чтение/запись владельцу.

Шаг 4 — Конфигурация Apache

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

nano /etc/apache2/sites-available/elkarte.conf

Вставьте (отредактируйте ServerName и ServerAdmin под ваш домен и почту):


     ServerAdmin [email protected]
     ServerName elk.linuxbuz.com
     DocumentRoot /var/www/html/elkarte

     
          Options FollowSymlinks
          AllowOverride All
          Require all granted
     

     ErrorLog ${APACHE_LOG_DIR}/error.log
     CustomLog ${APACHE_LOG_DIR}/access.log combined

Включите сайт и модуль перезаписи URL:

a2ensite elkarte.conf
a2enmod rewrite
systemctl restart apache2

Проверка: откройте http://ваш_домен и убедитесь, что появляется стартовая страница ElkArte или инсталлятор.

Шаг 5 — Защита SSL через Let’s Encrypt

Установите certbot и интеграцию для Apache:

apt-get install certbot python3-certbot-apache -y

Запустите генерацию сертификата:

certbot --apache -d elk.linuxbuz.com

Следуйте подсказкам: введите e-mail, примите условия и выберите, нужно ли перенаправлять HTTP на HTTPS (рекомендуется выбрать редирект — вариант 2). Certbot автоматически создаст конфигурацию SSL для Apache и включит модули ssl и socache_shmcb.

В выводе может быть рекомендовано протестировать конфигурацию на SSL Labs — это опционально, но полезно для проверки безопасности.

Добавьте автоматическое обновление (renewal). Certbot обычно устанавливает systemd таймер, но можно добавить ежедневную проверку в crontab:

# пример в root crontab
0 3 * * * certbot renew --quiet --post-hook "systemctl reload apache2"

Это попытка продления сертификата каждую ночь в 03:00 и перезагрузки Apache при успешном обновлении.

Шаг 6 — Доступ к веб-интерфейсу и установка через браузер

Откройте в браузере https://elk.linuxbuz.com. Вы попадёте на страницу установки ElkArte. Пошагово:

  • Нажмите Continue.
  • На странице настроек БД введите elkdb, elk и пароль.
  • Укажите URL форума и его название.
  • Заполните данные администратора (логин, пароль, e-mail).
  • Дождитесь завершения заполнения базы и финализации установки.

Установщик ElkArte — экран приветствия

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

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

Процесс заполнения базы данных

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

Финализация установки ElkArte

После завершения нажмите ссылку на ваш новый форум и войдите в админ-панель для финальной настройки темы, плагинов и прав пользователей.

Панель управления ElkArte после установки

Практические рекомендации и отладка

  • Если установка зависает при заполнении базы — проверьте права на каталоги и доступность MariaDB (systemctl status mariadb, tail -n 100 /var/log/mysql/error.log).
  • Ошибки 500 — смотрите журналы Apache: /var/log/apache2/error.log и убедитесь, что PHP расширения загружены.
  • Проблемы с правами на загрузку файлов — проверьте owner www-data и права 755/644 для файлов.
  • Если Certbot не может верифицировать домен — проверьте DNS (A/AAAA), и что порт 80 открыт и направлен на ваш сервер.

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

  • Регулярно обновляйте систему: apt update && apt upgrade.
  • Ограничьте SSH-доступ (ключи, отключите root через SSH или используйте 2FA).
  • Делайте резервные копии: файлы /var/www/html/elkarte и дамп БД (mysqldump).
  • Разместите конфигурационные файлы вне доступа по HTTP; следите, чтобы в веб-каталоге не оставались файлы установки.

Рекомендации по файлам резервного копирования:

# Пример создания дампа базы
mysqldump -u root -p elkdb > /root/backups/elkdb-$(date +%F).sql

Роли и чек-листы

  • Оператор/DevOps:
    • Установить и обновлять пакеты, настраивать резервное копирование и мониторинг.
    • Настроить автоматическое обновление сертификатов.
  • Веб‑админ (ElkArte):
    • Настроить темы, разрешения, плагины и модераторов.
    • Проводить регулярные бэкапы и тесты восстановления.
  • Модератор:
    • Настроить правила сообщества и следить за контентом.

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

  • Сайт доступен по HTTPS без ошибок.
  • В админке ElkArte можно войти и создать категорию/тему.
  • Бэкап базы и файлов успешно создаётся и восстанавливается на тестовой машине.

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

  • “Can’t connect to MySQL server” — проверьте сервис MariaDB и настройки bind-address в /etc/mysql/mariadb.conf.d/50-server.cnf.
  • “Permission denied” при записи — проверьте владельца и права каталога /var/www/html/elkarte.
  • Certbot сообщает о проблемах в проверке — проверьте, что HTTP (80) открыт и что DNS указывает на сервер.

Альтернативы и варианты

  • Вместо Apache можно использовать Nginx с PHP-FPM (потребует адаптации конфигураций и правил перезаписи).
  • Для базы данных можно использовать PostgreSQL (ElkArte имеет поддержку), но потребуется соответствующее расширение PHP и другие SQL-запросы.

Риск‑матрица (вкратце)

  • Неправильные права на файлы — риск утечки/перезаписи → восстановить права и ограничить доступ.
  • Несвоевременное обновление сертификатов — риск недоступности HTTPS → настроить автоматическое renew.
  • Уязвимости в плагинах — риск компрометации → проверять источники и обновления.

Тесты и приёмка

  • Откройте HTTPS-страницу, проверьте цепочку сертификатов.
  • Создайте тестовую тему и вложение >1MB, проверьте upload_max_filesize.
  • Выполните mysqldump и восстановите на другом хосте.

Краткое завершение

Поздравляем — ваш форум ElkArte установлен и защищён SSL. Дальше настройте темы и права, создайте правила сообщества и организуйте резервное копирование.

Важно: при любых изменениях конфигураций создавайте резервные копии и тестируйте на стенде.

Итоговая контрольная команда для проверки статуса сервисов:

systemctl status apache2
systemctl status mariadb
certbot certificates

Если у вас остались вопросы по установке, безопасности или миграции данных — укажите, какая именно часть вызывает затруднения, и я помогу с конкретными командами и проверками.

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

  • Установили Apache, PHP, MariaDB.
  • Скачали и развернули ElkArte в /var/www/html/elkarte.
  • Настроили виртуальный хост Apache.
  • Получили SSL через Certbot и настроили автоматическое продление.

Спасибо за внимание — удачной эксплуатации вашего нового форума!

Поделиться: X/Twitter Facebook LinkedIn Telegram
Автор
Редакция

Похожие материалы

USB‑диск не монтируется в Windows
Support

USB‑диск не монтируется в Windows

Как посмотреть заблокированные контакты на Android
Android.

Как посмотреть заблокированные контакты на Android

Как использовать Instagram в Buffer
Соцмедиа

Как использовать Instagram в Buffer

Spooky Bananas на Reddit — как играть
Социальные сети

Spooky Bananas на Reddit — как играть

Ошибка 0xC1900101 – 0x30018: как исправить
Windows

Ошибка 0xC1900101 – 0x30018: как исправить

Отключить случайный MAC Wi‑Fi на Android
Android.

Отключить случайный MAC Wi‑Fi на Android