Перенос Moodle на новый сервер

Для переноса Moodle с локального компьютера на сервер или с сервера на сервер необходимы следующие шаги:
1. перенос базы данных
2. перенос самого сайта Moodle
3. перенос папки moodledata
4. правка файла config.php
Но это на первый взгляд всё так просто…


Подробный порядок шагов следующий:

  1. Включить режим обслуживания на СТАРОМ сайте чтобы предотвратить любые дальнейшие дополнения в базу Moodle.
    – Administration > Site administration > Server > Maintenance mode.
  2. Сделать резервное копирование на СТАРОМ сайте – MySQL базы данных Moodle
  3. Сделать копию папки САЙТА на FTP СТАРОГО сервера
  4. Сделать копию папки MOODLEDATA на FTP СТАРОГО сервера
  5. Распаковать архив MOODLEDATA на компьютере и:
    – очистить каталог: moodledata/cache/
    – через поиск по содержимому файлов – найти и заменить упоминание путей старого сервера, на новый ( относительно корневой директории __FILE__ /oldroot/moodledata на /newroot/moodledata )
    – через поиск по содержимому файлов – найти и заменить упоминание url старого сайта, на новый ( oldserver.com на yourserver.com )
    – переупаковать папку moodledata по новой
  6. Распаковать архив с MySQL базы данных СТАРОГО сайта на компьютере и:
    – через поиск по содержимому – найти и заменить упоминание путей старого сервера, на новый ( относительно корневой директории __FILE__ /oldroot/www на /newroot/www )
    – через поиск по содержимому – найти и заменить упоминание url старого сайта, на новый ( oldserver.com на yourserver.com )
    – переупаковать MySQL базы данных по новой
  7. Залить дамп переупакованной MySQL базы СТАРОГО сайта на НОВЫЙ MySQL сервер
  8. Залить архив переупакованной MOODLEDATA папки со СТАРОГО сервера, на НОВЫЙ сервер и распаковать в каталог, В КОТОРОМ находится ПАПКА с НОВЫМ сайтом
    – например: если сайт находится здесь: /root/www/файлы сайта , то путь для распаковки: /root/ ( чтобы получилось /root/moodledata/файлы папки )
    – установить права на папку moodledata и содержимое, права 777 (папки) и 666 (файлы)
  9. Распаковать копию СТАРОГО сайта на FTP НОВОГО сервера, в папку для сайта
  10. Проверить наличие файла .htaccess – если нет (такое может быть) http://moodle.oa.edu.ua/help.php?file=install.html#webserver
    – если его нет, создать и внести в него:
    #-------------------------------------------------
    DirectoryIndex index.php index.html index.htm


    AcceptPathInfo on

    php_flag magic_quotes_gpc 1
    php_flag magic_quotes_runtime 0
    php_flag file_uploads 1
    php_flag session.auto_start 0
    php_flag session.bug_compat_warn 0

    LimitRequestBody 0
    #php_value upload_max_filesize 2M
    #php_value post_max_size 2M
    #-------------------------------------------------

  11. Откорректировать файл в корне сайта: config.php
    – $CFG->dbhost = ‘хостинг MySQL’;
    – $CFG->dbname = ‘название базы’;
    – $CFG->dbuser = ‘имя пользователя’;
    – $CFG->dbpass = ‘пароль базы’;
    – $CFG->prefix = ‘префикс таблиц cmr_’;
    – $CFG->wwwroot = ‘url нового сайта – например http://yourserver.com’;
    – $CFG->dataroot = ‘абсолютный путь к папке moodledata – например /root/moodledata’;
  12. Открыть НОВЫЙ сайт и авторизоваться как администратор
  13. Открыть url: yourserver.com/admin/tool/replace/index.php или в старых версиях http://yourserver.com/admin/replace.php
    – Введите url адрес вашего старого сервера (http://oldserver.com/) и url нового сервера (http://newserver.com/) – и выполните автоматическое исправление таблиц MySQL.
  14. Выполнить очистку всех кешей на сайте: yourserver.com/admin/purgecaches.php

По идее всё должно работать!

Если не так, внимательно просмотреть темы:
https://moodle.org/mod/forum/discuss.php?d=264840
https://moodle.org/mod/forum/discuss.php?d=258018
http://moodle.oa.edu.ua/help.php?file=install.html

https://docs.moodle.org/27/en/Maintenance_mode
https://docs.moodle.org/27/en/Moodle_migration#Migrating_a_complete_Moodle_site_-_method_1
https://docs.moodle.org/27/en/Search_and_replace