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

О чём статья
Здесь вы найдёте подробную инструкцию по установке 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).
- Дождитесь завершения заполнения базы и финализации установки.






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

Практические рекомендации и отладка
- Если установка зависает при заполнении базы — проверьте права на каталоги и доступность 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 и настроили автоматическое продление.
Спасибо за внимание — удачной эксплуатации вашего нового форума!
Похожие материалы
USB‑диск не монтируется в Windows
Как посмотреть заблокированные контакты на Android
Как использовать Instagram в Buffer
Spooky Bananas на Reddit — как играть
Ошибка 0xC1900101 – 0x30018: как исправить