Установка Mahara на CentOS 7
Важно: перед началом убедитесь, что у вас есть минимальная установка CentOS 7 и привилегии root.
Введение
Mahara — это open source система e‑portfolio, которую также можно использовать как платформу социальной сети. Приложение написано на PHP и поддерживает базы данных PostgreSQL и MySQL/MariaDB. Mahara позволяет создавать персональные мультимедийные портфолио и сотрудничать с другими пользователями.
Это руководство проведёт вас через установку Mahara на CentOS 7, с акцентом на PHP 7.1 и MariaDB. Пояснения даны простым языком, шаги — по порядку. Если вы знакомы с Linux и веб‑серверами, пройдёте установку быстро.
Основные термины
- Mahara — система e‑portfolio и платформа социального обучения.
- Apache — HTTP‑сервер, обслуживающий веб‑запросы.
- PHP — интерпретируемый язык, на котором написана Mahara.
- MariaDB — форк MySQL, хранилище данных приложения.
Требования перед началом
- Минимальная установка CentOS 7
- Доступ root или эквивалент sudo
- Подключение к интернету для загрузки репозиториев и пакетов
Шаг 1 — Обновление системы и установка Apache
Рекомендуется обновить систему перед установкой пакетов, чтобы иметь актуальные пакеты и репозитории.
yum -y updateПосле обновления установите веб‑сервер Apache:
yum -y install httpdЗапустите Apache и включите автозапуск при старте системы:
systemctl start httpdsystemctl enable httpdВажно: проверьте, что порт 80 доступен извне (файрвол и провайдер не блокируют).
Шаг 2 — Установка PHP 7.1 и зависимостей
Mahara поддерживает PHP > 5.3, но мы используем PHP 7.1 для лучшей производительности и безопасности. В стандартном репозитории CentOS 7 PHP 7.1 нет, поэтому добавим Webtatic.
Установите EPEL и обновите пакеты:
yum -y install epel-releaseyum -y updateДобавьте Webtatic репозиторий:
rpm -Uvh https://mirror.webtatic.com/yum/el7/webtatic-release.rpmyum -y updateУстановите PHP 7.1 и модули, необходимые для Mahara:
yum -y install php71w php71w-mysqli php71w-gd php71w-cli php71w-mcrypt php71w-mbstring php71w-domПроверьте установку PHP:
php -vОжидаемый вывод похож на:
[root@liptan-pc ~]# php -v
PHP 7.1.6 (cli) (built: Jun 10 2017 07:28:42) ( NTS )
Copyright (c) 1997-2017 The PHP Group
Zend Engine v3.1.0, Copyright (c) 1998-2017 Zend TechnologiesНастройка php.ini
Откройте конфигурацию PHP в редакторе:
nano /etc/php.iniНайдите секцию Date и укажите вашу временную зону — пример для Азии/Калькутты:
[Date]
; Defines the default timezone used by the date functions
; http://php.net/date.timezone
date.timezone = Asia/KolkataДалее убедитесь, что включено достаточное число источников энтропии для сессий (раскомментируйте при необходимости):
;session.entropy_length = 32И увеличьте лимит POST‑запросов (Mahara может загружать большие файлы):
post_max_size = 999MСохраните изменения и закройте редактор.
Примечание: в зависимости от ваших требований к использованию памяти и загрузкам вы можете скорректировать post_max_size и upload_max_filesize.
Шаг 3 — Установка MariaDB и создание базы данных
Установите MariaDB (форк MySQL):
yum -y install mariadb mariadb-serverЗапустите MariaDB и включите автозапуск:
systemctl start mariadbsystemctl enable mariadbЗащитите установку с помощью скрипта:
mysql_secure_installationСледуйте подсказкам: установите пароль root, удалите анонимных пользователей, отключите удалённый вход root и удалите тестовую базу.
Создайте базу данных и пользователя для Mahara. Войдите в MySQL:
mysql -u root -pСоздайте базу данных и пользователя (замените StrongPassword на надёжный пароль):
CREATE DATABASE mahara_data CHARACTER SET UTF8;
CREATE USER 'mahara_user'@'localhost' IDENTIFIED BY 'StrongPassword';
GRANT ALL PRIVILEGES ON mahara_data.* TO 'mahara_user'@'localhost';
FLUSH PRIVILEGES;
EXIT;Совет по безопасности: используйте длинную случайную строку для пароля и храните её в менеджере секретов.
Шаг 4 — Загрузка и конфигурация Mahara
Перейдите в директорию веб‑сервера и скачайте пакет Mahara (ссылка в примере ведёт на версию 17.04.2):
cd /var/www
wget https://launchpad.net/mahara/17.04/17.04.2/+download/mahara-17.04.2.zipРаспакуйте архив:
unzip mahara*.zipЕсли unzip не установлен, выполните:
yum -y install unzipПереименуйте папку приложения в удобное имя:
mv mahara-*/ mahara/Создайте директорию для данных Mahara (сессии, файлы):
mkdir /var/www/mahara/dataСкопируйте файл конфигурации по образцу и откройте его для редактирования:
cp mahara/htdocs/config-dist.php mahara/htdocs/config.php
nano mahara/htdocs/config.phpВ файле найдите блок настроек базы данных и измените значения на те, что вы создали:
$cfg->dbtype = 'postgresql';
$cfg->dbhost = 'localhost';
$cfg->dbport = null; // Change if you are using a non-standard port number for your database
$cfg->dbname = '';
$cfg->dbuser = '';
$cfg->dbpass = '';Измените на:
$cfg->dbtype = 'mysql';
$cfg->dbhost = 'localhost';
$cfg->dbport = null; // Change if you are using a non-standard port number for your database
$cfg->dbname = 'mahara_data';
$cfg->dbuser = 'mahara_user';
$cfg->dbpass = 'StrongPassword';Укажите путь к каталогу данных Mahara:
$cfg->dataroot = '/var/www/mahara/data';Добавьте надёжную соль для паролей и шифрования пользовательских данных:
$cfg->passwordsaltmain = 'some random string here.';Если вам нужно запускать cron‑задачи через браузер (для начальной установки), установите urlsecret в null:
$cfg->urlsecret = null;Сохраните изменения и закройте редактор.
Шаг 5 — Права, файрвол и SELinux
Присвойте файлам владельца веб‑сервера:
chown -R apache:apache /var/www/maharaРазрешите HTTP‑трафик в файрволе:
firewall-cmd --zone=public --permanent --add-service=http
firewall-cmd --reloadВременное отключение SELinux (без перезагрузки):
setenforce 0Для полного отключения отредактируйте /etc/selinux/config и установите:
SELINUX=disabledВажно: отключение SELinux снижает уровень безопасности. Лучше настроить правильные контексты SELinux (chcon) и политики, если вы хотите оставить SELinux в режиме enforcing.
Настройка виртуального хоста Apache
Создайте файл конфигурации виртуального хоста:
nano /etc/httpd/conf.d/mahara.yourdomain.com.confВставьте следующий блок, заменив mahara.yourdomain.com на ваш домен:
ServerAdmin [email protected]
DocumentRoot "/var/www/mahara/htdocs"
ServerName mahara.yourdomain.com
ServerAlias www.mahara.yourdomain.com
Options Indexes FollowSymLinks
AllowOverride All
Require all granted
ErrorLog "/var/log/httpd/mahara.yourdomain.com-error_log"
CustomLog "/var/log/httpd/mahara.yourdomain.com-access_log" combined
Перезапустите Apache:
systemctl restart httpdОткройте в браузере адрес:
http://mahara.yourdomain.comи следуйте мастеру установки.

Нажмите кнопку Install Mahara для начала.

Mahara запишет структуру базы и установит модули. После этого нажмите Continue.

Установите пароль администратора.

Вы попадаете в админ‑панель Mahara.
Критерии приёмки
- Сайт доступен по HTTP на вашем домене и отображает страницу установки Mahara.
- Коннект к базе данных успешен, Mahara создала таблицы.
- Директория данных /var/www/mahara/data доступна для записи пользователю apache.
- Вы можете войти в админ‑панель с заданными учётными данными.
Чек‑лист для запуска (роль: DevOps / Системный администратор)
- Обновлённый CentOS 7
- Apache установлен и запущен
- PHP 7.1 и необходимые модули установлены
- MariaDB запущена, база и пользователь созданы
- Конфигурация Mahara настроена и защищена
- Права на файлы настроены (apache:apache)
- Файрвол открыт на порт 80
- SELinux настроен или документировано отключение
- SSL (HTTPS) запланирован для продакшна
Безопасность и рекомендации
- Всегда используйте HTTPS в продакшне. Получите сертификат Let’s Encrypt или коммерческий сертификат и настройте VirtualHost для 443.
- Храните $cfg->passwordsaltmain в секрете и не публикуйте config.php.
- Не используйте urlsecret = null в продакшне. Это подходит только для первоначальной установки.
- Ограничьте доступ к /var/www/mahara/data, сделав её записываемой только для веб‑сервера.
- По возможности оставьте SELinux включённым и настройте контексты файлов (chcon) вместо полного отключения.
Альтернативные подходы и миграции
- База данных: PostgreSQL обычно рекомендована для Mahara — если вы предпочитаете PostgreSQL, установите postgresql-server и настройте $cfg->dbtype = ‘postgresql’.
- PHP: вместо Webtatic используйте Remi репозиторий или SCL (Software Collections) для более свежих версий PHP. В разных окружениях удобнее поддерживать PHP через SCL.
- Контейнеризация: можно развернуть Mahara в Docker‑контейнере с заранее подготовленным образом (основные преимущества — изоляция и воспроизводимость).
Ментальные модели и heuristics
- Разделяй ресурсы: код (htdocs), данные (dataroot) и логи — это упрощает бэкапы и восстановление.
- Принцип наименьших привилегий: пользователь базы данных должен иметь доступ только к нужной базе.
- Тестируй на staging перед релизом в продакшн: сначала выполните установку в тестовой среде.
Устранение неполадок
Проблема: 500 Internal Server Error при доступе к сайту
- Проверьте логи Apache: /var/log/httpd/mahara.yourdomain.com-error_log
- Убедитесь, что php‑модули установлены и включены
- Проверьте права на файлы и SELinux
Проблема: Mahara не подключается к базе
- Проверьте $cfg->dbuser, $cfg->dbpass, $cfg->dbname
- Попробуйте подключиться из командной строки: mysql -u mahara_user -p mahara_data
- Убедитесь, что MariaDB слушает на localhost и нет ограничений по хосту пользователя
Проблема: загрузка больших файлов не работает
- Увеличьте post_max_size и upload_max_filesize в php.ini
- Проверьте лимиты в Apache (LimitRequestBody)
Тесты и критерии приёмки
- Тест 1: Доступность страницы установки — откройте http://ваш-домен и подтвердите, что отображается страница установки.
- Тест 2: Создание администратора — установите пароль и войдите в админ‑панель.
- Тест 3: Загрузка файла в портфолио — загрузите файл размером до установленного лимита.
- Тест 4: Просмотр базы данных — проверьте, что таблицы Mahara созданы в базе mahara_data.
План переключения на продакшн
- Настроить HTTPS и HSTS.
- Отключить urlsecret = null и настроить cron (cron.php) через системный cron.
- Перейти от временного открытия SELinux к конфигурации политик.
- Настроить бэкапы базы и каталога данных по расписанию.
Мини‑методология: быстрая установка в 7 шагов
- Обновление системы
- Установка Apache
- Установка PHP и модулей
- Установка MariaDB и создание БД
- Загрузка Mahara и настройка config.php
- Настройка прав, виртуального хоста и файрвола
- Завершение установки через веб‑мастер и проверка
Заключение
Установка Mahara завершена. Вы получили рабочую платформу для создания электронных портфолио и совместной работы. Для продакшн‑развёртывания обязательно настройте HTTPS, продумайте бэкапы и политики безопасности. Начните с создания администратора, настройте базовые параметры сайта и протестируйте загрузку контента.
Ключевые рекомендации:
- Настройте SSL до приёма реальных пользователей.
- Храните пароли и соль в защищённом хранилище.
- Планируйте регулярные обновления PHP и компонентов сервера.
Спасибо за внимание. Удачного развёртывания Mahara!
Похожие материалы
Несколько аккаунтов Skype: Multi Skype Launcher
Журнал для работы: повысить продуктивность
Персональные звуки уведомлений на Android
Скачивание шоу Hulu для офлайн‑просмотра
Microsoft Start: персонализированная новостная лента