Opencart отключить вывод ошибок

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

Как же отключить ошибки в OpenCart?

Прежде всего, вам необходимо знать, что  в OpenCart не работает отключение вывода ошибок через .htaccess

Для отключения вывода ошибок вы должны войти в админку Система > Настройки > Сервер

и отключить показ ошибок:

switch-off-errors-in-opencart

Если у вас не Opencart, а другая CMS, то вы можете использовать следующие правила в .htaccess:

# прячем публичный показ ошибок на сайте

php_flag display_startup_errors off
php_flag display_errors off
php_flag html_errors off

# включаем запись ошибок в произвольный файл (не забудьте выставить права 755 или 777 на файл лога)

php_flag  log_errors on
php_value error_log  /home/path/public_html/domain/PHP_errors.log

Не забудьте поменять на актуальный для вашего сайта путь на сервере.

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

Либо обратиться непосредственно в службу технической поддержки вашего хостера.

Если вы умеете обращаться с UNIX консолью и у вас есть доступ по протоколу SSH, то вы просто можете набрать команду pwd и узнать эту информацию.

После этого вам нужно создать файл PHP_errors.log (на самом деле, вы можете присвоить любое имя этому логу) и выставить на него права на запись – 0777.

# закрываем просмотр лога извне, т.е. по прямому URL
<Files PHP_errors.log>
Order allow,deny
Deny from all
Satisfy All
</Files>

[Solved] Error reporting is on. How do I get it off?


Version 3.0.3.6
Theme: Default

I see an error in my shop and it is displayed on the top of the visitors screen:

Code: Select all

Notice: Trying to access array offset on value of type bool in /home/shop/domains/public_html/catalog/controller/startup/startup.php on line 166

These errors are also nicely logged at the backend.

In php.ini (in the root) I see this:

Code: Select all

;display_errors = 1
;error_reporting = E_ALL

So these lines are commented out, I would say.

But why are the Errors and Warnings shown then? How do I turn that off?

Regards,

Barend

Last edited by Barend on Sat Jan 23, 2021 11:48 pm, edited 2 times in total.

Re: Error reporting is on. How do I get it off?


Post

by mikeinterserv » Sat Jan 23, 2021 5:44 am

Do you have display errors checked in the shop settings > SERVER TAB
At the bottom

Re: Error reporting is on. How do I get it off?


Post

by sw!tch » Sat Jan 23, 2021 6:39 am


Full Stack Web Developer :: Send a PM for Custom Work.
Backup and learn how to recover before you make any changes!

Re: Error reporting is on. How do I get it off?


Post

by straightlight » Sat Jan 23, 2021 11:30 am

It’s also fixed on the master branch.


Dedication and passion goes to those who are able to push and merge a project.

Regards,
Straightlight
Programmer / Opencart Tester




Joined

Mon Nov 14, 2011 11:38 pm

Location —
Canada, ON

Re: Error reporting is on. How do I get it off?


Post

by Barend » Sat Jan 23, 2021 3:43 pm

mikeinterserv wrote: ↑

Sat Jan 23, 2021 5:44 am


Do you have display errors checked in the shop settings > SERVER TAB
At the bottom

Solutions are sometimes so simple. Thank you!

Re: Error reporting is on. How do I get it off?


Post

by Barend » Sat Jan 23, 2021 3:54 pm

Since it was ‘only’ a notice the solving of the issue would have been my next priority :-)
Thanks to you I have already done that now too.

Who is online

Users browsing this forum: Bing [Bot], pprmkr and 23 guests

Юрий Янин

@VPank

Бессмертие ради знаний. Знания ради бессмертия.

Стоит opencart oс 2.2. Поставил модули pickpoint и сдэк. С горем пополам запустил их обоих. Работают на ура. Но выводят ошибки в шапку корзины. Также стоит симпла. В админке и симпле выключил вывод ошибок. Но opencart игнорирует эти инструкции и дальше выводит жалобы на currency.php Могу я что-то где-то прописать в файлах или удалить, чтобы просто не выводились ошибки?


  • Вопрос задан

  • 326 просмотров


Комментировать

Пригласить эксперта


Ответы на вопрос 1

Kalombyr

Вы хотя бы написали, что за ошибки.
Ну и не лучше всё таки эти ошибки исправить / нанять специалиста, который этим займётся? Ведь сообщения не просто так появляются. Совсем уж не отключайте — записывайте в лог хотя бы…


Похожие вопросы


  • Показать ещё
    Загружается…

21 сент. 2023, в 16:10

4500 руб./за проект

21 сент. 2023, в 16:00

100000 руб./за проект

21 сент. 2023, в 15:53

10000 руб./за проект

Минуточку внимания

Вступление

К сожалению ошибки на 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 после включения чпу ошибка 404
  • Opel zafira как посмотреть ошибки
  • Openbox ошибка программирования
  • Openbox ошибка открытия файла
  • Opel zafira b ошибка 36504