Обновление Moodle на Windows сервере

Дано: Moodle определенной версии (в моем случае, установленный на Windows Server 2012 R2 + IIS + MS SQL Server).
Задача: обновить версию Moodle.



Краткий план обновления:
  1. Проверяем совместимость текущего программного обеспечения (например, PHP) с новой версией Moodle.
  2. Включаем в Moodle режим техобслуживания.
  3. Делаем бэкапы (резервные копии) папок Moodle и базы данных.
  4. Обновляем все плагины (т.к. после обновления самого мудл, они могут уже не "вставать" из-за несовпадения версий)
  5. Устанавливаем секретный ключ для обновления
  6. Скачиваем архив новой версии moodle, распаковываем куда-нибудь (не туда, где рабочий мудл).
  7. В распакованной папке с новой версией мудл: копируем в новый config.php настройки из старого config.php, туда же копируем web.config (если был), папку с темой (из текущего Moodle), а также папки сторонних типов вопросов и всех плагинов, которые ставились отдельно (Посещаемость и др.).
  8. Переходим в папку рабочего Moodle, удаляем всё содержимое основной папки "moodle" (moodledata не трогаем) и копируем туда содержимое из папки новой версии.
  9. Затем заходим на сайт мудл под учетной записью администратора, должен начаться процесс обновления базы (также будет запрошен ранее заданный секретный ключ).
  10. Если обновление проходит успешно, по завершению чистим все кэши.
  11. При необходимости вносим изменения в код, если до этого что-то меняли в самом ядре Moodle (например, мы меняли кое-что в стилях редактора и в коде модуля обратной связи).

Процесс обновления также описан на официальном сайте (на английском) - docs.moodle.org/32/en/Upgrading

Теперь подробнее рассмотрим некоторые этапы.

(1) Проверка совместимости ПО
Первоначально проверяем, какие требования к ПО у новой версии Moodle и далее переходим на страницу Администрирование - Сервер - Среда (версии ПО) и сравниваем:


Проверяем версии и при необходимости первоначально обновляем нужное ПО.


Например, moodle 3.2 требует PHP не ниже версии 5.6.5.


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

(2) Включаем в Moodle режим техобслуживания

Включение режима технического обслуживания: Администрирование - Сервер - Режим технического обслуживания:


На странице указываем необходимую для пользователей информацию, которую они будут видеть при заходе на сайт Moodle:


(3) Делаем бэкапы (резервные копии) папок Moodle и базы данных.

Обязательно делаем резервные копии текущей версии Moodle.
Бэкапим базу данных (способ в зависимости от используемой СУБД).
Также нужно сохранить папки Moodle: папка moodle и папка moodledata (могут называться и по-другому). Например, сделать их архив:


(4) Обновляем все плагины, если для них есть обновления.

Если этого не сделать заранее, то после обновления самого Moodle может не получится их обновить, т.к. требуемые версии мудл могут не совпадать.
См. Moodle: обновление плагинов через веб-интерфейс

После этого можно сделать еще раз бэкап.

(5) Устанавливаем секретный ключ обновления (Upgrade key)

В процессе обновления система Moodle уязвима, т.к. любой зашедший в нее пользователь в момент установки обновлений может перехватить этот процесс вместо администратора. Поэтому рекомендуется установить ключ, защищающий этот процесс.
Для этого в файле config.php нужно установить следующий параметр upgradekey:


Задаем любое значение, которое нужно будет ввести, когда при обновлении появится такой запрос ("Требуется обновления ключа"):


(6) Скачиваем архив новой версии moodle


Далее распаковываем в любую папку, но главное не на рабочий мудл.

(7) В распакованной папке с новой версией мудл: копируем в новый config.php настройки из старого config.php, туда же копируем web.config (если был), папку с темой (из текущего Moodle), а также папки сторонних типов вопросов и всех плагинов, которые ставились отдельно (Посещаемость и др.).

(8) Переходим в папку рабочего Moodle, удаляем всё содержимое основной папки "moodle" (moodledata не трогаем) и копируем туда содержимое из папки новой версии.

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

(10) Если обновление проходит успешно, по завершению чистим все кэши.

Очистка кэшей: Администрирование - Разработка - Очистить все кэши.


Проверяем номер текущей версии Moodle: Администрирование - Уведомления.

См. также:
Другие инструкции по Moodle

(с) Ella S.
Если Вам понравилась статья, пожалуйста, поставьте лайк, сделайте репост или оставьте комментарий. Если у Вас есть какие-либо замечания, также пишите комментарии.

3 комментария:

  1. есть пороги перехода с ветки на ветку?
    2.4 - 3.0.1
    3.0.1 - 3.1
    3.1 - 3.2?

    ОтветитьУдалить
    Ответы
    1. Да, есть.
      С 2.2 - только до 3.0.
      С 3.0 можно обновляться до 3.4.
      Фрагмент официальной документации: "You can only upgrade to Moodle 3.4 from Moodle 3.0 or later."
      docs.moodle.org/34/en/Upgrading

      Удалить
  2. Добрый день! при обновлении с 3,7 до 3,11 возникла проблема https://moodle.org/mod/forum/discuss.php?d=425557#p1713749 можете подсказать по ситуации?

    ОтветитьУдалить