Как Вы обновляете Moodle? Как следует его обновлять правильно?
Текущая версия у меня: Moodle 2.9.1+
Есть доступ по FTP, все права.
А так по фтп закидываю файлы из нового архива поверх старого с заменой файлов. Главное config.php сохранить предварительно.
Поверх старого с заменой - это не правильно. При переходе с версии на версию некоторые файлы и папки убираются или переименовываются, и вы можете получить ситуацию, когда к более новой версии будут подцепляться старые плагины.
Правильно - удалить все файлы кроме config.php и залить файлы новой версии.
"Правильно - удалить все файлы кроме config.php и залить файлы новой версии".
Вадим, удалить все файлы, это включая moodledata и все папки из директории установки moodle? А как не удалить созданные курсы?
Для системы Moodle я создал отдельный поддомен на сайте. Означает ли Ваша рекомендация, что нужно удалить все папки из директории поддомена?
Могли бы Вы по пунктам написать список правильных действий?
Другой Вадим ответит, ОК?
В moodledata удалять нельзя каталог filedir (тут хранятся все файлы курсов), остальное, в принципе можно удалять. Но лучше moodledata вообще не трогать, особенно, если не знаешь, чего делаешь.
Перед обновлением нужно сделать резервные копии всех каталогов (директории установки moodle, moodledata) и бэкап БД. Вдруг обновление не получится или захочется всё вернуть назад.
Потом удаляете всё, кроме config.php, из каталога установки moodle и "заливаете" туда файлы новой версии. Естественно, нужно вернуть назад файлы нестандартных модулей/плагинов/др. (если были установлены), проверив предварительно наличие их новых версий в каталоге дополнений moodle.
Всё.
Какие папки, окромя относящихся к moodle, находятся в вашей "директории поддомена", мне неведомо, поэтому ничего по этому поводу не скажу.
Большущее спасибо за полный ответ!!! Я действительно пока мало что понимаю в moodle, но очень нравится!
Обновился!
А в директории поддомена находятся следующие папки:
cgi
docs
errordocs
logs
moodledata
php
stat
Вроде бы они все (кроме moodledata) были созданы автоматические при создании поддомена. Поэтому наверное их не надо удалять.
А директория установки - docs, в ней я разместил все папки и файлы из папки moodle, при разархивации скачанного обновления.
Вопрос на уточнение: бэкап БД делается через phpMyAdmin (командой экспорта) или как-то иначе следует это делать?
Вопрос на уточнение: бэкап БД делается через phpMyAdmin (командой экспорта) или как-то иначе следует это делать?
Да это самый простой способ сделать бэкап БД. Экспорт-Обычные настройки, выделить все таблицы (они должны быть уже выделены) еще рекомендуют ставить галку "Добавить DROP..." После жмем ОК и указываем место сохранения.
Понятно! Большое спасибо, Алексей!
т.е. портейбл версия Moodle на XAMPP
Механизм обновления ничем не отличается от других установок, если установленная версия и новая используют одно и то же ПО сервера (PHP, MySQL). Т. е., можно беспроблемно в одном и том же пакете for Windows обновиться с 3.6 до 3.7 или 3.8. Может и с версии 3.5 получится такое обновление, не пробовал.
Если же нужно обновиться с более ранних версий, работающих на старых версиях софта PHP, MySQL, то тут нужно полностью менять весь пакет, а БД восстанавливать из бекапа. moodledata, естественно, нужно тоже сохранить.
Смотрите системные требования для разных версий Мудл (https://download.moodle.org/releases/latest/, https://download.moodle.org/releases/security/, https://download.moodle.org/releases/legacy/) и сравнивайте с тем, что в вашем установленном пакете. Поймете, на какую версию можно обновиться.
Остановил Moodle и переименовал папку в Moodle.old
Распаковал новый портейбл пакет в папку Moodle
отправил в новую установку файл конфига и папку moodledata - сайт не работает, невозможно подключиться к базе
попытался mysqldump.exe сделать дамп с теми же реквизитами, что ранее делал на работающем сайте - невозможно подключиться к базе
Не было времени разбираться в итоге в старую установку Moodle сделал копирование всего из нового пакета
Файлы базы данных \server\mysql\data\moodle\ остались в Moodle.old, ibdata1, ib_logfile* - там же. Вы никогда не подключились бы к mysql.
Если ПО сервера соответствует требованиям новой версии МУдл, нужно было всё, кроме config.php, удалить из \server\moodle\, распаковать туда файлы новой версии, запустить Start Moodle.exe, открыть сайт, зайти в уведомления. Всё.
Спасибо за совет ставить в режим техобслуживания!
Всем здравствуйте, хотел попросить совет. Можно ли и стоит ли обновлять moodle через версию, к примеру с 2.7.10 до 2.9.3? Или нужно постепенно? Или точного механизма нет?
Note: You can only upgrade to Moodle 2.9 from Moodle 2.2 or later. If upgrading from earlier versions, you must upgrade to 2.2 as a first step.Начиная с 2.2 можно, но наверное надежней по порядку, а еще надежней полный backup и можно пробовать.
Если есть бекап, то можно на любую.
При попытке обновления и переводе сайта в режим обслуживания выбросило с сайта... Теперь высвечивается только: "Извините, сайт находится в режиме технического обслуживания и сейчас недоступен". Как попасть на сайт для продолжения обновления?
Как попасть на сайт для продолжения обновления?
Напрямую ввести адрес страницы авторизации не пробовали? http://site/login/index.php
ЗЫ: Админа (кто устанавливал систему) при включении режима обслуживания не должно выбрасывать с сайта.
Можно отключить режим техобслуживания в БД, поставив в «0» параметр maintenance_enabled в табл. mdl_config. Изменение параметра сразу может не отразиться на сайте, поэтому почистите кеш moodle через консоль (скрипт admin/cli/purge_caches.php)
Подскажите, пожалуйста, как лучше в новую версию залить уже установленные плагины? Можно ли просто скопировать всю папку /Blocks или /Mod из прошлой версии или нужно по одному добавлять согласно списку плагинов, которые исчезли в новой версии?
Иногда переход на новую версию Moodle приходится откладывать пока для нее не появятся все нужные плагины.
Я просто хочу понять, что лучше взять все папки из старой версии и перенести только их и оставить файлы из корня от новой или можно просто всю папку Block перенести в новую версию ?
Вы скачиваете из сайта новую версию Moodle без доп. плагинов, т.е. без дополнительных папок. Если у вас установлено 5 или 15 доп. плагинов, значит нужно добавить 5 или 15 доп. папок. Папки можно добавлять и по одной, и все 15 за один раз, но ни какие попало, а те, которые подходят для вашей новой версии Moodle. Вот и всё! Что за навязчивая идея неглядя копировать всю папку с плагинами?
Ок. Спасибо!
А что делать, если плагинов много, а их папки располагаются в разных местах? В качестве примера таких плагинов VPL (https://moodle.org/plugins/mod_vpl) устанавливается в директорию moodle/mod, а CodeRunner (https://moodle.org/plugins/qtype_coderunner) соответственно в директорию moodle/question/type.
А что если у меня будет установлено сотня плагинов? Во время установки мне надо запоминать их все "в лицо" и после обновления директории moodle переносить ВСЕ их директории руками или записывать каждый плагин в скрипт собственный скрипт обновления?
Выглядит очень не продумано и костыльно, поэтому искренне надеюсь, что есть правильное решение. Ну или просто подскажите как лучше поступить, если правильного решения нет.
И плагины обновлять нужно перед обновлением самого moodle?
Буду очень благодарен за помощь, потому что эта проблема не даёт спокойно обновлять moodle.
Можно делать по-разному. Мне, например, нравится такой метод.
Разумеется, перед обновлением делаете резервную копию папок moodle, moodledata и базы данных.
Потом переименовываете moodle в moodle-old и скачиваете с moodle.org папку moodle с новой версией. Файл config.php копируете из старой папки в новую. Входите, как администратор, на сайт и начинается его обновление. По завершении выводится страничка с информацией об отсутствующих плагинах. Возле каждого из них есть кнопка, при нажатии на которую, папка с нужной версией плагина автоматически загрузится с moodle.org в нужное место папки moodle и эта кнопка исчезнет. После того, как перещелкаете все кнопки, нажмете внизу странички кнопку Обновить.
Вот и всё. Если все прошло удачно, то moodle-old удаляете.
Но к сожалению, в этот раз придерживался вашей инструкции неточно и сначала обновил moodle, а только затем попытался обновить plugin coderunner. В итоге сайт повисает (бесконечно показывает белый экран) на моменте установки обновлений. Пробовал удалять директорию с плагином и восстанавливать её из бэкапа moodle, но это не помогает - аналогично процесс обновления не заканчивается.
Буду благодарен за подсказку, как починать.
ЗЫ бэкап БД и moodledata перед обновлением не делал =(
обновляйтесь через интерфейс комнадной строки, там нет таймаута. Плюс сможете точно увидеть на каком плагине и в какой момент времени произошла ошибка
Методом проб обновил плагин таким образом: удалил старую директорию плагина coderunner (moodle/question/type/coderunner), распаковал в это место новую версию плагина, установил владельцем директории пользователя web-сервера (www-data) и запустил обновление (moodle/admin/cli/upgrade.php).
Помогло. Больше не вижу уведомлений о необходимости обновить плагин.
Напомню, проблемы были похоже из-за внутренних конфликтов в плагине после неудачного обновления moodle.
Всем спасибо за помощь.
У меня сейчас стоит Moodle 3.7.1+ (Build: 20190801)
в уведомлениях прислали
Доступна более новая версия Moodle!
Плиз, дайте алгоритм неучу обновления с 3.8.4 на 3.9.1+.
Мудл стоит на своем сервере под ubuntu server 18.04.
благодарю
Если какой-то пункт не понятен, спрашивайте конкретнее, постараюсь подсказать.
Удачи.
Видно я что-то не понимаю. Смысл в обновлении - удалить все файлы, кроме конфига, залить новую версию и оно всё успешно заработает. Естественно, решил попробовать на отдельном сервере. Накатил сайт, удалил папку мудла, залил новую версию. Всё как по науке. Зашел на сайт - предложили обновиться. Обновился. Сайт чистый, с нуля. В SQL все данные есть. В moodledata - тоже все папки на месте. Почему тогда сайт чистёхонек как новорожденный? Ни пользователей, ни курсов. Ни-че-го.
Что я упустил? Кэш почистил, но вряд ли это помогло бы...
Это при условии, что нет дополнительных плагинов и изменений. Более безопасный вариант обновления через git.
> Почему тогда сайт чистёхонек как новорожденный? Ни пользователей, ни курсов. Ни-че-го.
Есть подозрение, что при обновлении что-то пошло не так или вы не обратили внимание, что вам предложили установить новую версию, а не обновить.
Посмотрите в config.php с какой базой и с каким префиксом работает ваш обновленный moodle.
Сравните размер базы рабочего сервера с тем, что у вас на отдельном сервере.
> Что я упустил?
Что-то упустили.
У вас есть рабочий moodle или его полный бекап, который вы развернули на отдельном сервере, т.ч. процесс можно повторить еще раз и понять где ошибка.
Если конфиг-файл не трогали, то должен быть обновить, т.е. внести изменения в существовавшие базу данных и папку moodledata.