Официально данная ошибка описывается как «ошибки в работе сессии», однако на неофициальной WIKI UMI.CMS написано более логичное объяснение. Несмотря на это, советов по устранению я не нашел.
Ниже — мой выход из данной ситуации, который протестирован на многих проектах и пока что не выявил никаких нарушений в дальнейшей работе CMS. Однако применять его советую лишь в крайних случаях и не несу ответсвтенности за последствия поведению UMI.CMS на вашем хостинге.
Так же возможно изменения кода в фаиле installer.php
и всегда ворзращать успех якобы проверка прошла успешно но в дальнейшем этот способ вылетает в трубу или занимает очень много времени
От теории к практике. Для игнорирования ошибки необходимо найти файл testhost.php на вашем аккаунте, где пока присутствуют лишь файлы для установки CMS:
Это и есть файл, ответственный за проверку хоста на пригодность для установки UMI.CMS
Для того, чтобы игнорировать данную ошибку необходимо закомментировать или удалить тело функции checkSession
/** * Проверка работы сессии */ function checkSession($mode = 'fopen') { /*if (!$this->domain) return; file_put_contents(CURRENT_WORKING_DIR . '/umi_smt.php', '<?php @session_start(); $_SESSION["test"] = "test"; $sessionId = session_id(); @session_write_close(); unset($_SESSION["test"]); @session_start($sessionId); echo($_SESSION["test"]);'); if (!defined("PHP_FILES_ACCESS_MODE")) { $mode = substr(decoct(fileperms(__FILE__)), -4, 4); chmod(CURRENT_WORKING_DIR . '/umi_smt.php', octdec($mode)); } else { chmod(CURRENT_WORKING_DIR . '/umi_smt.php', PHP_FILES_ACCESS_MODE); } $checkUrl = 'http://' . $this->domain . '/umi_smt.php'; $result = ''; if ($mode == 'fopen') { $result = file_get_contents($checkUrl); } else { $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $checkUrl); curl_setopt($ch, CURLOPT_HEADER, 0); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); $result = curl_exec($ch); } $this->assert($result == 'test', 13083); unlink(CURRENT_WORKING_DIR . '/umi_smt.php');*/ return; }