Очень часто при возникновении проблем в Opencart пользователи сталкиваются с ошибкой 500, Internal Service Error или просто «белым экраном» (пустой экран браузера), что затрудняет определение причины проблемы. Для того чтобы получить более подробную информацию о возникших ошибках, необходимо включить их отображение. Существует несколько способов активации вывода ошибок в Opencart:
php_flag display_startup_errors on
php_flag display_errors on
php_flag html_errors on
php_flag output_buffering off
2) Файл php.ini (в конце):
display_errors = On;
error_reporting = ~E_ALL;
3) Файл index.php (после <?php ):
ini_set(‘error_reporting’, E_ALL);
ini_set(‘display_errors’, 1);
ini_set(‘display_startup_errors’, 1);
После завершения процесса отладки и устранения проблемы, не забудьте закомментировать или удалить добавленные строки. Это важно для предотвращения возможных уязвимостей и улучшения безопасности вашего магазина Opencart.
Если после установки или удаления какого либо модуля в Opencart 3 вы видите белый (пустой) экран или надпись 500 Internal Service Error, то это означает что возникла какая-то системная ошибка php. И чтобы понять по какой причине это произошло, вам необходимо включить отображение и получить текст ошибки.
Сделать это можно несколькими способами:
1) Откройте в редакторе файл .htaccess и добавьте в конце строки:
php_flag display_startup_errors on
php_flag display_errors on
php_flag html_errors on
2) Откройте в редакторе файл php.ini и добавьте в конце строки:
display_errors = On;
error_reporting = ~E_ALL;
3) Откройте в редакторе файл index.php и после (
ini_set('error_reporting', E_ALL);
ini_set('display_errors', 1);
ini_set('display_startup_errors', 1);
После того как вы устраните причину ошибки не забудьте удалить добавленные строки.
Если ничего из выше перечисленного не помогло, то скорее всего приоритет настроек для отображения ошибок находится на стороне вашего сервера, обратитесь в техподдержку вашего хостинга с просьбой включить отображения ошибок php.
Включение вывода всех ошибок и предупреждений в файле .htaccess
php_value display_errors 1 php_value display_startup_errors 1 php_value error_reporting E_ALL
Включение вывода всех ошибок и предупреждений в файле php.ini
error_reporting = E_ALL display_errors = On display_startup_errors = On
Включить вывод уведомлений и предупреждений можно, добавив в начало нужного .php файла следующие строки:
ini_set('error_reporting', E_ALL); ini_set('display_errors', 1); ini_set('display_startup_errors', 1);
Исключая тип Notice
error_reporting(E_ALL & ~E_NOTICE)
Вывод с логированием через конфигурацию веб-сервера
Чтобы настроить вывод с логированием через конфигурацию веб-сервера, введите:
- для Apache — ErrorLog «/var/log/apache2/my-website-error.log»
- для Nginx — error_log /var/log/nginx/my-website-error.log
Вступление
К сожалению ошибки на Opencart бывают их причина не обязательно связана с неумелым администрированием. Вы вполне можете получить ошибку 500, Internal Service Error при удалении модуля или шаблона. Более часто, вы даже не увидите сообщение об ошибке, а получите «белый экран смерти», чистую страницу браузера.
Дело в том, что по умолчанию вывод ошибок системы по умолчанию отключен. Делается это из-за соображений безопасности и в рабочем состоянии вывод ошибок должен быть отключен всегда.
Включить отображение ошибок php в Opencart нужно только для отладки и исправления ошибки. После исправления показ ошибок нужно убрать.
Включить отображение ошибок php в Opencart можно несколькими способами.
Способ 1
Веб сервер Apache.
Чтобы включить показ ошибок, добавьте в конец файла .htaccess
корня такие строки:
php_flag display_startup_errors on php_flag display_errors on php_flag html_errors on
Напомню файл .htaccess
переименовывается из коробочного файла htaccess.txt
и служит для управления веб-сервером Apache.
Способ 2
(PHP 4, 5, 7)
Файл php.ini
самого магазина работает, если ваш сервер разрешает пользовательские настройки над системными. Случается это не часто, но всё же.
Чтобы включить отображение ошибок php на Opencart найдите в файле php.ini
строку и поменяете off на on/
display_errors = On;
Также допишите в конец файла:
error_reporting = ~E_ALL;
Команда error_reporting
— задает тип ошибок отчета, значение E_ALL
означает, что попадут в отчет все ошибки.
Важно, что display_errors
не показывает ошибки старта PHP. Для их включения нужна директива:
display_startup_errors=On.
После исправления ошибок поменяйте On на Off и закомментируйте новые строки.
Способ 3
(PHP 4, 5, 7)
Есть вариант показать ошибки, подправив файл index.php
корня. Вставьте функции включения информации (после <?php
):
ini_set('error_reporting', E_ALL); ini_set('display_errors', 1); ini_set('display_startup_errors', 1);
После исправления ошибки обязательно удалите эти строчки.
Предостережения
Отладка и исправления ошибок «по живому» дело хорошее, но напомню, что не все ошибки можно быстро исправить и на такой случай вам всегда нужно иметь резервную копию магазина для восстановления.
Во-вторых, перед правкой перечисленных в статье файлов делайте, как минимум их копию для резерва.
Вывод
Я показал, как включить отображение ошибок php в Opencart. Какой способ сработает на практике, зависит от настроек и конфигурации вашего сервера. Не забываем, что на сервере ведется журнал log ошибок. Правда, их тоже нужно включить в директиве: log_errors=Off
.
Документация
- php.net/manual/ru/ini.list.php
- php.net/manual/ru/function.ini-set.php
- php.net/manual/ru/function.error-reporting.php
©opencart.life
Updated on Sep 8, 2016
If you experience any technical difficulties with your OpenCart 2 store it might be a good idea to enable the OpenCart 2 error reporting. These options will help you debug the issue by providing you with additional information on what exactly went wrong with your script.
OpenCart 2 supports two different options for error reporting. On the one hand, you may enable the general error reporting which will display the errors directly into your browser or you can activate the error logging which will write all errors into a file located in your OpenCart installation directory.
The inconvenience of the first method is that all of your visitors will be able to see the errors displayed on your website but see the errors directly via your browser may help you narrow down the problem.
To activate the error reporting, please login your OpenCart 2 Admin dashboard and navigate to the Settings menu.
From the Store list click on the edit icon next to your store name and proceed to the Server settings tab.
Scroll to the bottom of the page and locate the Error reporting options.
If you enable the Display Error option, your site errors will be directly visible on your website. In case you would like to have all errors logged, enable the Log Errors option and make sure you have a valid error log name.
If you enable the Log Errors option you will be able to read your error log either by directly downloading it from your OpenCart 2 root directory or via the Admin Dashboard. To access the Error log via the admin area of your OpenCart, please refer to the Error Logs section via the main navigation menu.
Be advised that your OpenCart error log might get quite large in case your OpenCart 2 generates a lot of warnings or errors.
In case you have the Log Errors option enable you should regularly check the error log and clear it via the Clear Log option.