Обновление Moodle 1.9 до версии 2.5 и выше
Добрый день сегодня мы будет обновлять moodle. Т.к. стоящего мануала по обновлению я не нашел, а процесс достаточно опасный в плане потери времени и потери данных расскажу о подводных камнях которые подстерегают вас. И так для начала нам необходимо сделать полный бекап(backup) базы данных и файлового архива сайта. У меня стоит сервер на ubuntu, а база данных используется mysql поэтому буду приводить примеры на них. Делаем бекап базы данных следующее командой:
mysqldump -u root -p mydatabase > /home/myname/mydatabasedump.sql
где ключ -u значит пользователя. ключи -p пароль, у нас его не стоит.( если у вас он есть то пишите без пробела после ключа). mydatabase название базы которую мы сохраняем. И последнее это адрес куда сохраняем бекап и его название. Ничего сложно. Для файлового архива процедура немного попроще все решается
tar -cvf example.tar /home
Запаковываем в tar архив example папку /home. у вас скорее всего будет другая папка, название тоже можете поменять. После такого как мы сделали бекап сайта переходим непосредственно к обновлению. И так у вас стоит версия 1.9, заходим в папку с основным сайтом moodle и удаляем оттуда все кроме файла config.php. Следующим шагом нам нужно залить версию moodle 2.2 т.к. для обновления с версии 1.9 подходит только она. Находим на оффициальном сайте и качаем. Скаченный архив распаковываем в нашу папку с moodle в котором остался только файл config. Распаковав идем на сам сайт в браузере. И вам должно высветится окно с обновлением. Нажимаем далее и получаем картину о том, что проверил скрипт и все условия удовлетварены(должо подсвечиваться все зеленым цветом, если есть красный цвет вам необходимо устранить эту ошибку иначе вас не пустят дальше) После пройденной проверки, вы попадаете на страницу с вашими модулями. Посмотрите внимательно все ли модули поддерживаются новой версией, если нет то лучше удалить их залив обратно сайт из бекапов. Или же если вам как и мне лень заливать удалять и т.д. то позже я расскажу вам как это сделать по другому. Будем считать что все нормально и жмем далее и тут наступает долгий процесс обновления. Все это будет проходить визуально поэтому вы можете отслеживать процесс. В моем случае процесс длился около 3 часов и завершился неуспешно. Но об этом позже. После окончания вы увидите кнопку продолжить, и появится страница со всевозможными настройками сайта. Вы кстати можете не тратить время на настройку если будете дальше обновлять сайт, если же остановитесь на достигнутом результате то лучше настроить. На этом обновление до версии 2.2 завершена. Заходите на сайте и проверяйте все курсы, пользователей и файловый архив.Особенно проверьте архив. В новой версии он переделан, и сделана поддержка старого архива и бывает так, что поддержка не работает и все файлы есть на сервере но на сайте не отображаются. Да кстати
в новой версии не поддерживаются темы из 1.9 поэтому если у вас уникальная тема то лучше заранее сделать ее на чистом сайте, если же одна из оригинальных то они переделаны и в новой версии. Процесс обновления с версии 2.2 до более свежей проходит по такому же принципу, что и с 1.9 тоесть заливаем новый сайт сохранив config и действуем через браузер. Итак если у вас ошибки при обновлении, и вам категорически не удается обновить сайт через браузер я расскажу второй способ более надежный, но для начала расскажу про удаление неподдерживаемых модулей.
Удаление неподдерживаемых модулей
Идете в базу данных и ищете таблицу mdl_block
В ней ищите название модуля который не поддерживается и удаляйте его
Вот и все модули удалены, проблемы с ним не должно быть.
Обновление более надежным способом через консоль
Начала этого обновления такое же вплоть до того момента когда заливаете архив с новой версии moodle. Тока после этого момента идете в консоль и идете в корень сайта. Там прописываете
$ sudo -u apache /usr/bin/php admin/cli/upgrade.php
на этом запускается процесс обновления. Вылезете вопрос на разрешение, отвечаете yes и понеслась. Тут процесс будет более длительный и отследить процентную завершенность не возможно, за то можете 100% быть уверенны что все перенесется как надо. В обновление с версии 2.2 до более высокой необязательно использовать этот метод т.к. он менее опасный и перелапачивается база данных намного меньше.