Установка Elgg на Ubuntu 18.04 с Apache
Elgg — это бесплатная self‑hosted платформа для создания социальной сети. В этой инструкции шаг за шагом описано: установка LAMP (Apache, MariaDB, PHP 7.2), настройка базы данных, развертывание Elgg, создание виртуального хоста Apache и базовая постустановочная жёсткая настройка. В конце — чеклисты, критерии приёмки, рекомендации по безопасности и варианты альтернатив.
О чём статья
Elgg — гибкая платформа для создания собственной социальной сети (университеты, организации, сообщества). В статье показано, как установить Elgg 2.3.9 на Ubuntu 18.04 с Apache, подготовить базу данных MariaDB и выполнить базовую настройку безопасности и прав доступа.
Требования
- Сервер с Ubuntu 18.04.
- Нерутовый пользователь с правами sudo.
- Доступ к сети для скачивания пакетов и дистрибутива Elgg.
Начало — обновление системы
Обновите систему перед установкой пакетов:
sudo apt-get update -y
sudo apt-get upgrade -yПосле обновления рекомендуется перезагрузить сервер, чтобы применить все изменения.
Установка LAMP (Apache, MariaDB, PHP)
Elgg написан на PHP и использует MariaDB как СУБД. Установите Apache, MariaDB и требуемые модули PHP:
sudo apt-get install apache2 mariadb-server php7.2 libapache2-mod-php7.2 php7.2-common php7.2-sqlite3 php7.2-curl php7.2-intl php7.2-mbstring php7.2-xmlrpc php7.2-mysql php7.2-gd php7.2-xml php7.2-cli php7.2-zip unzip wget -yОткройте файл конфигурации PHP для Apache и внесите рекомендованные изменения (используется PHP 7.2):
sudo nano /etc/php/7.2/apache2/php.iniВнесите изменения (пример):
memory_limit = 256M
upload_max_filesize = 100M
max_execution_time = 360
date.timezone = Asia/KolkataПримечание: укажите ваш часовой пояс в формате, совместимом с PHP (например, Europe/Moscow).
Запустите и включите службы Apache и MariaDB:
sudo systemctl start apache2
sudo systemctl start mariadb
sudo systemctl enable apache2
sudo systemctl enable mariadbНастройка базы данных MariaDB
Сначала выполните базовую защиту MariaDB:
sudo mysql_secure_installationОтветьте на вопросы по безопасности примерно так (варианты):
Enter current password for root (enter for none):
Set root password? [Y/n]: N
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 и создайте базу данных и пользователя для Elgg:
mysql -u root -pВ MariaDB shell выполните:
CREATE DATABASE elggdb;
CREATE USER 'elgg'@'localhost' IDENTIFIED BY 'howtoforge';
GRANT ALL ON elggdb.* TO 'elgg'@'localhost' IDENTIFIED BY 'howtoforge' WITH GRANT OPTION;
FLUSH PRIVILEGES;
\qЗамените пароль ‘howtoforge’ на надёжный секрет в вашем окружении.
Установка Elgg
Скачайте архив Elgg и распакуйте его:
cd /tmp
wget https://elgg.org/download/elgg-2.3.9.zip
unzip elgg-2.3.9.zipСкопируйте файлы в корень веб‑сервера:
sudo cp -r elgg-2.3.9 /var/www/html/elgg
sudo mkdir /var/www/html/elgg/data
sudo chown -R www-data:www-data /var/www/html/elgg/
sudo chmod -R 755 /var/www/html/elgg/Пояснение: каталог data необходим для загружаемых файлов и должен быть доступен веб‑серверу.
Настройка Apache для Elgg
Создайте виртуальный хост Apache:
sudo nano /etc/apache2/sites-available/elgg.confДобавьте конфигурацию (измените ServerName на ваш домен или IP):
ServerAdmin [email protected]
DocumentRoot /var/www/html/elgg/
ServerName example.com
Options FollowSymLinks
AllowOverride All
ErrorLog /var/log/apache2/elgg-error_log
CustomLog /var/log/apache2/elgg-access_log common
Активируйте сайт и модуль rewrite, затем перезапустите Apache:
sudo a2ensite elgg.conf
sudo a2enmod rewrite
sudo systemctl restart apache2Если ваш сайт будет работать по HTTPS — настройте SSL (например, через Certbot/Let’s Encrypt) и обновите виртуальный хост для порта 443.
Доступ к веб‑интерфейсу установки
Откройте в браузере http://example.com (замените example.com на ваш домен или IP) и следуйте мастеру установки. Вы пройдёте проверку требований, укажете данные базы, путь к каталогу данных (/var/www/html/elgg/data) и создадите администратора.








Образ виртуальной машины (опционально)
Этот туториал доступен как готовый образ виртуальной машины (OVF/OVA) для VMWare и VirtualBox (HowtoForge подписчикам). В образе используются следующие данные (измените пароли после первого входа):
SSH / Shell:
Username: administrator Password: howtoforge
Elgg:
Username: admin Password: howtoforge
MySQL:
Username: root Password: howtoforge
и
Username: elgg Password: howtoforge
IP образа по умолчанию: 192.168.1.100 (меняется в /etc/netplan/01-netcfg.yaml). Обязательно смените все пароли и выполните базовую настройку безопасности.
Резервное копирование и восстановление (краткий runbook)
- Резервируйте файлы сайта (/var/www/html/elgg/) и каталог данных (/var/www/html/elgg/data).
- Резервируйте дамп базы данных MariaDB: mysqldump –single-transaction -u root -p elggdb > elggdb.sql
- Проверьте целостность резервных копий и периодически тестируйте восстановление на стенде.
Пример восстановления базы:
mysql -u root -p elggdb < elggdb.sqlФайлы приложения восстановите через rsync или tar и восстановите владельца www-data.
Безопасность и жёсткое усиление сервера
- Немедленно смените все указаные в образе и примерах пароли.
- Ограничьте доступ к панели администратора по IP, если возможно.
- Настройте HTTPS (Let’s Encrypt) и принудительный редирект http → https.
- Закройте удалённый вход root в MariaDB и используйте отдельные неполномочные учётные записи для бэкапов и приложений.
- Ограничьте права в каталоге data: www-data должен иметь права записи, но не исполняемые права для пользовательских загрузок.
- Обновляйте PHP и модули регулярно; планируйте патчи безопасности.
Критерии приёмки
- Веб‑интерфейс установки доступен по HTTP(S) и проходит проверку требований.
- Установщик успешно подключается к MariaDB и создаёт необходимые таблицы.
- Каталог /var/www/html/elgg/data доступен для записи пользователем www-data.
- Авторизация администратора работает, и админская панель открывается.
- SSL настроен (если требовался) и все внешние ресурсы загружаются по HTTPS.
Чеклист ролей (быстро)
Администратор сервера:
- Установил и настроил Apache, MariaDB, PHP.
- Настроил бэкап и обновления ОС.
Владелец сайта / контент-менеджер:
- Создал учётную запись администратора Elgg.
- Настроил основные параметры сайта: название, URL, политики контента.
Разработчик / интегратор:
- Проверил разрешения файлов и настроил модуль пермалинков.
- Настроил темы и плагины в тестовой среде.
Оператор/DevOps:
- Настроил мониторинг (логирование Apache, доступность сервисов).
- Настроил автозапуск сервисов и резервное копирование.
Когда Elgg может не подойти (примеры)
- Нужна масштабируемая социальная платформа на миллионы пользователей и микросервисная архитектура — лучше рассмотреть готовые облачные решения или платформы, разработанные для большой нагрузки.
- Требуются современные мобильные SDK и богатая экосистема плагинов под конкретный корпоративный стек — возможно, требуется платформа с коммерческой поддержкой.
Альтернативы
- HumHub — модульная социальная платформа с современным интерфейсом.
- BuddyPress (плагин WordPress) — если предпочтителен WordPress‑стек.
- Discourse — если основная задача — обсуждения и форумы.
Выбор зависит от требований к масштабируемости, экосистеме плагинов и навыков команды.
Обновление Elgg и миграция
- Перед обновлением сделайте полную резервную копию файлов и базы.
- Проверьте сумму и целостность пакета обновления.
- Тестируйте обновление на копии производства.
- Учтите совместимость плагинов и темы при переходе между версиями Elgg.
Тесты и критерии приёмки (коротко)
- Установка: мастер проходит все шаги без ошибок.
- Пользовательские сценарии: регистрация, вход, загрузка файла, создание поста, комментарий — работают.
- Права доступа: анонимам запрещены админские действия, роли имеют ожидаемые привилегии.
Мини‑методология развертывания (быстрый SOP)
- Подготовить сервер: обновление пакетов и базовая безопасность.
- Установить LAMP и модули PHP.
- Настроить MariaDB и создать базу/пользователя.
- Развернуть файлы Elgg и установить права.
- Настроить виртуальный хост и HTTPS.
- Пройти веб‑мастер установки и выполнить постинсталляционные настройки.
- Провести тестирование и настроить бэкапы.
Небольшая схема принятия решения (Mermaid)
flowchart TD
A[Нужна соц-платформа?] --> B{Требования}
B -->|Простая сеть, управление контентом| C[Elgg]
B -->|Форумы/обсуждения| D[Discourse]
B -->|Интеграция с WP| E[BuddyPress]
B -->|Масштабность > 100k| F[Рассмотреть облачные решения]Короткое объявление (для сайта, 100–200 слов)
Elgg установлен и готов к использованию: полностью автономная платформа для создания социальных сетей на вашем сервере. Поддерживает плагины и темы, хранит пользовательские данные локально и даёт полный контроль над контентом и политиками. В инструкции показаны все шаги: установка LAMP, настройка MariaDB, развертывание Elgg, конфигурация Apache, постинсталляционная безопасность и чеклисты. Подходит для университетов, сообществ и организаций, которым важна приватность и гибкость. При наличии требований к высокой нагрузке рассмотрите альтернативы и тестирование масштабирования. Готовый образ виртуальной машины упрощает демонстрацию и тестирование для подписчиков.
Ссылки
- Официальный сайт: https://elgg.org/
Краткое резюме
- Elgg — хорошая self‑hosted платформа для создания соц‑сети малого и среднего масштаба.
- Установка включает подготовку LAMP, создание базы, развертывание файлов и настройку Apache.
- Обязательны смена паролей, настройка HTTPS и регулярные обновления.
- Используйте чеклисты и тестирование на копии перед обновлением производственной среды.
Wichtig: смените все стандартные пароли и настройте резервное копирование сразу после установки.
Похожие материалы
Несколько аккаунтов Skype: Multi Skype Launcher
Журнал для работы: повысить продуктивность
Персональные звуки уведомлений на Android
Скачивание шоу Hulu для офлайн‑просмотра
Microsoft Start: персонализированная новостная лента