Prestashop отображение ошибок

Всем привет. На сегодняшнем уроке мы научимся включать отображение ошибок. Рано или поздно все мы сталкиваемся с проблемами то у нас модули не отображаются то мы получаем белую страницу вместо сайта. Для того чтоб увидеть в чем проблема нам и нужно включить отображение ошибок.
Отображение ошибок PrestaShop
Рассмотрим включение ошибок на всех версиях PrestaShop

Для PrestaShop 1.4 и 1.3

Открываем файл:

config/config.inc.php

Ищем:

@ini_set('display_errors', 'off'); 
define('_PS_DEBUG_SQL_', false);

Заменяем на:

@ini_set('display_errors', 'on'); 
define('_PS_DEBUG_SQL_', true);

Вторая строчка поможет нам увидеть ошибки SQL-запросов.

Для PrestaShop 1.5

Открываем файл:

config/defines.inc.php

Ищем:

define('_PS_MODE_DEV_', false);

Заменяем на:

define('_PS_MODE_DEV_', true);

Для PrestaShop 1.6 & 1.7

Открываем файл:

config/defines.inc.php

Ищем:

if (!defined('_PS_MODE_DEV_')) {
define('_PS_MODE_DEV_', false);
}

Заменяем на:

if (!defined('_PS_MODE_DEV_')) {
define('_PS_MODE_DEV_', true);
}

Вот и все. Всем спасибо за внимание.

Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.

Для показа ошибок в Prestashop существуют встроенные функции.

Для Prestashop 1.5
Можно включить режим отладки в админке сайта
Панель администратора > Расширенные параметры > Производительность
Кеш: Нет
Принудительная компиляция: Да
Режим debug: Да

Или изменить в файле /config/defines.inc.php

/* Debug only */
define('_PS_MODE_DEV_', false);
на

/* Debug only */
define('_PS_MODE_DEV_', true);

изменить

define('_PS_DEBUG_PROFILING_', false);на

define('_PS_DEBUG_PROFILING_', true);

Для Prestashop 1.4
В файле config/config.inc.php

@ini_set('display_errors', 'off');
define('_PS_DEBUG_SQL_', false);
заменить на

@ini_set('display_errors', 'on');
define('_PS_DEBUG_SQL_', 'true');

Перейти к содержимому

Иногда вам необходимо увидеть детальные сообщения об ошибках. Часто при редактировании файлов или настроек PrestaShop могут возникать различные проблемы и обычно вместо описания возникших ошибок вы видите просто белый экран и короткий текст «Error 500».
Конечно же, это никак не помогает решить проблемы.
Поэтому вот краткая инструкция для включения отображения ошибок в PrestaShop.

PrestaShop 1.7 — 8+

В PrestaShop 1.7 и последующих версиях активация режима отладки довольно проста, без необходимости ручного редактирования кода:

Войдите в ваш бэк-офис PrestaShop.

  1. Перейдите в раздел «Расширенные параметры >> Производительность».
  2. В настройках производительности найдите блок «Режим отладки«.
  3. Переключите выбор «Режим отладки» на «Да», чтобы включить его.
  4. Нажмите кнопку «Сохранить«, чтобы применить изменения.

Если ошибка не позволяет получить доступ к бэк-офису, или в любом другом случае вы можете воспользоваться альтернативным способом:

PrestaShop 1.5.3 — 1.6.1, или альтернативный метод для PS 1.7 — 8+

Откройте этот файл:
/config/defines.inc.php
(это можно сделать с помощью FTP)
Найдите следующий код:

1

define(‘_PS_MODE_DEV_’, false);

Измените его на:

1

define(‘_PS_MODE_DEV_’, true);

PrestaShop 1.4 — 1.5.3

Откройте этот файл:
/config/config.inc.php
Найдите следующий код:

1

@ini_set(‘display_errors’, ‘off’);

Измените его на:

Готово!

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

Появление белого экрана при попытке зайти в магазин PrestaShop означает наличие ошибок сервера.

Отображение ошибок

1. Прежде всего, нужно включить встроенный в PrestaShop Режим отладки (Debug Mode). Откройте файл configdefines.inc.php и найдите следующую строку:

define('_PS_MODE_DEV_', false);

измените ее следующим образом

define('_PS_MODE_DEV_', true);

Логирование ошибок

2. Чтобы записать ошибки без отображения их на сайте, нужно открыть файл index.php из корневой папки PrestaShop и добавить сверху следующий код:

<?php error_reporting(0); 
$old_error_handler = set_error_handler("userErrorHandler");

function userErrorHandler ($errno, $errmsg, $filename, $linenum,  $vars) 
{
$time=date("d M Y H:i:s"); 
// Get the error type from the error number 
$errortype = array (1    => "Error",
2    => "Warning",
4    => "Parsing Error",
8    => "Notice",
16   => "Core Error",
32   => "Core Warning",
64   => "Compile Error",
128  => "Compile Warning",
256  => "User Error",
512  => "User Warning",
1024 => "User Notice");
$errlevel=$errortype[$errno];

//Write error to log file (CSV format) 
$errfile=fopen("errors.csv","a"); 
fputs($errfile,""$time","$filename: 
$linenum","($errlevel) $errmsg"rn"); 
fclose($errfile);

if($errno!=2 && $errno!=8) {
//Terminate script if fatal error
die("A fatal error has occurred. Script execution has been aborted");
} 
}
?>

Сохраните изменения и зайдите на свой сайт или в админ панель Prestashop.

После этого на сервере появится файл errors.csv . В нем будет вестись запись возникающих ошибок.

PrestaLab - модули и шаблоны для интернет магазина PrestaShop

Включение отладочного режима

Включение отладочного режима

По умолчанию в PrestaShop отображение ошибок отключено, поэтому при возникновении ошибок, скорее всего вы увидите просто чистую страницу. Поэтому первым этапом поиска ошибок является включение их отображения.

Отображение ошибок

Для PrestaShop 1.4 и 1.3

Для отображения ошибок в файле configconfig.inc.php заменяем

@ini_set('display_errors', 'off'); 
define('_PS_DEBUG_SQL_', false);

на

@ini_set('display_errors', 'on'); 
define('_PS_DEBUG_SQL_', true);

Вторая строчка позволяет дополнительно отображать ошибки, возникающие при выполнение SQL запросов.

Для PrestaShop 1.5

В файле configdefines.inc.php заменяем

define('_PS_MODE_DEV_', false);

на

define('_PS_MODE_DEV_', true);

Логирование ошибок

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

Для этого в .htaccess добавляем следующие строчки:

php_flag display_startup_errors on
php_flag display_errors on
php_flag html_errors on
php_flag log_errors on
php_flag ignore_repeated_errors off
php_flag ignore_repeated_source off
php_flag report_memleaks on
php_flag track_errors on
php_value docref_root 0
php_value docref_ext 0
php_value error_log /home/path/public_html/domain/PHP_errors.log
php_value error_reporting -1
php_value log_errors_max_len 0

Где /home/path/public_html/domain/ путь к директории с вашим сайтом. Предварительно нужно создать PHP_errors.log и выставить для него права на запись.

Настройка Smarty

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

Для отладки шаблонов Smarty нужно в configsmarty.config.inc.php раскомментировать (удалить / /) строку:

$smarty->debugging		= true;

Также может вызывать недоумение ситуация, когда изменения в шаблоне не приводят к ожидаемому результату. Это происходит по причине того, что шаблоны компилируются в php код, и затем кэшируются. Чтобы этого не происходило нужно в configsmarty.config.inc.php заменить:

$smarty->force_compile	= false;

на

$smarty->force_compile	= true;

Понравилась статья? Поделить с друзьями:
  • Pro cl 200 ошибка c2 255
  • Pro cl 200 ошибка c2 233
  • Prnds ауди ошибка на панели приборов
  • Prnd расшифровка ошибка
  • Private keeper ошибки соединения