Для корректного переноса системы с сервера на сервер необходимо учесть множество моментов, но на самом деле ничего сложного в этой операции нет.
Пошаговая инструкция:
- На новом сервере должна быть создана база данных в той же кодировке, что и на предыдущем. Должен быть создан пользователь базы данных с полными правами к этой базе. Имя пользователя, пароль, база данных точно такие же как и на старом сервере, можно другие, но тогда еще потребуется править config.php
- На старом сервере создаем дамп базы данных, проверяем, что все таблицы записались в файл.
- На новом сервере импортируем дамп базы в базу данных.
- Копируем каталог со скриптами на новый сервер в дирректорию, на которую настроен веб-сервер.
- Копируем каталог с данными на новый сервер. К этому каталогу не должно быть доступа из веб.
- В config.php изменяем wwwroot и dataroot, если требуется.
- Проверяем права на каталоги со скриптами и с данными. Владельцем каталога с данными должен быть пользователь, от имени которого запущен веб-сервер. У этого пользователя должны быть полные права rwx, тоесть 7.
- Естевственно, что passwordsaltmain должен быть такой же, как и в конфиге на старом сервере.
- Если изменилось доменное имя, необходимо запустить процесс автоматического поиска и замены доменного имени по всей базе данных. В moodle22 этот скрипт находится по адресу: mymoodle.ru/admin/tool/replace/index.php
Если все сделать правильно, то проблем быть не должно. Скорее всего проблема действительно в passwordsaltmain, он должен быть перенесен в config.php без изменений. Если авторизоваться все-таки не получается, то идем в базу данных, таблицу user, находим в ней запись учетки, у которой есть админский доступ, и обновляем ей пароль напрямую, применив перед этим к новому паролю функцию MD5.
После этого необходимо оповестить пользователей moodle о том, что старые пароли не работают(если был изменен passwordsaltmain, а не проблема авторизации только у 1 пользователя). Обновить пароли пользователям можно через массовую загрузку пользователей из csv файла, прописав в csv файл старые пароли пользователей.