Backup, полное копирование всего портала на другой сервер

Backup, полное копирование всего портала на другой сервер

от Vladimir Mitskevich -
Количество ответов: 36
Как переносить портал (полное копирование)? Backup по cron делает архивный файл. Это полный архив? Как его использовать на другом сервере?
В ответ на Vladimir Mitskevich

Re: Backup, полное копирование всего портала на другой сервер

от Vladimir Mitskevich -
Для 1.8.1,похоже, через: Site Administration Front Page Front Page backup Front Page restore
В ответ на Vladimir Mitskevich

Re: Backup, полное копирование всего портала на другой сервер

от Artem Andreev -
Изображение пользователя Эксперт по Moodle
С помощью этого Вы по идее сделаете бэкап только главной страницы и все...

А так: дамп БД, перенос полностью каталога moodledata и причесывание на новом месте (проблемы при изменении доменного имени и т.п.)
В ответ на Artem Andreev

Re: Backup, полное копирование всего портала на другой сервер

от Vladimir Mitskevich -
Да, так и получилось. Причем, курс этой головной страницы встраивается в уже имеющийся, а не замещает его. Приходится полностью всю главную страницу создавать заново. А как средствами самого Moodle перенести все его содержимое на другой пустой портал? Неужели все на нем заново создавать и вручную переносить каждый, допустим, из тысяч курсов, форумов, словарей и т.д.?
В ответ на Artem Andreev

Re: Backup, полное копирование всего портала на другой сервер

от Алексей Давыдов -
Недавно столкнулся с проблемой перехода на другой хостинг и переноса всего портала.
Вот последовательность действий которая сработала.
  1. Переводим мудл в режим технического обслуживания, чтобы пользователи не мешали
  2. Делаем дамп базы данных
    >mysqldump -h localhost -u [имя_пользователя] -p [База]>[путь к дампу]/base.sql
  1. Делаем архив папки moodledata, т.к. все что нужно в ней
    tar -cvf /home/user/moodledata.tar moodledata/*
  2. копируем дамп и архив на новый сервер
    wget -P [путь куда качаем] --user=[имя пользователя] --password=[пароль пользователя] ftp://[старый хостинг]/moodledata.tar ftp://[старый хостинг]/base.sql
  3. Создаем новые базы данных на новом сервере, например new_moodle1 и new_moodle2
  4. загружаем новую версию moodle
  5. устанавливаем moodle с нуля на новом сервере в качестве базы данных указываем new_moodle1
  6. Распаковываем архив moodledata.tar в папку moodledata
    tar -xvf moodledata.tar [путь к папке]/moodledata
  7. восстанавливаем дамп базы данных в пустую базу данных
    mysql -h localhost -u [имя_пользователя] -p new_moodle2<base.sql
  8. правим файл config.php указываем базу new_moodle2 вместо new_moodle1, а также актуальное для новой базы имя пользователя и пароль
  9. перезапускаем сервер
  10. загружаем страничку, при этом moodle обновит базу данных и выполнив обновление и проверки сделает портал рабочим.
  • все что написано в скобках нужно заменить своими данными.
  • при создании и распаковке архивов, восстановлении дампа базы нужно прописывать пути к файлам (архивам, дампу и т.д.)
  • переход был с Moodle 1.9.2+ на 1.9.8+
  • переустанавливали Moodle потому что на разных хостингах файлы сайта хранятся в разных местах и если просто перенести папку moodle сайт может не заработать как надо.


В ответ на Алексей Давыдов

Re: Backup, полное копирование всего портала на другой сервер

от Michael Goncharenko -
Небольшое замечание.

Такая последовательность сработает, если $CFG->wwwroot у них одинаковый.

Если разный - нужно открыть базу в текстовом редакторе и заменить старое имя хоста на новое. Если этого не сделать - все ссылки на изображения в ресурсах курса будут вести на старый сервер.
В ответ на Алексей Давыдов

Re: Backup, полное копирование всего портала на другой сервер

от Александр Демин -

сделал экспорт/импорт по Вашей инструкции, всё встало прекрасно за исключением базы (собственно моя проблемка которую и нужно решить). Сделал импорт всё в кракозябрах, в phpmyadmin переделал таблицу в utf8_general_ci, но всеравно часть базы в кракозябрах.

базу взял из бекапа хостера (masterhost) как они говорят он делает бекап в UTF-8. В чем проблема импорта тогда непонятно.

В ответ на Vladimir Mitskevich

Re: Backup, полное копирование всего портала на другой сервер

от Dmitry Pupinin -
Просто скопировать саму базу (папку в которой храняться файлы ваших таблиц) на новый сервер (не обязательно дамп делать), ну и дальше как Артем сказал...
В ответ на Dmitry Pupinin

Re: Backup, полное копирование всего портала на другой сервер

от Vladimir Mitskevich -
Спасибо за подсказку. Но хочу еще узнать, как грамотно делать копию средствами самого Moodle, чтобы по максимуму перенести (или сбэкапить для восстановления). Покурсовое копирование вроде проходит, но должен же быть встроенный способ сделать копию всего сразу?
В ответ на Vladimir Mitskevich

Re: Backup, полное копирование всего портала на другой сервер

от Artem Andreev -
Изображение пользователя Эксперт по Moodle
Настроить резервное копирование в Администрирование---Курсы---Резервные копии. Будет создавать бэкапы всех курсов, каждый в отдельном файле... А вообще весь портал лучше бэкапить так, как описали перед этим...
В ответ на Artem Andreev

Re: Backup, полное копирование всего портала на другой сервер

от Vladimir Mitskevich -
Так про то и речь, что каждый в своем файле. А если их сотни, тысячи...Одним файлом средствами быстрее переносить было бы
В ответ на Vladimir Mitskevich

Re: Backup, полное копирование всего портала на другой сервер

от Artem Andreev -
Изображение пользователя Эксперт по Moodle
Представляю я себе такой один файл. Просто нет смысла, если надо переносить ВСЮ инсталяцию moodle, то переносить ее надо так, как уже было описано. Извините, но у меня такое ощущение, что Вы себе сами проблемы придумываете, чтобы их пото героически преодолевать... улыбаюсь
В ответ на Artem Andreev

Re: Backup, полное копирование всего портала на другой сервер

от Vladimir Mitskevich -
может я неправильно переношу весь курс, но приходится все время лазить в каждую папку backup, искать там сделанный zip, заносить его в новый портал и там запускать восстановление. Неужели не проще было бы 1 файл всего портала перенести и запустить на восставновление всего портала, но на новом месте?
В ответ на Vladimir Mitskevich

Re: Backup, полное копирование всего портала на другой сервер

от Dmitry Pupinin -
Такой возможности нет.
Вам же уже предложили просто скопировать всю базу. Весь перенос таким образом сводится к копированию одной папки со старого места на новое.
В ответ на Dmitry Pupinin

Re: Backup, полное копирование всего портала на другой сервер

от Vladimir Mitskevich -

Просто скопировал всю папку с установленным moodle (1.8.3+) на диск D:\, т.е., та же буква, что и на оригинальном месте сервера-донора, изменил файл config.php ($CFG->wwwroot)

Курсы, что были от оригинального портала, естественно, были со ссылками на его url, т.е. не отображались. Поэтому их удалил и экспортом с оригинального через импорт залил на этот новый (сделал 1 пустой курс и из него восстанавливал закачанные zip-бакапы курсов оригинального сервера как новые курсы). Восстанавливалось вся структура категорий и находящихся в них курсах - как в оригинале. Но:

Проблема - при входе в курс путь его местонахождения (у всех восстановленных) - главная страница портала. Т.е., оригинальный путь курса по категориям пропал почему то

В ответ на Vladimir Mitskevich

Re: Backup, полное копирование всего портала на другой сервер

от Vladimir Mitskevich -

Проблемы нет. Оказывается, так было и в оригинале.

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

В ответ на Vladimir Mitskevich

Re: Backup, полное копирование всего портала на другой сервер

от Dmitry Pupinin -
А зачем его создавать системой установки?
В дистрибутиве есть файл config-dist.php... копируем его, переименовываем, вписываем вручную настройки и все... подмигиваю
В ответ на Dmitry Pupinin

Re: Backup, полное копирование всего портала на другой сервер

от Vadim Bazilevich -
простое копирование пройдет только при остановленном сервере mysql, в противном случае могут быть неприятности.

В ответ на Vladimir Mitskevich

Re: Backup, полное копирование всего портала на другой сервер

от Дарья Романенкова -

Уточните, пожалуйста, механизм переноса всех курсов с сервера на сервер. Копирование директории Moodledata и дамп базы данных, БД из дампа импортирована на сервер. В файле config.php перенастроено подключение на базу. Ничего не вышло. Какие еще нужны манипуляции с БД, с файлами настроек? Может быть проблема связана с тем, что серверы имеют разные имена?

В ответ на Дарья Романенкова

Re: Backup, полное копирование всего портала на другой сервер

от Artem Andreev -
Изображение пользователя Эксперт по Moodle
Можно поподробнее о "ничего не вышло"? Так непонятно, что отображется, какие ошибки вылетают и т.п.
В ответ на Artem Andreev

Re: Backup, полное копирование всего портала на другой сервер

от Дарья Романенкова -

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

В ответ на Дарья Романенкова

Re: Backup, полное копирование всего портала на другой сервер

от Pakulya Pakulya -

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

  • сначала с нуля проинсталлировала denwer, установила новый moodle с идентичным названием и так же на localhost.
  • сохранила в отдельной папке новый файл config.php и папку usr.
  • поменяла максимальный размер для загружаемых файлов (в php)
  • заменила полностью папку  moodle  (www -  потому как в прежней добавлены фильтры, модули, покопалась в стилях и прочее;  moddledata), папку  usr  на соответствующие папки со старого компьютера.
  • заменила файл config.php

Вроде все заработало и ссылки тоже.

Но чую, что все так красиво только на локальной машине. Видно какие-то сложности при таком методе переноса на сервер могут возникнуть?

В ответ на Vladimir Mitskevich

Re: Backup, полное копирование всего портала на другой сервер

от Павел Рябов -
У меня есть подозрение , что мудль мало отличается от любого другого скрипта на php

ТО есть надо:
1. Сделать бэкап (в архив) рабочей директории moodle
2/ Сделать бэкап (в архив)той части moodle , которая живет ниже public_html .
3. Сделать бэкап (в архив) базы mysql
4 Скопировать эти три файлика на новый сервер.
5. Развернуть базу из файла архива
6. Развернуть файлы архивов, сохранив структуру и расположен каталогов и проверив права доступа.
7. Отредактировать конфигурационные файлы для использования с новой базой данных и путями к каталогам.
8. Настроить крон итп
9. Возможно , настроить недостающие библиотеки. Скорректировать настройки нового сервера.

Я не верю во встроенный бэкап для переноса. Слепок живой системы должен работать лучше.
В ответ на Павел Рябов

Re: Backup, полное копирование всего портала на другой сервер

от Ne Nashev -
Есть один нюанс, который надо не забыть: в базе хранится много кусочков html-текста, содержащих абсолютные адреса оригинального сервера.

Для исправления большинства их них можно использовать replace.php, который живёт в админской папке, но некоторые их текстов храняться упакованными в структуры (кэш, в основном). Такоё кэш надо будет чистить как-то... Где-то периодически всплывают инструкции по этому поводу. Вероятно, в английской части docs.moodle.org про это можно найти.
В ответ на Ne Nashev

Re: Backup, полное копирование всего портала на другой сервер

от Vadim Tabunshchik -
Изображение пользователя Developers
Мы у себя при переносе сайта с сервера на локальный комп (ради эксперимента и "про запас" улыбаюсь) сделали проще:
  1. Сделали дамп БД файлами *.sql (по частям, т.к. один файл сильно большой - порядка 200 Мб)
  2. Написали простенький скрипт на PHP, который находит часть строки и заменяет ее на то, что нужно. Запустили скрипт по этим файлам *.sql. К примеру - находим http://www.yousite.org.edu. 5 минут и все абсолютные ссылки заменены на нужные.
В ответ на Vadim Tabunshchik

Re: Backup, полное копирование всего портала на другой сервер

от Сергей Буянов -

////Написали простенький скрипт на PHP, который находит часть строки и заменяет ее на то, что нужно. Запустили скрипт по этим файлам *.sql. К примеру - находим http://www.yousite.org.edu. 5 минут и все абсолютные ссылки заменены на нужные.////

Я сделал еще проще:

1. экспортировал локальную БД;

2. в "Блокноте" открыл *.sql  файл и "Правкой->Заменить все"  поменял localhost на нужный мне домен;

3. импортировал измененный *.sql файл на сервер;

4. слил в нужное место на сервер локальную папку moodledata.

Кажись, все перенеслось один-в-один.

В ответ на Сергей Буянов

Re: Backup, полное копирование всего портала на другой сервер

от Vadim Tabunshchik -
Изображение пользователя Developers
>>в "Блокноте" открыл *.sql файл
Извините, размер файла не укажете?
Сколько по времени он у Вас открывался? И как долго замена происходила?
Скрипт использовали, т. к. я писал: "один файл сильно большой - порядка 200 Мб"
Вы пробовали такой файл блокнотом открыть на офисной машине?
В ответ на Vadim Tabunshchik

Re: Backup, полное копирование всего портала на другой сервер

от Сергей Буянов -

У меня более скромные размеры. А как Вы его заливали? У меня провайдер пишет на файл импорта: "Максимальный размер 32,768 КБ"...

///Вы пробовали такой файл блокнотом открыть на офисной машине?...///

Не...Большая усмешка но 20 М открывается.

Если бы у меня был такой большой файл, я бы подумал как бы  сделать импорт-экспорт БД по частям, например по 5-7 таблицам. Ведь не может же 200 М храниться в одной таблице. Хотя... Тогда Ваш скрипт будет просто незаменим.Одобрить

В ответ на Vadim Tabunshchik

Re: Backup, полное копирование всего портала на другой сервер

от Влад Иванов -
В Линуксе есть утилита SED Работает очень быстро. 200Мб - секунды.
Выглядит это примерно так:

cat moodle1.sql | sed 's/ftip.nspu.net/sss.ftip.local/g' >moodle1.sql (1 адрес меняем на второй)
В ответ на Влад Иванов

Re: Backup, полное копирование всего портала на другой сервер

от Виталий Лавров -
Изображение пользователя Эксперт по Moodle
Так делать НЕ НУЖНО!
Так вы только испортите файл ( т.к. shell сначала создаст файл ) !
точки в исходном имени лучше заэкранировать
sed 's/ftip\.nspu\.net/sss.ftip.local/g' moodle1.sql >moodle2.sql

В ответ на Виталий Лавров

Re: Backup, полное копирование всего портала на другой сервер

от Влад Иванов -
Спасибо, учту! улыбаюсь

Но у меня ничего не портилось и все работало.

В ответ на Влад Иванов

Re: Backup, полное копирование всего портала на другой сервер

от Виталий Лавров -
Изображение пользователя Эксперт по Moodle
Ну если имя исходного файла отличается от результрующего, то все нормально, а если совпадают - то результат 0-й длинны!


В ответ на Виталий Лавров

Re: Backup, полное копирование всего портала на другой сервер

от Влад Иванов -
Да, только сейчас заметил, что я в примере задал одно и то же имя файла!
Конечно же они должны отличаться!

В ответ на Ne Nashev

Re: Backup, полное копирование всего портала на другой сервер

от Павел Рябов -
А зачем они это сделали? Оно в ядре так написано? Или это кто то из модулей чудит?
В ответ на Павел Рябов

Re: Backup, полное копирование всего портала на другой сервер

от Макс Ривкин -
Вообще-то, это замечание к moodle-писателям, использование прямых ссылок - это муветон. Жуумла например такого себе не позволяет. Там даже если в статью вносишь прямую ссылку сама корректирует...
В ответ на Макс Ривкин

Re: Backup, полное копирование всего портала на другой сервер

от Alexandre Scherbyna -
Не знаю как насчет ссылок, но если французские слова читать по-английски, то это уж точно моветон! Посмішка