PHP Error & htaccess. Настройки вывода php ошибок при помощи htaccess
Описание настроек управления ошибками PHP, которые можно выполнить в .htaccess. Мы регулярно используем в своей работе те или иные настройки php, а именно в этой статье собрано наиболее полное описание этих возможностей. Автор статьи Jeff Starr.
Убираем отображение ошибок php на сайте
# supress php errors
php_flag display_startup_errors off
php_flag display_errors off
php_flag html_errors off
php_value docref_root 0
php_value docref_ext 0
Вывод ошибок php в произвольный лог файл
# enable PHP error logging
php_flag log_errors on
php_value error_log /home/path/public_html/domain/PHP_errors.log
Защищаем папку с логами от доступа
# prevent access to PHP error log
<Files PHP_errors. log>
Order allow,deny
Deny from all
Satisfy All
</Files>
Выставляем уровень вывода ошибок
integer — флаг, который задает глубину вывода ошибок. 0 — не выводить ничего, 8191- выводить в лог все. Значение 1 — выводит ошибки. Более подробное описение в документации по PHP.
# general directive for setting php error level
Выставляем максимальный размер для строки с ошибкой
# general directive for setting max error size
log_errors_max_len integer
Отключить логирование повторяющихся ошибок
# disable repeated error logging
php_flag ignore_repeated_errors on
php_flag ignore_repeated_source on
Настройки для сайта в рабочем режиме
<Files /home/path/public_html/domain/PHP_errors. log># PHP error handling for production servers
php_flag display_startup_errors off
php_flag display_errors off
php_flag html_errors off
php_flag log_errors on
php_flag ignore_repeated_errors off
php_flag ignore_repeated_source off
php_flag track_errors on
php_value docref_root 0
php_value docref_ext 0
php_value error_reporting -1
php_value log_errors_max_len 0
Order allow,deny
Deny from all
Satisfy All
</Files>
Конфигурация для отладки или разработки
<Files /home/path/public_html/domain/PHP_errors.log># PHP error handling for development servers
php_flag display_startup_errors on
php_flag display_errors on
php_flag log_errors on
php_flag ignore_repeated_errors off
php_flag ignore_repeated_source off
php_flag report_memleaks on
php_flag track_errors on
php_value docref_root 0
php_value docref_ext 0
php_value error_log /home/path/public_html/domain/PHP_errors.log
# [see footnote 3] # php_value error_reporting 999999999
php_value error_reporting -1
php_value log_errors_max_len 0
Order allow,deny
Deny from all
Satisfy All
</Files>
Jeff Starr
Advanced PHP Error Handling via htaccess
Функции ошибок PHP
❮ Предыдущий Далее ❯
Введение в PHP Error
Функции обработки ошибок используются для обработки и регистрации ошибок.
Функции обработки ошибок позволяют нам определять собственные правила обработки ошибок и изменять способ регистрации ошибок.
Функции регистрации позволяют нам отправлять сообщения непосредственно на другие машины, электронные письма или системные журналы.
Функции отчетов об ошибках позволяют нам настроить уровень и тип дается сообщение об ошибке.
Установка
Функции обработки ошибок PHP являются частью ядра PHP. Установка не требуется использовать эти функции.
Конфигурация среды выполнения
На поведение функций обработки ошибок влияют настройки в php.ini.
Ошибки и параметры конфигурации регистрации:
Имя | По умолчанию | Описание | Сменный |
---|---|---|---|
отчет об ошибках | НУЛЕВОЙ | Задает уровень сообщения об ошибках (целое число или именованные константы) | PHP_INI_ALL |
display_errors | «1» | Указывает, следует ли выводить ошибки на экран или их следует скрывать от пользователя. Примечание: Эту функцию никогда не следует использовать в производственных системах (только для поддержки разработки) | PHP_INI_ALL |
display_startup_errors | «0» | Даже если параметр display_errors включен, ошибки, возникающие во время последовательности запуска PHP, не отображаются. | PHP_INI_ALL |
лог_ошибок | «0» | Определяет, должны ли сообщения об ошибках сценария записываться в журнал ошибок сервера или в error_log. Примечание: Настоятельно рекомендуется использовать ведение журнала ошибок вместо отображения ошибок на рабочих веб-сайтах | PHP_INI_ALL |
log_errors_max_len | «1024» | Устанавливает максимальную длину log_errors в байтах. Значение «0» можно использовать, чтобы вообще не применять максимальную длину. Эта длина применяется к регистрируемым ошибкам, отображаемым ошибкам, а также к $php_errormsg (доступно с PHP 4. 3) | PHP_INI_ALL |
ignore_repeated_errors | «0» | Указывает, следует ли регистрировать повторяющиеся сообщения об ошибках. Если установлено значение «1», он не будет регистрировать ошибки с повторяющимися ошибками из одного и того же файла в той же строке (доступно с PHP 4.3) | PHP_INI_ALL |
ignore_repeated_source | «0» | Указывает, следует ли регистрировать повторяющиеся сообщения об ошибках. Если установлено значение «1», он не будет регистрировать ошибки с повторяющимися ошибками из разных файлов или строк исходного кода (доступно, начиная с PHP 4.3) | PHP_INI_ALL |
отчет_memleaks | «1» | Если установлено значение «1» (по умолчанию), этот параметр будет отображать отчет об утечках памяти, обнаруженных диспетчером памяти Zend (доступен, начиная с PHP 4.3) | PHP_INI_ALL |
track_errors | «0» | Если установлено значение «1», последнее сообщение об ошибке всегда будет присутствовать в переменной $php_errormsg | PHP_INI_ALL |
html_errors | «1» | Отключает теги HTML в сообщениях об ошибках | PHP_INI_ALL PHP_INI_SYSTEM в PHP <= 4. 2.3. |
xmlrpc_errors | «0» | Отключает обычные отчеты об ошибках и форматирует ошибки как сообщение об ошибке XML-RPC (доступно, начиная с PHP 4.1) | PHP_INI_SYSTEM |
xmlrpc_error_number | «0» | Используется как значение элемента XML-RPC faultCode (доступно, начиная с PHP 4.1) | PHP_INI_ALL |
docref_root | «» | (доступно начиная с PHP 4.3) | PHP_INI_ALL |
docref_ext | «» | (доступно начиная с PHP 4.3.2) | PHP_INI_ALL |
error_prepend_string | НУЛЕВОЙ | Задает строку для вывода перед сообщением об ошибке | PHP_INI_ALL |
НУЛЕВОЙ | Задает строку для вывода после сообщения об ошибке | PHP_INI_ALL | |
журнал_ошибок | НУЛЕВОЙ | Указывает имя файла, в котором должны регистрироваться ошибки сценария. Файл должен быть доступен для записи пользователю веб-сервера. Если используется специальное значение syslog, вместо | ошибки отправляются в системный журнал.PHP_INI_ALL |
Функции регистрации ошибок и регистрации ошибок PHP
Функция | Описание |
---|---|
debug_backtrace() | |
debug_print_backtrace() | Печатает обратную трассировку |
error_clear_last() | Сбрасывает последнюю ошибку |
error_get_last() | Возвращает последнюю возникшую ошибку |
error_log() | Отправляет сообщение об ошибке в журнал, в файл или на почтовый ящик |
error_reporting() | Указывает, о каких ошибках сообщается |
restore_error_handler() | Восстанавливает предыдущий обработчик ошибок |
restore_exception_handler() | Восстанавливает предыдущий обработчик исключений |
set_error_handler() | Устанавливает определяемую пользователем функцию обработчика ошибок |
set_exception_handler() | Задает определяемую пользователем функцию обработчика исключений |
триггер_ошибка() | Создает сообщение об ошибке на уровне пользователя |
user_error() | Псевдоним для функции trigger_error() |
PHP Предопределенные константы ошибок и протоколирования
Значение | Константа | Описание |
---|---|---|
1 | E_ERROR | Неустранимые ошибки времени выполнения. Ошибки, от которых невозможно избавиться. Выполнение скрипта остановлено |
2 | E_WARNING | Предупреждения во время выполнения (нефатальные ошибки). Выполнение скрипта не остановлено |
4 | E_PARSE | Ошибки синтаксического анализа во время компиляции. Ошибки синтаксического анализа должны генерироваться только синтаксическим анализатором | .
8 | E_NOTICE | Уведомления во время выполнения. Скрипт обнаружил что-то, что может быть ошибкой, но также может произойти при обычном запуске скрипта |
16 | E_CORE_ERROR | Фатальные ошибки при запуске PHP. Это похоже на E_ERROR, за исключением того, что генерируется ядром PHP | .
32 | E_CORE_WARNING | Нефатальные ошибки при запуске PHP. Это похоже на E_WARNING, за исключением того, что оно генерируется ядром PHP | .
64 | E_COMPILE_ERROR | Неустранимые ошибки времени компиляции. Это похоже на ошибку E_ERROR, за исключением того, что она генерируется обработчиком сценариев Zend | .
128 | E_COMPILE_WARNING | Некритические ошибки времени компиляции. Это похоже на E_WARNING, за исключением того, что оно генерируется Zend Scripting Engine | .
256 | E_USER_ERROR | Неустранимая ошибка пользователя. Это похоже на E_ERROR, за исключением того, что оно генерируется в коде PHP с помощью функции PHP trigger_error() 9.0041 |
512 | E_USER_WARNING | Нефатальное пользовательское предупреждение. Это похоже на E_WARNING, за исключением того, что оно генерируется в коде PHP с помощью функции PHP trigger_error() | .
1024 | E_USER_NOTICE | Пользовательское уведомление. Это похоже на E_NOTICE, за исключением того, что оно генерируется в коде PHP с помощью функции PHP trigger_error() | .
2048 | E_STRICT | Включите, чтобы PHP предлагал изменения в вашем коде, которые обеспечат наилучшую совместимость и прямую совместимость вашего кода (начиная с PHP 5, но не включенного в E_ALL до PHP 5.4) |
4096 | E_RECOVERABLE_ERROR | Захватываемая фатальная ошибка. Указывает на то, что произошла, вероятно, опасная ошибка, но она не оставила Engine в нестабильном состоянии. Если ошибка не перехватывается определяемым пользователем дескриптором, приложение прерывается, так как это было E_ERROR (начиная с PHP 5.2) |
8192 | E_DEPRECATED | Уведомления во время выполнения. Включите это, чтобы получать предупреждения о коде, который не будет работать в будущих версиях (начиная с PHP 5.3) |
16384 | E_USER_DEPRECATED | Предупреждающее сообщение, созданное пользователем. Это похоже на E_DEPRECATED, за исключением того, что оно генерируется в коде PHP с помощью функции PHP trigger_error() (начиная с PHP 5. 3) |
32767 | Е_ВСЕ | Включить все ошибки и предупреждения PHP (кроме E_STRICT в версиях < 5.4) |
❮ Предыдущий Далее ❯
Как включить отображение ошибок php на сайте
Навигация
• •
Временное отображение ошибок PHP важно и полезно для решения различных проблем на сайте. Например:
- Вместо контента на вашем сайте будет отображаться пустая страница или
- 500 Отображается сообщение об ошибке.
Отображение пустой страницы чаще всего вызвано ошибкой PHP в коде. Если включен отчет об ошибках (включено отображение ошибок PHP), то найти ошибку и решить проблему очень просто.
Вы можете настроить отчеты об ошибках PHP в файле php.ini (если у вас есть доступ к этому файлу). Установите следующие строки:
error_reporting = E_ALL
display_errors = On
Если вы установили свой сервер, например. с помощью XAMPP см. документацию, где найти файл php.ini . Не забудьте остановить сервер Apache перед внесением изменений и запустить его снова после сохранения этих изменений.
Если у вас нет доступа к файлу php.ini , но вы можете изменить файл .htaccess на вашем сервере (в корне папки public_hml — ваш сайт Joomla!), попробуйте добавить туда следующий код (на некоторых серверах эта опция отключена, поэтому вам нужно обратиться к вашему оператору веб-хостинга):
# Отображение ошибок PHP
php_flag display_errors на
php_value error_reporting 6143
Если вы не можете получить доступ к файлу .htaccess или ваши изменения в этом файле не имеют никакого эффекта, попросите вашего хостинг-провайдера включить отчеты об ошибках или попробуйте чтобы просмотреть файл журнала ошибок (должен находиться за пределами папки public_html), который также может дать вам важную информацию.
После того, как вы получите информацию о проблеме и решите эту проблему, вам следует снова отключите отчеты об ошибках php, поэтому ошибка не будет отображаться для публики (из соображений безопасности).
Иногда проблема может быть вызвана некорректно выполненным SQL-запросом. Включение режима отладки в Global Configuration Joomla! может заполнить информацию, отображаемую отчетом об ошибках PHP. В Global Configuration вы также можете указать отображение ошибок PHP (Global Configuration — Error Reporting). Но имейте в виду, это не имеет никакого эффекта, если на сервере отключено отображение ошибок PHP.
Резюме. Чтобы получить как можно больше информации об ошибках, выполните следующие действия:
- Включение отчетов об ошибках PHP в файле php.ini
- Включение отчетов об ошибках PHP в файле .htaccess
- Настройка отчетов об ошибках PHP на максимум в глобальной конфигурации в Joomla!
- Установка режима отладки в глобальной конфигурации в Joomla!
- Получение информации из файла журнала ошибок.
Последние новости и статьи
- org/Article»> Выпущена версия галереи Phoca 4.5.2 (Joomla 4)
- Выпущена версия 4.0.0 плагина консоли Phoca Cart
- Выпущена стабильная версия гостевой книги Phoca 4.0.2
- Phoca Download Версия 4.0.4 Выпущена
- Выпущена версия 4.0.5 Phoca Cart
Свежие новости
Галерея Phoca, версия 4.5.2. Выпущены версия 4.5.2 плагина Phoca Gallery Content и плагина Phoca Gallery Button.
Список изменений:
- Готово для Joomla 4.2
- Готов к работе с PHP 8.1
- Плагин Phoca Gallery Button готов для Joomla 4.2
- Плагин Phoca Gallery Content поддерживает эффект Masonry, см. Плагин Phoca Gallery Content — Masonry Demo — Masonry CSS основан на How to Create a Pure CSS Masonry Portfolio? Статья опубликована Даниэлем.