Как включить отображение ошибок и предупреждений PHP?
Когда перед вами находится сайт, в котором нарушена целостность работы функционала, то необходимо понять, в чем же ошибка, и постараться максимально быстро ее решить.
Зачастую корень проблемы лежит в PHP-файлах, а именно – в логике их работы.
В PHP существует встроенный обработчик ошибок, который при возникновении таковых может указать вам истинную причину проблемы.
Все, что вам нужно сделать, – это просто включить их отображение, если по умолчанию этого не сделано.
Для включения отображения ошибок и предупреждений существует 3 различных варианта. Смотрите все и выбирайте более удобный для вас.
Включение отображения ошибок и предупреждений PHP через php.ini
Если у вас есть доступ к файлу php.ini (чаще всего он находится в корневой папке вашего сайта), то в самый верх вставьте:
error_reporting = E_ALL display_errors = On display_startup_errors = On
Если же доступа к этому файлу нет, то вам подойдут следующие 2 варианта.
Включение отображения ошибок и предупреждений PHP напрямую в скрипте
Этот вариант предполагает внедрение определенных параметров непосредственно в сам PHP-скрипт. Для этого в нужном файле PHP, сразу после открывающего тега вставьте:
ini_set("error_reporting", E_ALL); ini_set("display_errors", 1); ini_set("display_startup_errors", 1);
Хороший способ, когда вы «отлавливаете» ошибки в конкретном файле.
Включение отображения ошибок и предупреждений PHP через .htaccess
Если вам необходимо отобразить ошибки на всем сайте, то в корневой папке сайта найдите файл «.htaccess» (если таковой отсутствует – создайте его) и в самый верх этого файла вставьте:
php_value error_reporting E_ALL php_value display_errors 1 php_value display_startup_errors 1
С помощью таких несложных способов вы можете включить отображение ошибок и предупреждений PHP на вашем сайте или отдельном PHP-скрипте.
Как изменить режим вывода сообщений об ошибках в PHP или отключить их отображение?
Для этого перейдите в раздел «Управление сайтом», «Настройка PHP».
Далее совершите следующие действия:
1. Выберите из выпадающего списка сайт или поддомен, для которого Вы хотите применить настройки.
2. Найдите раздел «Управление ошибками PHP»

3. При помощи мышки отметьте в поле «error_reporting» типы отображения ошибок, если Вы хотите отключить вывод ошибок уставноите display_errors OFF
4. Нажмите «».
Примечание: «log_errors» — логирование ошибок в лог-файл, «display_errors» — отображение ошибок на экране.
- Какие права должны стоять на папку и файл для записи?
- Управление настройками PHP и Apache.
- Где можно почитать про опции в apache и php?
- Как быстро применяются внесенные мной настройки?
- Как можно отключить SAFE MODE для хостинга и чем это опасно?
- Как изменить режим вывода сообщений об ошибках в PHP или отключить их отображение?
- Что такое PHP и как его использовать?
- Где должны размещаться PHP файлы?
- Проблемы работы функций strtoupper() и strtolower() с кириллицей
- Расширения файлов для PHP-скриптов, как добавить свое расширение
- Где размещен PEAR на хостинге?
- Мои скрипты требуют более свежую версию PHP чем установлена HTTP сервере, как быть?
- Как выключить Magic Quotes GPC
- Включение GZIP сжатия для сайта
- Как включить mod_headers и mod_expires для сайта
Как включить отображение всех ошибок php при написании программы
Во время написания кода программы на языке программирования php хочется написать её не только быстро, но и правильно. Для этого можно поменять настройки отображения ошибок в конфигурационном файле php.ini . Но переключать каждый раз режим отображения ошибок и уровень их протоколирования накладно по времени, плюс нужно помнить, где на сервере лежит конфиг php. В этой статье рассмотрим простой и работающий способ переопределения констант, заданных в конфиге php.ini , в файле программы. Это позволит не только ускорить процесс написания кода, но и быстро отключать режим отладки, когда программа готова к запуску в продакшен.
Необходимый код для включения отображения всех ошибок и предупреждений php в работающей программе
Сначала приведу работающий код, который позволяет включить показ всех (кроме критических) ошибок и всех предупреждений, которые обычно отключены:
'); ini_set('error_append_string', ''); /* тут собственно сам код программы на php */ error_reporting($errlevel); ini_set('display_errors','Off'); ?>
Теперь можно разобрать построчно, какие функции php задействованы, как они работают и что в итоге получается.
error_reporting() — функция работы с уровнем протоколируемых ошибок
Функция error_reporting() задает значение директивы error_reporting во время выполнения скрипта. В PHP есть много уровней ошибок. Используя эту функцию, можно задать уровень ошибок во время выполнения скрипта, которые попадут в отчет (или будут из него исключены). Если необязательный аргумент в скобках не задан, error_reporting() вернет текущее значение уровня протоколирования ошибок. Именно эта особенность позволяет сперва сохранить текущее значение уровня протоколирования, что мы и делаем в первой строчке, запоминая текущий уровень в переменную $errlevel :
$errlevel = error_reporting();
Во второй строчке меняем уровень протоколирования (вывода) ошибок на значение -1 , воспользовавшись советом из официальной документации:
Если передать -1 , будут отображаться все возможные ошибки , даже если в новых версиях PHP добавятся уровни или константы. В версии PHP 5.4. передача константы E_ALL дает тот же результат.
Это выглядит следующим образом:
error_reporting(-1);
В конце работы скрипта, требующего отладки, можно вернуть уровень протоколирования, заданный в php.ini , который мы заблаговременно сохранили в переменную $errlevel . Именно это и происходит в предпоследней строке:
error_reporting($errlevel);
Переопределение переменных конфигурационного файла php.ini с помощью функции ini_set()
После того, как мы включили режим отображения всех ошибок и предупреждений, их нужно выдать на экран при работе отлаживаемого скрипта. Этот режим отладки обычно выключен, поэтому его нужно включить, переопределив некоторые переменные конфигурационного файла php.ini с помощью функции ini_set() , которая устанавливает значения переменных настройки конфигурации работы php.
Включение/отключение отображения ошибок при выполнении скрипта директивой display_errors
Для того, чтобы увидеть отображение ошибок и предупреждений при выполнении скрипта, нужно выставить значение ‘On’ или 1 директиве display_errors :
ini_set('display_errors', 'On');
После того участка программы, которая требует отладки, можно снова отключить отображение ошибок php. Именно это и происходит в последней строке приведённого выше кода (возврат значения ‘Off’ , которое используется в конфиге php по умолчанию):
ini_set('display_errors','Off');
Подсветка отображаемых ошибок и предупреждений, выдаваемых при включенном display_errors
В принципе, приведённого кода, описанного выше, достаточно. Но мне удобнее, когда ошибки выводятся другим цветом, чем основой вывод, генерируемый при работе отлаживаемого скрипта. Для этого необходимо экранировать выводимые ошибки и предупреждения HTML-кодом. Для этого я использовал простейшее изменение цвета выводимого шрифта с помощью тега font , что конечно можно усложнить, вписав тот код, который наиболее подходит решаемой задаче, задав какие угодно css-стили для подсветки ошибок и предупреджений. Можно даже задать отдельный класс и выводить его из отдельного css-файла. Но, я решил не усложнять.
Директива error_prepend_string
Директива error_prepend_string задаёт строку, которая будет выводиться непосредственно перед сообщением об ошибке. В нашем коде она имеет вид:
ini_set('error_prepend_string', '');
Директива error_append_string
Директива error_append_string задаёт строку, которая будет выводиться после сообщения об ошибке. В нашем коде она имеет вид:
ini_set('error_append_string', '');
Резюме
Таким образом можно значительно упростить и ускорить написание правильно работающего php-кода. Важно помнить, что после отладки, лучше удалить все эти строки, отвечающие за отображение ошибок и предупреждений, из кода. То, как будет работать программа в продакшене, зависит от настроек того сервера, где она будет запускаться. У него собственный файл конфигурации php.ini и, наверняка, администратор сервера не зря их выставил так, чтобы они работали или были отключены. Не надо злить других админов, перепрописывая в своём коде заданные не вами значения. Если при этом все ошибки и предупреждения были исправлены, то вероятность того, что она будет глючить, — минимальна.
Заберите ссылку на статью к себе, чтобы потом легко её найти!
Раз уж досюда дочитали, то может может есть желание рассказать об этом месте своим друзьям, знакомым и просто мимо проходящим?
Не надо себя сдерживать! 😉
Как включить вывод ошибок PHP
Для начала выясним зачем это нужно – выводить ошибки PHP ? При разработке сайта или веб-приложения, могут возникать синтаксические ошибки или ошибки выполнения скрипта, которые затруднят процесс установки или отладки проекта. Поэтому существуют несколько уровней вывода ошибок PHP, благодаря чему можно быстро найти и исправить проблемы в коде.

Включение вывода ошибок PHP нужно использовать во время разработки сайтов или приложений. Вывод ошибок на работающем сайте может быть опасен, так как этой информацией могут воспользоваться кибепреступники для взлома сайта.
Для предотвращения подобной ситуации в PHP есть настройки, позволяющие устанавливать уровень вывода ошибок. Чаще всего используются три уровня:
- error_reporting — отвечает за то, какие ошибки PHP будут выведены,
- display_errors — отвечает за вывод ошибок в браузер ,
- log_errors — отвечает за логирование ошибок PHP.
Расскажем про три способа включения вывода ошибок PHP: через .htaccess, через файл php.ini и через логи PHP.
Как включить через .htaccess вывод ошибок php
- Откройте файл .htaccess в корневом каталоге вашего сайта. Если файла .htaccess не существует, то создайте его.
- Добавьте следующие строки кода в этот файл:
php_flag display_errors on
php_value error_reporting E_ALL
Эти строки команд PHP отвечают за вывод всех ошибок (error_reporting E_ALL) и показ их в браузере (display_errors on).
- Сохраните файл .htaccess.
- Перезагрузите веб-страницу, чтобы увидеть вывод ошибок PHP.
Важно помнить, что включение вывода ошибок PHP может влияние на скорость вашего сайта, а также на его безопасность. Поэтому, лучше всего отключать вывод ошибок на рабочем сайте и включать его только на стадии разработки и отладки.
Чтобы скрыть показ ошибок значение on в коде меняем на off:
php_flag display_errors off
Как включить отображение ошибок PHP через логи
PHP записывает ошибки и предупреждения в свои журналы (логи) приложений. Через логи PHP можно получать детальную информацию об ошибках и предупреждениях PHP, что помогает разработчикам быстро и легко управлять выводом ошибок и сообщений PHP и просматривать их в запущенных процессах, файловой системе или инструментах мониторинга приложений.
Чтобы включить вывод ошибок через логи PHP необходим доступ к файлу php.ini (некоторые хостинг-провайдеры отключают его) :
- Откройте файл php.ini в текстовом редакторе кода.
- Найдите следующие строки:
error_reporting = E_ALL & ~E_DEPRECATED & ~E_STRICT
И замените их на:
- Задайте путь к файлу логов ошибок PHP в параметре error_log. Например:
- Сохраните файл php.ini и перезагрузите сервер Apache или PHP.
Как включить вывод ошибок через файл php.ini
- Найдите файл php.ini на вашем сервере. Обычно он располагается в /etc/php/7.0/ (где 7.0 — версия PHP) на серверах Linux или в директории PHP на серверах Windows.
- Откройте файл php.ini в текстовом редакторе кода.
- Найдите следующие строки:
error_reporting = E_ALL & ~E_DEPRECATED & ~E_STRICT
- Сохраните изменения в файле php.ini.
- Перезапустите веб-сервер, чтобы изменения вступили в силу.
Теперь все ошибки PHP будут выводиться на экран в браузере, и вы сможете легко отслеживать ошибки при разработке или настройке вашего сайта.
Заключение
Включение вывода ошибок в PHP помогает быстро находить и исправлять ошибки в коде, сокращает время разработки и улучшает эффективность работы веб-разработчиков.