Не отображается главная страница админки MODx

Не знаю от чего, но перестала отображаться главная страница панели управления MODx, после авторизации, в логах никакой информации о данной ошибки нет, проверил файл /manager/index.php
$modx->getRequest();
$modx->getParser();

if (isset($modx) && is_object($modx) && $modx instanceof modX) {
    if (!$modx->getRequest()) {
        $modx->log(modX::LOG_LEVEL_FATAL,"Could not load the MODX manager request object.");
    }
    if (!MODX_API_MODE) {
        $modx->request->handleRequest();
    }
}
@session_write_close();
exit();
echo «1» выводится только до условия, дальше просто белый экран.
Могу ходить по страницам, например сначала зайти /?a=system/settings, отсюда уже могу использовать навигацию панели управления, могу делать всё, только не могу открыть главную страницу панели управления!
Что порекоммендуете?
Установки новых плагинов не было, было только обновление плагинов до stable версий.
Ядро modx не трогал.
Версия modx 2.3.1

UPD: Обновил до последней версии, проблема осталась та же.
Роман Садоян
31 июля 2015, 10:59
modx.pro
1
6 156
0

Комментарии: 20

SEQUEL.ONE
20 июля 2015, 13:08
0
Какая стоит версия php? Вероятнее всего какие-то файлы создались при обновлении под root'ом. Самая распространённая ошибка.
    Роман Садоян
    20 июля 2015, 13:16
    0
    PHP 5.3.13
    Под root не обновлял, у всех файлов один владелец.
      Роман Садоян
      20 июля 2015, 14:54
      0
      Есть идеи? Только главная страница не работает, отключал все виджеты — безрезультатно!
      Роман Садоян
      20 июля 2015, 15:56
      0
      if (isset($modx) && is_object($modx) && $modx instanceof modX) {
          if (!$modx->getRequest()) {
              $modx->log(modX::LOG_LEVEL_FATAL,"Could not load the MODX manager request object.");
          }
            else{ echo "1";}
      
          if (!MODX_API_MODE) {
              $modx->request->handleRequest();
          }
      }
      @sessio
      Выводит «1»
        Роман Садоян
        20 июля 2015, 16:02
        0
        Где я могу почитать логи, если в Управление -> Отчеты -> Журнал ошибок — всё чисто?!
          Воеводский Михаил
          20 июля 2015, 16:12
          0
          Например, логи сервера или консоль браузера.
            Роман Садоян
            20 июля 2015, 16:16
            0
            В консоли браузера 500 ошибка, ничего не возвращается, в логах сервера смысла смотреть не вижу.
              Воеводский Михаил
              20 июля 2015, 16:19
              0
              Оригинальный подход.

              Рекомендую почитать в инете про возвращаемый 500 статус, а затем пересмотреть свою точку зрения.
                Роман Садоян
                20 июля 2015, 16:32
                0
                Спасибо, приятно.
                Error log пуст, даже не пуст, а нет в нем ошибок касательно manager, да и вообще сайта в целом.
                  Роман Садоян
                  20 июля 2015, 16:37
                  0
                  Может есть возможность включить отображение ошибок MODx? Как я писал Выше, index.php отрабатывает до условия, дальше не может.
                    Воеводский Михаил
                    20 июля 2015, 17:01
                    0
                    Если вижу 500 ошибку, сразу смотрю лог ошибок сервера — MODX, как правило, совершенно ни при чем.
                      Роман Садоян
                      20 июля 2015, 17:04
                      0
                      Но остальная часть админки работает же?!
                      Вся панель управления идет через /manager/index.php
                        Воеводский Михаил
                        20 июля 2015, 17:28
                        0
                        index.php является контроллером. Сам по себе он ошибку не создает. Ищите в логах описание ошибки, после этого только возможно продолжение поиска причины. Иначе — гадание на кофейной гуще.
            Дмитрий Суворов
            27 января 2016, 11:34
            0
            мне помогла смена версии PHP на 5.5
              PetrovDS
              31 октября 2016, 15:45
              0
              Столкнулся с аналогичной проблемой. При поиске решения наткнулся на эту тему, потому опишу здесь способ, который помог мне.

              MODX Revolution 2.5.1-pl
              PHP 5.4.44 (хотя достаточной вроде является версия 5.3.3)

              Я долго исследовал, где движок стопорится. В итоге пришёл к тому, что дело в виджетах. В файле core/model/modx/moddashboard.php есть следующий код:
              public function render(modManagerController $controller) {
                      $c = $this->xpdo->newQuery('modDashboardWidgetPlacement');
                      $c->where(array(
                          'dashboard' => $this->get('id'),
                      ));
                      $c->sortby('rank', 'ASC');
                      $placements = $this->getMany('Placements', $c);
                      $output = array();
                      /** @var modDashboardWidgetPlacement $placement */
                      foreach ($placements as $placement) {
                          /** @var modDashboardWidget $widget */
                          $widget = $placement->getOne('Widget');
                          if ($widget) {
                              $content = $widget->getContent($controller);
                              if (!empty($content)) {
                                  $output[] = $content;
                              }
                          }
                      }
                      return implode("\n", $output);
                  }
              мб он будет немного другим (начинается примерно с 65 строчки).

              Далее я объявил переменную $i, которая считала количество итераций цикла foreach. На значении 3 у меня цикл останавливался, хотя массив $placements содержит 5 элементов (проверил через count($placements)). По этой причине я сделал просто пропуск третьей итерации цикла:

              public function render(modManagerController $controller) {
                      $c = $this->xpdo->newQuery('modDashboardWidgetPlacement');
                      $c->where(array(
                          'dashboard' => $this->get('id'),
                      ));
                      $c->sortby('rank', 'ASC');
                      $placements = $this->getMany('Placements', $c);
                      $output = array();
                      /** @var modDashboardWidgetPlacement $placement */
                      // MAGIC IN 75, 79, 80 LINES
                      $i = 0;
                      foreach ($placements as $placement) {
                          /** @var modDashboardWidget $widget */
                          $widget = $placement->getOne('Widget');
                          if (++$i == 3)
                              continue;
                          if ($widget) {
                              $content = $widget->getContent($controller);
                              if (!empty($content)) {
                                  $output[] = $content;
                              }
                          }
                      }
                      return implode("\n", $output);
                  }
              Костыль, но работает. Для моих задач меня такое решение устраивает, потому копаться дальше я не стал. Т.к. здесь меняются файлы движка, этот способ вы используете на свой страх и риск.
                Андрей
                31 октября 2016, 19:41
                0
                Решать очевидную проблему с настройками хостинга правкой ядра, это как то… Не проще сменить хостинг?
                  PetrovDS
                  01 ноября 2016, 16:07
                  0
                  Для меня абсолютно неочевидно, что проблема в хостинге. Можете пояснить, что натолкнуло на такой вывод?
                    Андрей
                    01 ноября 2016, 16:17
                    0
                    Натолкнуло неоднократное решение подобных проблем. В первую очередь нужно смотреть серверные логи, на чём идёт затык.

                    p.s. Виджеты как правило вообще выключаю сразу.
                  Василий Наумкин
                  31 октября 2016, 19:58
                  +1
                  Скорее всего, третий виджет — это виджет новостей с modx.com, который вешает загрузку админки, если modx.com эти новости вовремя не отдаёт.

                  Так что нужно просто отключить его в настройках виджетов админки, и всех делов.
                    PetrovDS
                    01 ноября 2016, 16:05
                    0
                    Третий виджет — Канал безопасности MODX. Отключил его из админки и удалил свой код из ядра. Помогло. Спасибо
                  Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
                  20