Очень часто при возникновении проблем в 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.
Включение вывода всех ошибок и предупреждений в файле .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 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.
Вступление
К сожалению ошибки на 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
Вступление
К сожалению ошибки на 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
Если после установки или удаления какого либо модуля в 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.
-
#1
Зачастую пользователи пишут что ошибка связана с белым экраном, error 500, Internal Service Error.
Для того что бы сделать хоть какой-то вывод о причинах ошибки и написать в тему, нужно включить отображение ошибок.
Что бы их можно было увидеть необходимо:
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 (после <?php ):
ini_set('error_reporting', E_ALL);
ini_set('display_errors', 1);
ini_set('display_startup_errors', 1);
После отладки не забудьте закомментировать или удалить добавленные строки.
По личному опыту мне хватает варианта #3 — его и не приходиться комментировать
После этих действий вы сможете увидеть ошибки своего кода и уже написать в тему ошибок ….
PHP Error — How to display them?
Hi there,
I am trying to upgrade my site to 1.5.x but in some case the site is not displaying the PHP errors and not logging in the error.txt also. This drives me nuts.
Here is the case:
Code: Select all
$this->load->model('catalog/product'); <!----Comment out this line
......
$results = $this->model_catalog_product->getProducts($data);
If I commented out the first line to simulate the error trying to access the model without loading it first, you should get an error saying » trying to access on a non-object. etc…». Instead, I am seeing the blank page.
I checked the server settings in the admin and it is set to display errors. ( I see other errors not related to this in error.txt so error logging is working). Only this kind of scenario, I am getting the blank page.
Any help is appreciated.
Re: PHP Error — How to display them?
Post
by cartpro » Wed Aug 10, 2011 8:19 am
Is there anyway force the configuration to show them? I use Godaddy Shared as well as Virtual Dedicated Server.
Re: PHP Error — How to display them?
Post
by cartpro » Mon Sep 05, 2011 11:56 pm
1.4.9.x displays the Parser and Fatal errors. Only 1.5.x is not. So, some changes in 1.5.x is preventing those error from displaying.
Re: PHP Error — How to display them?
Post
by uksitebuilder » Tue Sep 20, 2011 11:19 pm
Compression turned on in admin ? Tis may stop errors from displaying
Joined
Thu Jun 09, 2011 11:37 pm
United Kindgom
Re: PHP Error — How to display them?
Post
by cartpro » Tue Sep 20, 2011 11:25 pm
Output Compression Level is set to 0. Still my question is what changed between 1.4.x and 1.5.x which could cause these error not to display. I see them in 1.4.x.
Who is online
Users browsing this forum: Bing [Bot] and 26 guests
Asked
5 years, 9 months ago
Viewed
7k times
In PrestaShop I can display the errors with the function Tools::displayError() like this:
if (empty($email)) {
$this->errors[] = Tools::displayError('Email is empty.');
$this->doLog('ERROR: Email/username is empty');
} elseif (!Validate::isEmail($email)) {
$this->errors[] = Tools::displayError('Invalid email address.');
$this->doLog('ERROR: Invalid Email address');
}
Is there a similar way to do this in OpenCart? Is there a function i can use?
Thanks
asked Apr 11, 2017 at 8:35
1
To Turn on error reporting, please follow :
-
Go To Admin Panel
-
Go to System > Settings
-
Select your store from the list and click Edit
-
Go to the Server tab
-
To display errors, change Display Errors to Yes, If you want to log errors to a file, select Yes for Log Errors
-
Enter in an Error Log Filename
-
Click Save
Print Custom error message inside error.log
$logger = new Log('error.log'); //just pass the file name as error.log
$logger->write('Custom Error Message');
You will see the error file inside system-> storage-> logs-> error.log
answered Apr 11, 2017 at 10:59
Sanchit GuptaSanchit Gupta
3,0402 gold badges31 silver badges36 bronze badges
9
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.