Как вместо «There has been an error processing your request» отображать реальное диагностическое сообщение?

[10 ноября 2016 г.]    Российская сборка Magento 2.49.12
Magento 2: модули и услуги
#1 Дмитрий Федюк
  • Администратор
  • Иконка
  • Группа: Администратор
  • Сообщений: 8885
  • Регистрация: 20.02.2010

26.03.2010 23:48

Magento по умолчанию не отображает на экране отчёты реальные диагностические сообщения при своих сбоях.
Вместо этого Magento записывает отчёты об этих сбоях в папку «var/report».
Для каждого отчёта Magento создаёт отдельный файл, именем которого является номер (идентификатор) отчёта, и этот номер Magento показывает посетителю сайта при сбое, например:
«Exception printing is disabled by default for security reasons.
Error log record number: 1124469878.
»

На этапе внедрения и отладки Российской сборки Magento намного удобней будет видеть диагностически сообщения сразу на экране, нежели искать и открывать файл отчёта.

Включить отображение диагностических сообщений на экране можно несколькими способами:
  • Способ простой, но требует правки файла с программным кодом.
    Откройте файл «index.php» в корне сайта.
    Найдите там код:
    if (isset($_SERVER['MAGE_IS_DEVELOPER_MODE'])) {
        Mage::setIsDeveloperMode(true);
    }

    Замените этот код на следующий:
    //if (isset($_SERVER['MAGE_IS_DEVELOPER_MODE'])) {
        Mage::setIsDeveloperMode(true);
    //}


  • Способ правильный, но требующий большей квалификации.
    Надо инициализировать любым значением переменную окружения MAGE_IS_DEVELOPER_MODE веб-сервера.
    • Если Вы используете веб-сервер Apache, то устанавливать переменные окружения можно:
      • в файле *.conf для Apache, например:
        Listen 584
        <VirtualHost *:584>
            ServerName localhost
            DocumentRoot "C:\work\p\2011\01\15\magento-pro.ru\code"
            SetEnv MAGE_IS_DEVELOPER_MODE "any value"
        </VirtualHost>

      • многие веб-среды на основе Apache позволяют устанавливать переменные окружения в файле .htaccess:
        SetEnv MAGE_IS_DEVELOPER_MODE "any value"

        Этот способ по умолчанию доступен не всегда. Чтобы он был доступным, в настройках Apache для сайта опция «AllowOverride» должна иметь значение «FileInfo» или «All», причём это значение можно установить разом для всех сайтов, указав в качестве области действия настройки корневую папку всех сайтов, например:
        <Directory "C:\work\p">
            AllowOverride All
        </Directory>

    • Если Вы используете веб-сервер nginx, то устанавливать переменные окружения можно в файле *.conf для nginx, например:
      location ~ \.php$ {
          fastcgi_param  MAGE_IS_DEVELOPER_MODE any_value;
      }


Поделиться темой: