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

Установка Mahara на CentOS 7

• 7 min read • Инструкции • Обновлено 28 Nov 2025
Установка Mahara на CentOS 7
Установка 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 httpd
systemctl 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-release
yum -y update

Добавьте Webtatic репозиторий:

rpm -Uvh https://mirror.webtatic.com/yum/el7/webtatic-release.rpm
yum -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 mariadb
systemctl 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

и следуйте мастеру установки.

Страница приветствия Mahara с кнопкой «Install Mahara»

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

Процесс установки: запись в базу данных и установка модулей

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

Установка пароля для администратора в интерфейсе Mahara

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

Административная панель Mahara после завершения установки

Вы попадаете в админ‑панель 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.

План переключения на продакшн

  1. Настроить HTTPS и HSTS.
  2. Отключить urlsecret = null и настроить cron (cron.php) через системный cron.
  3. Перейти от временного открытия SELinux к конфигурации политик.
  4. Настроить бэкапы базы и каталога данных по расписанию.

Мини‑методология: быстрая установка в 7 шагов

  1. Обновление системы
  2. Установка Apache
  3. Установка PHP и модулей
  4. Установка MariaDB и создание БД
  5. Загрузка Mahara и настройка config.php
  6. Настройка прав, виртуального хоста и файрвола
  7. Завершение установки через веб‑мастер и проверка

Заключение

Установка Mahara завершена. Вы получили рабочую платформу для создания электронных портфолио и совместной работы. Для продакшн‑развёртывания обязательно настройте HTTPS, продумайте бэкапы и политики безопасности. Начните с создания администратора, настройте базовые параметры сайта и протестируйте загрузку контента.

Ключевые рекомендации:

  • Настройте SSL до приёма реальных пользователей.
  • Храните пароли и соль в защищённом хранилище.
  • Планируйте регулярные обновления PHP и компонентов сервера.

Спасибо за внимание. Удачного развёртывания Mahara!

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

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

Несколько аккаунтов Skype: Multi Skype Launcher
Программное обеспечение

Несколько аккаунтов Skype: Multi Skype Launcher

Журнал для работы: повысить продуктивность
Productivity

Журнал для работы: повысить продуктивность

Персональные звуки уведомлений на Android
Android.

Персональные звуки уведомлений на Android

Скачивание шоу Hulu для офлайн‑просмотра
Стриминг

Скачивание шоу Hulu для офлайн‑просмотра

Microsoft Start: персонализированная новостная лента
Новости

Microsoft Start: персонализированная новостная лента

Как изменить имя в Epic Games быстро
Гайды

Как изменить имя в Epic Games быстро