Купить Корзина
  • Домены и сайты
  • Облако и IT-инфраструктура
  • Вход
  • Телефон в Москве

    +7 495 580-11-11
  • Бесплатный звонок по России

    8 800 555-34-78
  • Или обратитесь в наши офисы

    Региональные номера
    1. База знаний
    2. Хостинг
    3. PHP, ASP.NET и скрипты
    4. Как включить вывод ошибок PHP

    Как включить вывод ошибок PHP

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

    При этом в процессе разработки сайтов и скриптов, очень важно отслеживать возникающие предупреждения. Знать о сбоях и неисправностях также важно и системным администраторам — это позволяет предотвратить проблемы на сайте или сервере.

    Самый оптимальный вариант — не просто скрыть показ ошибок, но и настроить запись о них в логах. Это позволит отслеживать предупреждения и не подвергать сервер угрозе.

    В статье мы расскажем, как включить и отключить через .htaccess вывод ошибок php, а также двумя другими способами — через скрипт PHP и через файл php.ini.

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

    Через .htaccess

    Перейдите в каталог сайта и откройте файл .htaccess.

    Вариант 1. Чтобы включить вывод, добавьте следующие строки:

    php_flag display_startup_errors on
    php_flag display_errors on
    php_flag html_errors on

    Чтобы отключить ошибки PHP htaccess, введите команду:

    php_flag display_startup_errors off
    php_flag display_errors off
    php_flag html_errors off

    Также выключить .htaccess display 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

    Если вам нужно проверить или выключить ошибки только в определенных файлах, это можно сделать с помощью вызова PHP-функций.

    Вариант 1. Чтобы включить вывод, используйте команду error_reporting. В зависимости от типа ошибок, которые вы хотите увидеть, подставьте нужное значение. Например, команда для вывода всех ошибок будет выглядеть так:

    error_reporting(E_ALL)

    А для всех типов, исключая тип Notice, так:

    error_reporting(E_ALL & ~E_NOTICE)

    Чтобы отключить вывод, введите команду:

    error_reporting(0)

    Чтобы отключить логирование повторяющихся ошибок, введите:

    # disable repeated error logging
    php_flag ignore_repeated_errors on
    php_flag ignore_repeated_source on

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

    ini_set('display_errors', 'On')
    error_reporting(E_ALL)

    После этого в консоли введите:

    ini_set('display_errors', 'Off')

    Вариант 3. Ещё один из вариантов подключения через скрипт:

    php_flag display_startup_errors on
    php_flag display_errors on

    Для отключения укажите:

    php_flag display_startup_errors off
    php_flag display_errors off

    Вариант 4. Чтобы настроить вывод с логированием через конфигурацию веб-сервера, введите:

    • для Apache — ErrorLog «/var/log/apache2/my-website-error.log»,
    • для Nginx — error_log /var/log/nginx/my-website-error.log.

    Подробнее о других аргументах читайте в документации на официальном сайте php.net.

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

    Настроить отслеживание также можно через файл php.ini. Этот вариант подойдет, когда отображение или скрытие ошибок нужно настроить для всего сайта или кода. Обратите внимание: возможность настройки через файл php.ini есть не у всех, поскольку некоторые хостинг-провайдеры частично или полностью закрывают доступ к файлу.

    Вариант 1. Если у вас есть доступ, включить вывод можно командой:

    display_errors = on

    После этого нужно перезагрузить сервер:

    sudo apachectl -k graceful

    Вариант 2. Чтобы включить вывод, используйте команду error_reporting. В зависимости от типа ошибок, которые вы хотите увидеть, после знака = подставьте нужное значение. Например, команда для вывода всех ошибок будет выглядеть так:

    error_reporting = E_ALL
    display_errors On

    После ввода перезагрузите сервер:

    sudo apachectl -k graceful

    Чтобы скрыть отображение, во второй строке команды укажите Оff вместо On:

    display_errors Off

    Теперь вы знаете, как настроить не только через PHP и php.ini, но и через htaccess отображение ошибок.

    Помогла ли вам статья?

    Спасибо за оценку. Рады помочь 😊

     👍
    Специальные предложения
    • Бесплатный хостинг для сайта
    • Дешевый хостинг
    • Бесплатный VPS-сервер
    • Дешёвые VPS
    Рассылка Рег.ру

    Лайфхаки, скидки и новости об IT

    Даю согласие на получение рекламных и информационных материалов

    Домены и сайты
    • Домены
    • Хостинг
    • Создание сайтов
    • SSL-сертификаты
    • VPS и VDS серверы
    • Whois
    • Магазин доменов
    Облако
    и IT-инфраструктура
    • Облачные серверы
    • Частное облако
    • Облачное хранилище
    • Kubernetes в облаке (K8S)
    • Облачные базы данных
    • Выделенные серверы
    Полезное
    • Стоимость услуг
    • Cпособы оплаты
    • База знаний
    • Документы
    • ЭДО
    • Партнерам
    • Сообщить о нарушении
    • РБК: новости России и мира сегодня
    • Новости компаний РФ
    • РБК Инвестиции: курсы валют
    Компания
    • О компании
    • Контакты
    • Офисы
    • Новости
    • Акции и скидки
    • Блог
    • Отзывы клиентов
    8 800 555-34-78 Бесплатный звонок по России
    +7 495 580-11-11 Телефон в Москве
    • vk
    • telegram
    • ok
    • moikrug
    • youtube
    • twitter
    • Облачная платформа Рег.ру включена в реестр российского ПО Запись №23682 от 29.08.2024
    • © ООО «РЕГ.РУ»
    • Политика конфиденциальности
      Политика обработки персональных данных
      Правила применения рекомендательных технологий
      Правила пользования
      и другие правила и политики
    • Нашли опечатку?
      Выделите и нажмите Ctrl+Enter
    • Мы используем cookie и рекомендательные технологии для персонализации сервисов и удобства пользователей. Вы можете запретить сохранение cookie в настройках своего браузера