У меня тоже самое
"Fatal error: Call to undefined method CMain::GetServerUniqID() in .. ./bitrix/modules/main/classes/general/update_client.php on line 1 "
Заглядываю в этот файл, а он закодирован! Т.е. я сам ничего исправить по этому рецепту уже не смогу.
Обновляюсь с версии 6.5.1. Получается, система обновлений зависит от более новой версии главного модуля. Это же надо было так придумать. Чтобы обновить главный модуль, нужно обновить систему обновлений. Но она требует дальше в работе более новую версию главного модуля.
Протокол обновления, кстати, содержит упоминание об успехе:
Update system updated | 2012-08-14 00:36:52 | Успешно |
Придется обращаться в поддержку
Добавлено: В поддержку обращение я написал, но пока его писал придумал способ решения. Ждать не стал, сделал сам. Обновления прошли. У меня их 577 штук. Редакция Стандарт. Выбирал только то, что
придется ставить (все рекомендованные модули, кроме Компрессии, Монитора производительности, Проактивной защиты и поисковой оптимизации). Остальные модули установлю потом, сначала поправлю то, что "поехало" (изменений мало, вижу, что придется переделывать шаблон одной сложной WEB-формы).
Само решение:
Нужно добавить в \bitrix\modules\main\classes\general\main.php код недостающей функции. Делается это в классе CAllMain. Код я взял из Битрикс 11, имевшегося под рукой:
Код |
---|
function GetServerUniqID()
{
$uniq = COption::GetOptionS tring("main", "server_uniq_id", "");
if(strlen($uniq)<=0)
{
$uniq = md5(uniqid(rand(), true));
COption::SetOptionS tring("main", "server_uniq_id", $uniq);
}
return $uniq;
}
|
В процессе обновления этот файл перетерся новой версией. Так что вставка функции нужна только для работы скрипта системы обновлений в первый раз.