Не отображается содержимое.

Не отображается содержимое.

от Vadim Nigrov -
Количество ответов: 13

Здравствуйте.

Получил в работу сайт, использующий moodle.

Исходные данные: версия 2007101591.01 (согласно versiom.php). Выглядит точно, как какая-то из версий 3.х

Впрочем это она и есть, наверняка.

Мой инженер получил жалобу от пользователей на ошибку:

"Обнаружена ошибка кодирования, она должна быть исправлена программистом: Failed to unserialise data from file. Either failed to read, or failed to write."

Применил чистку кэша. Она завершилась ошибкой, содержимое которой не известно. Он не зафиксировал.

Теперь картина выглядит следующим образом: происходит загрузка главной страницы, страницы ввода авторизации.

Любые другие страницы подгружают header, но все что ниже - пустота.

Исходный код показывает, что происходит загрузка кода до

class="textlogo"
Он же резко обрывается и далее ничего не происходит.


Пожалуйста, откликнитесь. Гугление не помогает.

Бэкапы повреждены вследствие других проблем на другом оборудовании и пока недоступны.


В ответ на Vadim Nigrov

Re: Не отображается содержимое.

от Vadim Tabunshchik -
Изображение пользователя Developers
Исходные данные: версия 2007101591.01 (согласно versiom.php). Выглядит точно, как какая-то из версий 3.х

Это никак не может быть moodle версии 3, кот. вышла в ноябре 2015 г.

2007 - год, 10 - месяц (октябрь), 15 - число месяца.

Это какая-то 1.9.10 или 1.9.11, не могу найти точно, потому как 1.9.10(+) (Build: 20101025) - это version = 2007101591.00, а 1.9.11 (Build: 20110221) - это version = 2007101591.02. Что за версия 91.01 - неизвестно, какая-то переходная, недолго существовавшая. Давно пора было обновить.

Failed to unserialise data from file - ошибка говорит, что не найден какой-то файл, в связи с этим: "подгружают header, но все что ниже - пустота.", подозреваю, что в header должен быть логотип, кот. не находится системой, отсюда ошибка.

Нужно больше инфы: тема оформления, адрес сайта, чтоб исх. код глянуть и т. п.

В ответ на Vadim Tabunshchik

Re: Не отображается содержимое.

от Vadim Nigrov -

Я совсем забыл Вам ответить. Логотип темы присутствует на месте.

С точки зрения темы это ее родной логотип из набора иконок.

В ответ на Vadim Nigrov

Re: Не отображается содержимое.

от Vadim Nigrov -
Не подскажете как изменить шаблон на дефолтный без помощи админки? в php-файлах наверняка ведь это возможно.

Из-за использования openserver не смог до сих пор найти логи, которые хоть как-то помогут.
Я их вообще не нашел. Сидел длительное время в faq разработчиков openserver.
Написано понятно, но на деле логов нет.

Пробую другой вариант - установил более свежий openserver.
Перенес файлы данных + дамп sql в него.
Стали появляться ошибки. Их теперь можно видеть.

"Исключение - syntax error, unexpected 'categoryiconheading' (T_STRING)"
Текст одной из них после авторизации под админом.
"Fatal error: Exception thrown without a stack frame in Unknown on line 0"
Текст второй. В этом случае я пытаюсь попасть по прямой ссылке.
В конкретном этом случае: http://имя сайта/admin/settings.php?section=debugging
Подсказано уважаемым Vadim Tabunshchik.

Так же на данный момент включена отладка. И планирую вновь взяться за поиски логов сервера.
Из запущенных модулей : apache-php7-x64, php-7.0-x64, MySQL-5.5

В случае запуска moodle в конфигурации сервера: Apache-2.4, PHP-5.6 все переходит в состояние, описанное мной в первом посте.

Из хорошего: смог попасть в одну из категорий по прямой ссылке.
http://имя сайта/course/index.php?categoryid=3
Не авторизовываясь, под гостем
Глубже взглянуть не смог. Так как в параметрах установлен запрет на просмотр
материалов без авторизации.
В ответ на Vadim Nigrov

Re: Не отображается содержимое.

от Vadim Tabunshchik -
Изображение пользователя Developers
openserver

Кто посоветовал поставить это на продакшн-сервер? Вы всеми приблудами этой поделки пользуетесь? Вам нужны лишь три компонента для запуска Мудл: веб-сервер, РНР, сервер БД, а не "портативная серверная платформа и программная среда, созданная специально для веб-разработчиков"

не смог до сих пор найти логи, которые хоть как-то помогут

Найдите конфиги Апача (httpd.conf) и РНР (php.ini), в них поищите директивы ErrorLog (Апач) и error_log (РНР), в которых должен быть прописан путь к логам.

как изменить шаблон на дефолтный без помощи админки?

Все настройки сайта хранятся в таблице mdl_config базы данных. Ищите параметр theme и меняйте essential на more (или clean). Кеш нужно потом почистить.

"Исключение - syntax error, unexpected 'categoryiconheading' (T_STRING)"

Похоже на ошибку в синтаксисе РНР файла темы essential. Поможет переключение на стандартную тему.

"Fatal error: Exception thrown without a stack frame in Unknown on line 0"

Ошибка где-то в РНР.

Я бы избавился от openserver, установил  Апач 2.4, РНР 5.6.30, MySQL 5.6 или 5.7. Если сервер на Windows, то и Апач бы не ставил, есть IIS

ЗЫ: Отладчик Мудл что-нибудь пишет на странице http://ios.ruimvd.ru/mod/forum/discuss.php?d=2 или http://ios.ruimvd.ru/course/index.php?

В ответ на Vadim Tabunshchik

Re: Не отображается содержимое.

от Vadim Nigrov -

Vadim, пока готов ответить на кое-что.

Поставил платформу один из бывших сотрудников моей службы. Был нанят в качестве стороннего фрилансера после увольнения от нас и с целью мигрировать сервер из-за рубежа на территорию РФ. (в соответствии с 152-ФЗ и так далее..)

Я больше скажу. Есть готовый сервер на IIS Windows Server 2008. Полностью рабочий, но со старыми данными. На следующей неделе планировали переносить данные и его вводить в строй. И тут случилось то, с чем у меня и проблема сейчас.

Обнаружил вмешательство в конфиг Apache. Добавлены строки с целью перенаправления одного из запросов на другой сервер. Исчезла иллюзия, что сервер не переделывался. 

Нашел лог Apache-2.4-x64_errora.log и Apache-2.4-x64_queriesa.log

В первом интересного мало. Все заполнено warning:

server certificate does NOT include an ID which matches the server name

Думаю тут и я все понимаю правильно.

Второй файл содержит больше информации.

За день пришел к мысли попробовать не решить проблему, а перенести данные на IIS.

Как Вы и предложили. Но не уверен, что перенесу только нужное. Захвачу и проблему туда, на новый сервер.

У меня был опыт переноса данных с 1.9 на 3.х. Но были рабочими обе админки.

Вот такая обстановка.

Боюсь ввел в заблуждение текстами ошибок. Видимо просто под этими версиями Apache и PHP не будет корректно работать Moodle.

Сейчас попробую изменить тему на дефолт.

Добавление: нет логов PHP. Когда в настройках ставил модуль PHP-7 создался лог PHP-7.0_error.log
Соответственно по текущей версии PHP-5.6 логов нет. Будто все работает штатно.
Добавление 2: Смена шаблона прошла успешно. На страницах, которые Вы привели, отображается корректно информация страниц.
Отладчик ничего не пишет. Однако страницы не отобразились штатно. чтоб это произошло пришлось их открыть, нажать кнопки браузера "вперед", потом "назад". Так я его спровоцировал на открытие страниц.
ЗАВЕЛАСЬ страница настроек резервного копирования. Замер у клавы, как мышь, попробую забэкапить данные.
Доступна лишь одна страница резервного копирования одного единственного курса. Остальные не рабочие.
При попытках обращения к разделу "Администрирование" появляется в окне ошибка.
Заголовок окна: SyntaxError. Текст ошибки. Unexpected end of JSON input
В ответ на Vadim Nigrov

Re: Не отображается содержимое.

от Vadim Tabunshchik -
Изображение пользователя Developers
Apache-2.4-x64_queriesa.log

Вообще ничего интересного улыбаюсь Одни запросы GET и те с "левого" сайта http://MySite. Были бы [:error], тогда бы что-то прояснилось.

Смена шаблона прошла успешно. На страницах, которые Вы привели, отображается корректно информация страниц.

Значит, виновата тема essential. Кто-то что-то там "накрутил". Нужно заново залить родные файлы и проверить русский перевод.

Однако страницы не отобразились штатно. чтоб это произошло пришлось их открыть, нажать кнопки браузера "вперед", потом "назад".

Достаточно было кеш браузера почистить, это он из своего кеша старые страницы выдавал.

попробую забэкапить данные

Нужно базу данных забэкапить и каталог moodledata (можно только filedir, остальное не особо важно). И переносить сайт не восстановлением курсов из рез. копий, а восстановлением БД и каталогов moodle и moodledata.

На чем экспериментируете? Сайт ios.ruimvd.ru лежит

В ответ на Vadim Tabunshchik

Re: Не отображается содержимое.

от Vadim Nigrov -

Скажите пожалуйста, может не буду Вас больше отвлекать и есть раздел, где описан перенос данных с одной платформы на другую?

Вот таким, не штатным переносом, а перемещением дампов и файлов.

Я имею вналичии дамп базы на момент, когда узнал о проблеме. Тогда его и сделал сразу.

Так же бэкапы moodledata и самого moodle.

Даже имею последнюю установленную версию moodle, чистую.

Переживаю за два момента: сохраняться ли пары логин/пароль (более 2000 пользователей) и сохранятся ли все ссылки (например из категории "А" именно в подкатегорию "Б", а не в подкатегорию "С" и т.п.) ?

Экспериментирую локально на том же на чистом, только установленном openserver. Закрыл проходы "снаружи" и по localhost работаю.

Вот случайно нашел: http://www.e-du.ru/2017/03/moodle-update.html

Понимаю, что не мой случай, но по аналогии наверно можно попробовать?

В ответ на Vadim Nigrov

Re: Не отображается содержимое.

от Vadim Tabunshchik -
Изображение пользователя Developers

Перенос сайта подробно описан тут (англ): https://docs.moodle.org/32/en/Moodle_migration

По пунктам:

  1. Включаем режим обслуживания (чтоб закрыть доступ на сайт и в БД не писалось ничего)
  2. Делаем дамп БД, каталога moodle и moodledata (я оставляю обычно только filedir - обязательно и trashdir - если не пустая, lang - если есть правки локального перевода, а нет -можно и заново загрузить языковый  пакет позже). Всё остальное - мусор, логи обновлений, временные папки и т. п.
  3. Заливаем всё на новый сервер, выставляем права, если нужно.
  4. Редактируем config.php, прописываем новый адрес сайта в $CFG->wwwroot, новый путь к каталогу moodledata в $CFG->dataroot, логин и пароль пользователя БД (если изменились)
  5. Заходим на сайт, проверяем работу.
  6. На странице /admin/tool/replace//ndex.php делаем поиск и замену старого адреса сайта на новый.
сохраняться ли пары логин/пароль (более 2000 пользователей)

Канешно, всё же в БД хранится

и сохранятся ли все ссылки

Какие ссылки? Система создает относительные ссылки, адрес сайта подставляется в скриптах из переменной $CFG->wwwroot, вставленные пользователем абсолютные ссылки в курсах (если есть) со старым адресом изменятся после выполнения п. 6

 

В ответ на Vadim Tabunshchik

Re: Не отображается содержимое.

от Vadim Nigrov -

Да. У Вас в профиле не зря написано, что Вы эксперт по Moodle улыбаюсь))

Спасибо Вам за потраченное время и за помощь!!!!!!!!

Начну попытку переноса прямо сейчас в надежде оставить проблему на старом сервере.

И если все будет успешно - второй шаг: перенос данных на подготовленный сервер с IIS.

Насчет ссылок Вы абсолютно правильно поняли. Я не смог вспомнить термины "абсолютная" и "относительная". Объяснил "на пальцах".

В ответ на Vadim Tabunshchik

Re: Не отображается содержимое.

от Vadim Nigrov -

Проблема мигрировала на новый сайт. Впрочем, что и требовалось доказать.

Теперь возможна авторизация под Админом. Просмотр различных разделов в обычном режиме за исключением "Администрирование".

Ошибка: заголовок окна: SyntaxError. Текст ошибки. Unexpected end of JSON input

улыбаюсь Продолжу изыскания...

Добавлено: удалось оживить раздел администрирование путем скрещивания версий. Автоматически была предпринята попытка модификации старой БД, залитой в новую и чистую БД от версии 3.0 до 3.2. После чего с ругательствами при каждом щелчке по ссылке, но заработал раздел. попытаюсь сделать полный бэкап курсов и прочего, если время жизни сессии даст мне это сделать.

В ответ на Vadim Tabunshchik

Re: Не отображается содержимое.

от Vadim Nigrov -

Вадим, я мало занимался сегодня проблемой, но достиг результата.

Заработала админка. Не знаю насколько корректно, но заработала на тестовом сервере.

Parse error: syntax error, unexpected 'categoryiconheading' (T_STRING) in C:\OpenServer\domains\ios.ruimvd.ru\theme\essential\lang\en\theme_essential.php on line 557

Не могу вспомнить, что же я сделал, но получил белый экран и вот такую ошибку. Отладчик был включен.

Перерыв все, что только мог нашел дистрибутив той самой moodle 3.0.2 + тему essential. Спасибо настройщику, оставил исходники.

theme_essential.php из дистрибутива отличался от моего на 32 Кб 25 байт. Файл заменил на новый. Все завелось.

В чем разница в 25 байт - пока неизвесто.

Еще раз СПАСИБО! Если бы не Вы - то потратил бы намного больше времени на все эти разбирательства.

В строке 557 указано:

$string['categoryiconheading'] = 'Category icons';

Как Вы и предполагали ранее. Не знаю, что у меня теперь не работет, пока все функции работают.

В ответ на Vadim Nigrov

Re: Не отображается содержимое.

от Vadim Tabunshchik -
Изображение пользователя Developers

Тема essential уже новая вышла - 3.2.1.1 (Build: 2017021002) (2017021002) Moodle 3.2 Release date: Вторник, 4 Апрель 2017, 20:37

Если moodle обновили до 3.2, то и тему нужно обновить.

Ошибка в языковом файле \lang\en\theme_essential.php, или кавычки/скобки не хватает, или точки с запятой. Сравните 2 файла, увидите, в чем проблема.

Пожалуйста улыбаюсь