Public html error log

SOLVED error_log in public_html?

You are using an out of date browser. It may not display this or other websites correctly.
You should upgrade or use an alternative browser.

ca2236

Well-Known Member

can someone tell me how the error_log in public_html get created and logged? we have a site that is not getting theirs updated.

cPanelLauren

Product Owner II

This is created by enabling error logging for the PHP version. You can enable it by going to WHM>>Software>>MultiPHP INI Editor -> Editor Mode

; Log errors to specified file. PHP's default behavior is to leave this value ; empty. ; http://php.net/error-log ; Example: ;error_log = php_errors.log ; Log errors to syslog. ;error_log = syslog error_log = error_log
; Log errors to specified file. PHP's default behavior is to leave this value ; empty. ; http://php.net/error-log ; Example: ;error_log = php_errors.log ; Log errors to syslog. ;error_log = syslog error_log = error_log

Do you have knowledge you want to share? Check out the Community Guides and Tutorials section and submit your own tutorial

ca2236

Well-Known Member

However, I have a follow up question, on sites that do have the error_log working, it doesn’t have this in the multiPHP INI Editor. It just is the text version of Basic typically. Is this due to using inherited php settings on multi php manager and it pulls from a global setting? If so.. Why is that working for the local file when the above code doesn’t exist?

Читайте также:  Python get type from string

Sorry for asking, just trying to grasp this.

cPanelLauren

Product Owner II

It’s possible this is set locally for those domains, within their respective php.ini, if you’re running wordpress you can also enable error logging in the wp-config.

Do you have knowledge you want to share? Check out the Community Guides and Tutorials section and submit your own tutorial

Источник

Отображение ошибок PHP через .htaccess и другими способами

Ошибки в коде — неотъемлемая часть любого процесса разработки. Чтобы понять, почему не выполняется скрипт, необходимо вывести error-логи PHP на экран.

Следует помнить, что в публичной версии сайта вывод ошибок на экран должен быть отключён.

Способы вывода ошибок PHP

  • Через файл .htaccess, отвечающий за дополнительные параметры сервера Apache.
  • Непосредственно через PHP-скрипт.
  • Через файл php.ini, содержащий настройки интерпретатора PHP.

Преимущества вывода ошибок в файле .htaccess

  1. Широкий охват. Параметры распространяются на все элементы дочерних поддиректорий.
  2. Быстрота и удобство. Обработка ошибок настраивается в несколько команд и в одном месте.

Вывод ошибок на экран лучше делать через файл .htaccess, особенно когда PHP-файлов несколько. Поэтому далее разберём этот способ подробнее.

Виды ошибок PHP в файле .htaccess

  • E_ALL — все виды ошибок, кроме E_STRICT до PHP 5.4.0.
  • E_ERROR — фатальные ошибки, прекращающие работу скрипта.
  • E_WARNING — ошибки-предупреждения. Не являются фатальными, поэтому не вызывают прекращение работы скрипта.
  • E_PARSE — ошибки разбора. Могут возникать только во время компиляции.
  • E_NOTICE — уведомления о нарушении времени выполнения скрипта.
  • E_CORE_ERROR — фатальная ошибка обработчика. Генерируется ядром во время запуска PHP-скрипта.
  • E_CORE_WARNING — предупреждения компиляции, возникающие при запуске PHP-скрипта.
  • E_COMPILE_ERROR — фатальные ошибки, возникающие на этапе компиляции.
  • E_COMPILE_WARNING — предупреждение компилятора PHP-скриптов.
  • E_USER_ERROR — ошибки, сгенерированные пользователями.
  • E_USER_WARNING — предупреждения, сгенерированные пользователями.
  • E_USER_NOTICE — уведомления, сгенерированные пользователями.

Как включить вывод ошибок через .htaccess

Файл .htaccess должен находиться в корневой директории сайта (например, «public_html»). Отредактировать его можно с помощью проводника, доступного в панели хостинга.

Примечание. Если файла .htaccess нет, то его необходимо создать.

Включить отображение ошибок PHP и настроить фильтрацию их вывода можно двумя директивами: «display_errors» и «error_reporting». Первая отвечает за состояние режима показа ошибок («On» или «Off»), а вторая задаёт глубину отображения.

Показать ошибки PHP на экране можно с помощью следующего кода:

php_flag display_errors on php_value error_reporting -1

После сохранения изменённого файла, следует обновить страницу.

Примеры практического применения

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

Следующий код скроет ошибки PHP с экрана:

# скрыть ошибки php 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 на экран (например, сайт работает в реальном времени). Для этого можно перенаправить вывод информации в лог-файл с помощью следующего кода:

# включить ведение журнала ошибок PHP php_flag log_errors on # месторасположение журнала ошибок PHP php_value error_log /var/www/имя_пользователя/data/www/ваш_www-домен/

Чтобы обработка ошибок в .htaccess выполнялась безопасно надо обязательно защитить папку с log-файлами от внешнего доступа при помощи следующего кода:

# запретить доступ к журналу ошибок PHP Order allow,deny Deny from all Satisfy All 

Можно также настроить фильтрацию. Флаг «integer» указывает на глубину вывода данных (уровень показа). Значение «0» не выведет никаких ошибок. Комбинация «8191» запишет в log-файл сбои всех уровней.

# общая директива для фильтрации ошибок php php_value error_reporting integer

Чтобы текст ошибок не обрезался, можно установить максимальный размер на строку:

# общая директива для установки максимального размера строки log_errors_max_len integer

Выключение записи повторяющихся ошибок сократит объём поступающих данных и улучшит восприятие информации:

# отключить запись повторяющихся ошибок php_flag ignore_repeated_errors on php_flag ignore_repeated_source on

В результате настройки .htaccess для сайта, находящегося в публичном доступе, должны выглядеть так:

# обработка ошибок PHP для публичного ресурса 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 report_memleaks on 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 

Во время разработки или отладки файл .htaccess должен содержать следующий код:

# Обработка ошибок PHP во время разработки php_flag display_startup_errors on php_flag display_errors on php_flag html_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 

Включение журналирования ошибок PHP в .htaccess

Когда отображение ошибок на странице выключено, необходимо запустить их журналирование следующим кодом:

# включение записи PHP ошибок php_flag log_errors onphp_value error_log /home/path/public_html/domain/PHP_errors.log

Примечание. Вместо « /home/path/public_html/domain/PHP_errors.log » нужно подставить собственный путь до директории, в которой будет вестись журнал ошибок.

Чтобы запретить доступ к журналу извне, нужно добавить следующий код:

# предотвращаем доступ к логу PHP ошибок Order allow,deny Deny from all Satisfy All 

Дополнительные способы вывода ошибок PHP

Можно добавить оператор «@», чтобы запретить показ ошибок в конкретной инструкции PHP:

Вывод ошибок в PHP-скрипте

Чтобы выводить все ошибки, нужно в начале скрипта прописать:

Если необходимо отображать ошибки PHP только из определённого места скрипта, то можно использовать следующий код:

ini_set('display_errors', 'On'); // сообщения с ошибками будут показываться error_reporting(E_ALL); // E_ALL - отображаем ВСЕ ошибки $value = $var[$key]; // пример ошибки ini_set('display_errors', 'Off'); // теперь сообщений НЕ будет

Примечание. Если заменить значения «On» и «Off» в первой и последней строках на противоположные, то на конкретном участке кода ошибки выводиться не будут.

Через файл php.ini

Включить или выключить показ ошибок на всём сайте/хостинге также можно с помощью файла «php.ini», в котором нужно изменить два следующих параметра:

error_reporting = E_ALL display_errors On

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

Надежный хостинг для сайта. 14 дней — бесплатно!

Источник

How to create a PHP Error log in cPanel

This guide will explain how to create a PHP error log file in cPanel for your primary domain name. This will require you to add and edit files in the file manager, including the .htaccess to follow along in this guide. If you have trouble diagnosing errors on your site, this guide can help provide some more information by enabling error logs.

Editing Your .htaccess

Step One: Navigate to the File Manager in your cPanel

Step Two: Select the public_html folder and the folder for your domain.

Step Three: By default, the .htaccess file is hidden. Click on Settings on the upper right side of the page to view the settings.

Step four: Click on the Save button.

Step Five: Back in your file manager, right-click your .htaccess file, and select edit.

Step Six: Copy and paste the following code in your .htaccess file and click on Save Changes:

php_flag display_errors off
php_flag log_errors On
php_value error_log /home/Username/public_html/phperror.log

You will need to change the Username above to your cPanel username

This will put the error log in the file named phperror.log in your public_html folder or create this if the file does not exist. You can customize the location of the file or the file name by editing the file path.

Step 6b: Locate your cPanel/FTP username in your cPanel homepage in the upper right corner of your cPanel homepage

You can add an error log for each domain by creating a separate .htaccess file in the domain’s document root. You can combine these by keeping the file path as shown above for the phperror.log file the same.

Test Your Error Log

Step One: Create a new PHP file named errortest.php in your public_html folder and add this code to produce an error:

This will produce an error due to the incorrect spelling of echo and using it instead.

Step Two: Access the file using your favorite browser. For example, go to the file from your domain, ex. domain.com/errortest.php

This will cause an error to be logged in your ~/public_html/errortest.php file, and nothing will show up on this page.

View your error files

Option One: Right-click the phperror.log and select view

Your phperror.log should look like this when it has been created.

Option Two: You can also view the phperror.log file by going to ‘domain.com/phperror.log’ (replace ‘domain.com’ with your actual domain)

Written by Hostwinds Team / September 20, 2018

Источник

Оцените статью