Разберёмся как сделать включение / отключение показа ошибок на сайте. Через админку и через файл htaccess.
Показ ошибок (Notice, Warning, Fatal Error) это важная и нужная функция, хорошо что она есть! Иначе бы вебмастера месяцами искали вручную ошибки в коде своего сайта.
Как включить показ ошибок из админки Joomla 3?
Для этого в админке Joomla переходим «Система — Общие настройки».
Переходим на вкладку «Сервер», там увидите опцию «Сообщения об ошибках». Выбирайте режим «Максимум».
Сохраняем.
После этого на страницах сайта будут появляться сообщения об ошибках, если таковые имеются. Это полезно, если где-то на сайте у вас появляется белый экран.
После включения показа сообщений об ошибках на белом экране вы увидите тип ошибки и её описание.
По этому описанию можно найти решение в поиске Яндекса или Гугла.
Включение показа ошибок php через configuration.php
Если нет доступа к админке, или она не работает, то показ ошибок можно включить через файл configuration.php, который находиться в корневой папке вашего сайта.
В нём есть директива
public $error_reporting = 'default';
Чтобы включить показ ошибок, измените значение default на maximum
Как включить показ ошибок через .htaccess
Если у вас не Joomla, а свой скрипт или по каким то причинам не получается включить сообщения об ошибках первыми двумя способами, то это можно сделать через файл .htaccess, который также находится в корневой папке вашего сайта.
Открываем .htaccess — обратите внимание точка впереди. Если у вас нет такого файла, то создайте его.
В CMS системах он обычно называется htaccess.txt и его достаточно просто переименовать в .htaccess
В самом верху добавляем строчку:
php_flag display_errors on
А строчка:
php_flag display_errors off
выключает показ ошибок.
Какие сообщения об ошибках php бывают?
Самые частые это:
Notice — уведомление о незначительных ошибках в коде. Обычно работоспособность сайта при этом сохраняется.
Просто в шапке выходят такие вот уведомления.
Warning — предупреждение о более серьёзных ошибках. Иногда при таком предупреждении работоспособность сайта также сохраняется, иногда белый экран.
Fatal Error — предупреждение о критических ошибках, при которых выполнение сценариев невозможно. Сопровождается белым экраном.
Отключайте показ ошибок!
После включения и наладки сайта обязательно отключайте показ ошибок. Потому что это НЕ безопасно, да и посетителям сайта их видеть незачем.
Желаю вам всего хорошего!
Из этого туториала Вы узнаете, как включить сообщения об ошибках в Joomla 3.x.
Joomla 3.x. Как включить сообщения об ошибках
Поле «Сообщения об ошибках» (Error Reporting) в Общих настройках Joomla отвечает за отображение ошибок на вашем сайте Joomla.
В сайтах Joomla на стадии эксплуатации, сообщения об ошибках должны стоять на «Нет» (None). Это значит, что ошибки не будут отображаться на вашем сайте, несмотря на настройки по умолчанию для вашей учётной записи хостинга.
После установки Joomla, «Сообщения об ошибках» стоят на «По умолчанию для системы» (System Default), это значит, что настройки сообщений об ошибках в файле php.ini будут распространяться на сайт Joomla.
Вам следует менять настройки параметра «Сообщения об ошибках» с «Нет» (None) на что-либо другое, только если Вы видите белый экран и/или Вы ищите другие неполадки на вашем сайте.
С практической точки зрения более удобно изменять настройки сообщений об ошибках в файле Joomla configuration.php напрямую.
-
Сначала откройте Файловый менеджер (file manager) в вашей панели управления хостингом и найдите файл configuration.php в корневой папке public html :
-
В файле configuration.php найдите строку: public $error_reporting = ‘default’:
-
Вместо ‘default’ Вы можете ввести любое цифровое значение констант ошибок PHP. Например:
‘E_ALL | E_STRICT’ — Все ошибки, предупреждения, уведомления, а также строгие стандарты будут отображены на сайте;
‘E_ALL’ — Все ошибки, предупреждения и уведомления будут отображены на сайте;
‘E_ALL & ~E_NOTICE’ — Все ошибки и предупреждения будут отображены на сайте. Уведомления отображаться не будут;
‘E_ALL & ~(E_NOTICE|E_WARNING)’ — Все ошибки отображаются. Предупреждения отображаться не будут;
‘0’ — Сообщения об ошибках отключены:
Управления сообщениями об ошибках даст администратору сайта более полный контроль над уровнем отображения ошибок на сайте.
Вы можете также ознакомиться с детальным видео-туториалом ниже:
Joomla 3.x. Как включить сообщения об ошибках
Errors, warnings, alerts and notices can be displayed from any component, module, plugin or template using the methods outlined below.
// Get a handle to the Joomla! application object $application = JFactory::getApplication(); // Add a message to the message queue $application->enqueueMessage(JText::_('SOME_ERROR_OCCURRED'), 'error'); /** Alternatively you may use chaining */ JFactory::getApplication()->enqueueMessage(JText::_('SOME_ERROR_OCCURRED'), 'error');
The second argument to the enqueueMessage function is the type of the message. The default is message, but error results in a different style for the message. The message will be displayed in place of a special jdoc:include statement in your template. Place the following in your template at the location where you want messages to appear.
<jdoc:include type="message" />
Message[edit]
Message
JFactory::getApplication()->enqueueMessage('Message');
Notice[edit]
Notice
JError::raiseNotice( 100, 'Notice' );
Warning[edit]
Warning
JError::raiseWarning( 100, 'Warning' );
Error[edit]
Error
JError::raiseError( 4711, 'A severe error occurred' );
Joomla! 3.x is Bootstrapped[edit]
Since Joomla! uses Bootstrapped templates, the messages will use the standard Bootstrap CSS styles for Alerts.
See: https://getbootstrap.com/2.3.2/components.html#alerts
The general syntax remains:
JFactory::getApplication()->enqueueMessage('Your Message', 'type');
Where type can be one of
- ‘message’ (or empty) — green
- ‘notice’ — blue
- ‘warning’ — yellow
- ‘error’ — red
See Also[edit]
- JError on api.joomla.org
- JApplication on api.joomla.org
рейтинг: 8.6/10, голосов: 27
При установке или настройки расширений, редактировании шаблона и многих других действиях на сайте при переходе по ссылке можно увидеть «белый экран». Браузер показывает белую страницу и ничего более.
Белый экран в большинстве случаев означает ошибку в php-коде одного из файлов. Вы могли где-то не закрыть скобку, не поставить точку с запятой, ошибиться буквой в операторе. «Белый экран» служит для лучшей защищенности сайта.
Если хакер попытается взломать сайт и увидит информацию об ошибке, это позволит ему быстрее достигнуть своей цели. По этой причине для работающего сайта в случае возникновения ошибки нормой считается показывать пустой экран. Но во время разработки такие ошибки нужно видеть.
Как включить отображение ошибок?
php.ini
Если вы работаете на локальном сервере, то отображение можно включить/выключить в файле php.ini. Находим в нем параметр «display_errors» и изменяем с «off» на «on».
.htaccess
Если же сайт находится на хостинге и доступа к php.ini нет, то в файл «.htaccess» (точка в начале обязательна), который находится в корне Joomla, добавляем строчку:
php_value display_errors 1
Возможно этого файла у вас нет, но в корне должен лежать дефолтный htaccess.txt. Просто переименуйте его, в противном случае создайте.
configuration.php
Joomla имеет собственный обработчик ошибок. Он настраивается из основного конфигурационного файла «configuration.php», который можно редактировать вручную, либо через панель управления.
В панели (Общие настройки / Сервер / Сообщения об ошибках) все просто — ставим максимум. Если правим вручную, то открываем его (лежит в корне сайта), находим параметр и зменяем его как показано ниже
var $error_reporting = E_ALL;
Средствами PHP
Этот способ поможет, если ничего выше не помогло. Перед проблемным местом укажите явный уровень вывода ошибок с помощью PHP.
Это явно заставит PHP отображать ошибки далее по коду.
Я увидел ошибку, что делать дальше?
Если вы знаете PHP, то решаем проблему. Если нет, то ищем того кто знает PHP.
Важно помнить и знать!
Отлаживаться и включить ошибки нужно только на тестовом сайте или локальной копии. Не нужно вашим посетителям видеть ваши ошибки.
С точки зрения безопасности всегда отключайте вывод ошибок на реальном сайте!
Вступление
Найти ошибку, которая привела к некорректной или фатальной ошибки Joomla одна из самых трудных задач при работе с системой. Пожалуй, невозможно перечислить все вероятные ошибки, которые вы можете теоретически встретить при общении с Joomla. Более правильным будет указать пути, по которым нужно двигаться в поиске ошибок и их отладки.
Основные языки программирования, на которых написана CMS Joomla это два сценарных языка PHP и JavaScript. При этом сценарный язык (анг.scripting language) PHP является основным языком Joomla и, как правило, ошибки, возникающие при работе с Joomla это результат его неправильной (некорректной) работы.
В этой статье я сформулирую первые действия, что сделать сначала, чтобы осуществить правильный поиск ошибок и после найти отладку (способ исправления) «неправильного» скрипта вашей Joomla.
Прежде всего, ошибку нужно увидеть. Речь идет не о результатах ошибки (пропадании сайта и т.п.). Речь идет, как увидеть причину ошибки, если хотите определить диагноз ошибки. От этого зависит дальнейшая отладка системы и исправление ошибки.
Видимость ошибок в браузере
Первое место, где вы видите сообщение о возникшей серьезной ошибке, это ваш рабочий браузер. Вы наверняка встречали при открытии сайтов, вместо страниц сайта пустое окно браузера и в нем цифровая (кодовая) ошибка. И речь не идет об ошибках класса 4×× (Ошибки со стороны клиента), например, ошибка 403-Ничего не найдено. Речь о более серьезных ошибок, начинающихся с цифры «5». Это класса ошибок 5×× (Ошибки со стороны сервера).
Ошибка 500
Ошибка 500 это любая ошибка со стороны сервера, которая не расшифрована в остальных кодах 501-510. Это наиболее часто встречающаяся ошибка, связанная с ошибками в коде системы. Если при работе с системой Joomla вы в браузере видите сообщение об ошибке 500 , эта ошибка выдается сервером Apache и ее причину нужно смотреть в логе ошибок вашего веб-сервера. (О логах ошибок веб-сервера читать ТУТ).
Как правило, из лога ошибок, будет понятно, какой файл системы привел к ошибке. После этого нужно переходить к этому конкретному файлу и решать конкретную, уже локализованную причину ошибки. Но это не всегда так просто. Из журнала лога ошибок, бывает не понятно, какие конкретные действия приводят к ошибке и какой PHP -код ее сформировал.
Вообще говоря, интерпретатор PHP всегда определяет возникающие ошибки. И показ ошибок Вам, изначально, зависит от настроек конкретного сервера. Сервер должен быть настроен так, чтобы интерпретатор PHP имел возможность сообщить об ошибке, а вы могли увидеть это сообщение. Причем интерпретатору должен быть указан вид вывода сообщения об ошибке. Это или окно браузера или запись в журнале ошибок или и то и другое по выбору.
Настройка вывода ошибок зависит от вашего хостинга.
Вывод ошибок на рабочем сервере
На рабочем сервере (коммерческом хостинге) включение вывода ошибок ищите в настройках хостинга. Как правило, вывод ошибок по-умолчанию включен, и вывод ошибок настроен как вывод сообщений в журнал ошибок. Убедитесь, что эта функция сервера включена. Опять-таки, по — умолчанию, не имеет смысла включать на рабочем сервере вывод ошибок на экран. Эти ошибки будут видеть все гости сайта и это лишнее. Однако в критических, аварийных ситуациях, можно воспользоваться временно, выводом ошибок на экран. Об этом чуть ниже.
Вывод ошибок на локальном сервере
На локальном (домашнем) сервере, у вас есть все права на любые настройки сервера и вывод ошибок вы можете настроить сами. Наверное, все готовые платформы локального сервера (OpenServers, Денвер, Xmapp и т.д.) уже настроены на вывод ошибок в журнал и/или на экран. Но в том, то и прелесть локального сервера, вы всегда можете изменить любые его настройки.
Настроить вывод ошибок на локальном сервере нужно в файле php.ini.
Для разрешения вывода ошибок в файле php.ini должна быть строка:
error_reporting(E_ALL ^ E_NOTICE);// Добавлять сообщения обо всех ошибках, кроме ошибок NOTICE
// Это значение включено по умолчанию в php.ini
Примечание: NOTICE ошибки это возможные, но не явные ошибки. Например, опечатка, предупреждение о плохом стиле, и.т.п.
error_reporting = E_ALL //Вывод всех ошибок//
Для вывода ошибок в журнал, должна быть строка:
log_errors = On
Для вывода ошибок на экран в файле php.ini должна быть строка:
display_errors = On
Вывод ошибок на экран, во время старта PHP
display_startup_errors=On
Понятно, что замена «on» на «off» все это отключит.
Повторюсь, интерпретатор PHP сам выводит сообщения об ошибках, нужно только разрешить и дать ему возможность (настроить) эти сообщения выводить в журнал на сервере, а при необходимости показывать их на экране.
Но вернемся к рабочим серверам и CMS Joomla. В Joomla есть функция в административной панели сайта, включив которую вы можете выводить ошибки системы на экран.
В CMS Joomla предусмотрено включение режима отладки системы, при которой все, подчеркну ВСЕ, ошибки будут выводиться на экран вместе их возникновения и в режиме реального времени.
Вывод ошибок, режим отладка Joomla 2,5
Административная панель сайта ->Меню ->Сайт->Общие настройки->Система
Вывод ошибок, режим отладка Joomla 3,x
Административная панель сайта-> Меню ->Сайт->Общие настройки->Система
В обоих версиях можно настроить, какой режим вывода ошибок во время отладки должен быть.
Включение режима отладки системы Joomla из панели сайта, может не сработать. Это может произойти, если на вашем хостинге такой режим не включен (в файле php.ini). Если у вас нет доступа к файлу php.ini, а потребность включить режим отладки есть, то просто напишите в support вашего хостинга и попросите временно включить режим вывода ошибок. ( Я так и делаю). После устранения ошибки, верните все в исходное состояние, иначе гости вашего сайта будут видеть все ошибки на экране.
Но и из этой ситуации, есть выход. Есть плагин Joomla, который выводит ошибки системы во всплывающем окне и с видимостью только для вас. Это плагин j!Dump.
Плагин j!Dump Joomla
Это плагин для отладки системы Joomla в реальном времени, с выводом ошибок на экран только для вас. Плагин работает на версиях Joomla 2.5 и 3.х. Устанавливается плагин стандартным способом. В настройках понятен и, по отзывам, вполне работоспособен. На сайте extensions.jоomla.com этот плагин есть.
Итоги статьи
- Итак, при работе с Joomla у вас «выскакивают» ошибки на стороне сервера приводящие к некорректной работе системы или ее отключении (Error). Что делать?
- Если вы не программист и не находитесь в процессе разработки и к этому у вас рабочий (не локальный сервер), то прямиком «идете» на сервер и смотрите журнал ошибок (лог ошибок);
- Если журнал ошибок отсутствует, то в настройках сервера ищите и включаете запись ошибок в журнал;
- Если из журнала не удалось понять причину ошибки, включаете режим «Отладка системы» в административной панели сайта;
- Если режим отладки не включается, обращаетесь в support сервера с просьбой такой режим временно включить. Включается он в файле php.ini;
- Если вы работаете на локальном (домашнем) сервере, то самостоятельно проверьте настройки возможности интерпретатора PHP для вывода, показа и записи PHP ошибок, возникающих при работе. Опять таки, файл php.ini.
Это все, что хотелось сказать про Поиск и вывод PHP ошибок Joomla!
©Joomla-abc.ru