Здравствуйте, уважаемые читатели! Для тех, кто администрирует сайты на основе LMS Moodle, рано или поздно встает вопрос о необходимости обновления системы до новой версии. В новых версиях, как правило, содержатся исправления ошибок, различных уязвимостей, добавление нового функционала.

Так как же обновить систему до новой версии на удаленном сервере через web, вот вам краткая инструкция.

Проверьте требования

проверка сервера moodle

Убедитесь, что ваш сервер отвечает всем требованиям для версии 3.11 в разделе Администрирование> Сервер> Среда (версии ПО).

Вы можете перейти только на Moodle 3.11 только с Moodle 3.6 или более поздней версии. При обновлении с более ранних версий в качестве первого шага необходимо выполнить обновление до версии 3.6.

Перед обновлением

Советую вам сначала протестировать обновление на копии вашего сайта, чтобы убедиться, что он работает корректно.

Рассмотрите возможность установки ключа обновления для вашего сайта.

Ключ обновления

Защищает ваш сайт Moodle во время обновления.

Когда сайт Moodle обновляется в результате обновления ядра Moodle и / или установки / обновления плагина, механизмы аутентификации и авторизации не надежны. Любой анонимный посетитель вашего сайта может инициировать процесс обновления, вводя в свой браузер адрес страницы администратора.

Это можно рассматривать как угрозу безопасности, поскольку на экранах обновлений доступно много конфиденциальной информации (серверная среда, версии плагина и т. д.).

Чтобы улучшить защиту вашего сайта во время обновления, рекомендуется настроить ключ обновления в основном файле config.php:

$CFG->upgradekey = 'put_some_shared_secret_here';

Если ключ обновления определен в файле config.php, его значение должно быть предоставлено для доступа к страницам администратора во время обновления сайта.

Не используйте пароль администратора в качестве ключа обновления.

Резервирование важных данных

Перед обновлением необходимо резервировать три области:

  • Программное обеспечение Moodle (например, все в сервере server / htdocs / moodle)
  • Загруженные файлы Moodle (например, сервер / moodledata)
  • База данных Moodle (например, дамп базы данных Postgres или MySQL) См. Резервное копирование сайта для получения более подробной информации.

Проверить наличие обновлений плагина

Если вы включили автоматическое развертывание обновлений, вы сможете обновлять установленные плагины автоматически во время обновления. Просто убедитесь, что вы проверяете наличие доступных обновлений (с помощью кнопки для него) на экране проверки плагинов.

уведомления-об-обновлении-moodle

Если вы обновляете плагины вручную, сейчас самое время проверить каталог Moodle Plugins, есть ли плагины, которые вы ранее установили на своем сайте для версии 3.11. Если да, загрузите их. На следующем шаге вы скопируете его в соответствующее место в коде Moodle (см. установка плагинов).

Обновление плагина пройдет как часть процесса обновления Moodle.

Если устаревший плагин приводит к сбою обновления, можно удалить код плагина, а не удалять его из Moodle, чтобы связанные с ним данные не удалялись.

Поместите свой сайт в режим обслуживания

режим-технического-обслуживания-moodle

Прежде чем приступать к обновлению своего сайта, вы должны перевести его в режим обслуживания, чтобы не допустить входа в систему пользователей, не являющихся администраторами. Затем вам нужно дождаться завершения всех текущих запущенных процессов cron перед продолжением.

Установите новое программное обеспечение Moodle

Вы можете получить текущую версию программного обеспечения по ссылке:

http://sourceforge.net/projects/moodle/files/Moodle/stable311/moodle-latest-35.tgz

Стандартный режим установки

  1. Переместите ваши старые файлы программ Moodle в другое место. НЕ копируйте новые файлы поверх старых файлов.
  2. Разархивируйте или распакуйте файл обновления, чтобы все новые файлы программного обеспечения Moodle находились в том месте, где старые файлы использовались на сервере. Moodle будет настраивать SQL и moodledata, если это необходимо для обновления.
  3. Скопируйте старый файл config.php и .htaccess (если добавляли свои правила) в новый каталог Moodle.
  4. Как уже упоминалось выше, если вы установили плагины на свой сайт, вы должны добавить их в новое место (структуру каталога Moodle). Важно проверить, что вы выбрали правильную версию для своей новой версии Moodle. Будьте особенно осторожны, чтобы вы не перезаписывали какую-либо папку в новой версии Moodle и что вы размещаете папки плагинов в правильном каталоге (тот же каталог, в котором они находятся в текущей установке).
  5. Ваша папка moodledata должна быть размещена отдельно от папки Moodle и, как таковая, не должна с ней взаимодействовать. Moodle 3.0 выдаст предупреждение, если она находится в папке, доступной в Интернете, папка moodledata никогда не должна находиться в папке Moodle. Если вы перемещаете свою установку на новый сервер или новое местоположение на своем сервере, вам необходимо будет следовать инструкциям по миграции.

Linux

mv moodle moodle.backup 
tar xvzf moodle-latest-3.11.tgz

Затем скопируйте файл config.php, любые пользовательские плагины и ваш .htaccess файл, если вы его создали (проверьте, что пользовательские плагины являются правильной версией для вашего нового Moodle):

cp moodle.backup / config.php moodle
cp -pr moodle.backup / theme / mytheme moodle / theme / mytheme 
cp -pr moodle.backup / mod / mymod moodle / mod / mymod

Не забудьте сделать moodle / config.php (и остальные папки) доступной для чтения вашим сервером www. В идеале файлы не должны записываться вашим сервером.

chown -R www-data: www-data moodle (Linux debian — переход к соответствующему пользователю и группе для вашей версии ОС) chmod -R 755 moodle

Если вы используете cron, позаботьтесь о том, чтобы cron.php выполнялся и использовал правильную команду php:

chmod 740 admin / cli / cron.php 
(для некоторых конфигураций требуется chmod 750 или chmod 755)

скопируйте первую строку из cron.php 
(если это похоже на '#!/usr/local/bin/php' 
или '#!/usr/local/bin/php5.3', нет необходимости копировать '<? php')

если необходимо. Однако для простого обновления не нужно ничего менять с помощью cron.

Использование Git

Вы можете использовать Git для обновления или обновления вашего Moodle. Подробнее см. Git для администраторов.

Обновление через командную строку

На серверах Linux Moodle 3.11 поддерживает запуск обновления из командной строки, а не через веб-браузер. Это, вероятно, будет более надежным, особенно для крупных сайтов.

Завершение обновления

Последний шаг — инициировать процессы обновления в Moodle.

Если вы поместили свой сайт в режим обслуживания раньше; отключите его сейчас!

Для этого просто откройте «Администрирование»> «Администрирование сайта»> «Уведомления».

Moodle автоматически обнаружит новую версию и выполнит все необходимые обновления базы данных SQL или файловой системы. Если есть что-то, что он не может сделать сам (очень редко), тогда вы увидите сообщения, сообщающие вам, что вам нужно делать.

Предполагая, что все идет хорошо (никаких сообщений об ошибках), вы можете начать использовать свою новую версию Moodle и наслаждаться новыми функциями!

Примечание. Если вы запускаете несколько серверов, вы должны очистить все кеши вручную (через Administration> Администрирование сайта> Разработка> Очистить все кеши) после завершения обновления на всех серверах.

Fatal error: Maximum execution time of 30 seconds exceeded… (Неустранимая ошибка: превышено максимальное время выполнения 30 секунд…)

Если ваш сервер использует основной язык, отличный от английского, вы можете столкнуться с «Неустранимая ошибка: максимальное время выполнения 30 секунд превышено» при попытке обновления. Вы можете увеличить max_execution_time = 160 в php.ini, чтобы выделить сценариям достаточно времени для обработки обновления языка.

В противном случае вы можете перейти на английский язык по умолчанию, прежде чем выполнять обновление и вернуться к исходному языку после успешного обновления. См. Обсуждение на форуме по адресу https://moodle.org/mod/forum/discuss.php?d=119598.

После обновления

Файл config.php из вашей установки должен работать нормально, но если вы посмотрите на config-dist.php, который поставляется вместе с Moodle 3.0, доступно больше / разных опций (например, драйверы и настройки базы данных). Это хорошая идея, чтобы сопоставить ваши старые настройки config.php с новой версией 3.0 config-dist.php.

Cron

Cron получил большое обновление (MDL-25499) и теперь поддерживает как запланированные, так и специальные задачи.

Преимущества этих изменений:

  • Расписание для каждой задачи может быть настроено администратором
  • Задачи могут выполняться параллельно
  • Процессы Cron используют блокировку для предотвращения одновременной работы одной и той же задачи различными процессами
  • Поддерживаются кластеры с несколькими идентичными узлами приложения, вы можете запускать cron на всех из них
  • Результатом этого является то, что cron можно запускать гораздо чаще, что означает (например) сообщения на форуме могут быть отправлены раньше. Чтобы воспользоваться преимуществами новой cron-системы, теперь настоятельно рекомендуется, чтобы администраторы увеличивали частоту, с которой cron запускается не реже одного раза в минуту.

Вам также может потребоваться изменить любые автоматизированные сценарии, которые вы анализируете после запуска cron. Уже невозможно просто контролировать вывод cron для строки «Cron script completed completed». Альтернативой является мониторинг вывода для строки «Задача не выполнена:». Если вы обнаружите, что задача не работает, вот несколько советов по отладке ошибки.

Перед обновлением возможно выполнение задачи cron, которая не срабатывала, что предотвращало выполнение остальной части cron. Сбой в какой-либо одной задаче больше не будет препятствовать выполнению остальных задач Moodle, поэтому вы можете обнаружить ранее незамеченные ошибки. Хорошая идея — внимательно следить за результатами работы cron после обновления.

Новые пользовательские туры

В Moodle 3.11 появилось четыре новых пользовательских тура, два для преподавателей и два для студентов. При желании их можно отключить в разделе Администрирование сайта / Внешний вид / Пользовательские туры.

Вот и вся инструкция. Если остались вопросы, задавайте в комментариях.

С уважением, Яровиков Олег