Справочник

display_errors: показ ошибок PHP и журнал ошибок

В Ubuntu PHP не показывает ошибки на странице: display_errors выключен, а log_errors включён. Ошибки сайта на nginx записываются в журнал nginx. Показ ошибок включают только на время поиска причины и потом выключают обратно.

≈ 4 мин чтения
Содержание 7

Что сделать прямо сейчас

  1. Команды вводятся на сервере: подключитесь к нему по SSH ([как подключиться](/instrukcii/kak-podklyuchitsya-k-vps-po-ssh/)) и набирайте их в том же окне.
  2. Откройте конец журнала ошибок nginx: sudo tail -n 30 /var/log/nginx/error.log. Если система спросит пароль, введите пароль своего пользователя на сервере. Символы при вводе не видны — наберите пароль и нажмите Enter.
  3. Найдите строки со словами PHP message: — после них идёт текст ошибки PHP.
  4. Найдите этот текст в списке ошибок PHP: для каждой ошибки там есть разбор с исправлением.

Как настроены ошибки в Ubuntu

НастройкаЗначениеЧто значит
display_errorsOffошибки не выводятся на страницу
display_startup_errorsOffошибки при запуске PHP тоже не выводятся
error_reportingE_ALL & ~E_DEPRECATED & ~E_STRICTсообщать обо всех ошибках, кроме предупреждений об устаревшем коде
log_errorsOnзаписывать ошибки в журнал
error_logне заданжурнал выбирает PHP-FPM: ошибки сайта уходят в журнал nginx

Так настроен файл /etc/php/8.3/fpm/php.ini — для сайта. Команды — для PHP 8.3 из Ubuntu 24.04. В Ubuntu 26.04 стоит PHP 8.5: в путях и командах вместо 8.3 пишите 8.5. Какая версия у вас, покажет ls /etc/php/.

Где искать ошибки

Где случилась ошибкаГде её искать
на странице сайтаsudo tail -n 30 /var/log/nginx/error.log — строки со словами FastCGI sent in stderr и PHP message:
при запуске PHP-FPMsudo tail -n 30 /var/log/php8.3-fpm.log
в команде php в окне SSHпрямо в окне, после команды

Если в настройках сайта nginx указан свой журнал ошибок, ищите там. Его покажет команда grep -rn error_log /etc/nginx/sites-enabled/: в ответе — путь к файлу после слова error_log.

Как на время включить показ ошибок

Не оставляйте показ ошибок включённым на рабочем сайте: посетители увидят пути к файлам и куски кода. Справка PHP советует выключать его на серверах в интернете.

Команды вводятся на сервере: подключитесь к нему по SSH (как подключиться) и набирайте их в том же окне.

  1. Откройте файл настроек PHP для сайта: sudo nano /etc/php/8.3/fpm/php.ini. Если система спросит пароль, введите пароль своего пользователя на сервере. Символы при вводе не видны — наберите пароль и нажмите Enter.
  2. Нажмите Ctrl+W, введите display_errors = и нажмите Enter — курсор встанет на строку с этой настройкой. Если в начале строки стоит точка с запятой, удалите её: такая строка не действует.
  3. Впишите новое значение: display_errors = On.
  4. Сохраните файл: Ctrl+O, Enter, затем Ctrl+X.
  5. Перезапустите PHP-FPM: sudo systemctl restart php8.3-fpm. Если команда ничего не ответила, PHP перезапущен.
  6. Проверьте значение: php-fpm8.3 -i | grep display_errors.

Откройте страницу с ошибкой — текст появится прямо на ней. Когда причина найдена, верните display_errors = Off и снова перезапустите PHP-FPM.

Журнал nginx показывает те же ошибки и без этого, поэтому начинайте поиск с него. Если страница белая или с кодом 500, начните с журнала: как найти причину ошибки 500.

У WordPress свой режим отладки с журналом в файле — как его включить.

Как проверить

php-fpm8.3 -i | grep display_errors

В ответе — строка display_errors => Off => Off: Off — показ выключен. Команда не видит настроек пула и .user.ini. Значение, которое видит сайт, точнее всего показывает phpinfo() на странице сайта: оно учитывает и настройки пула PHP-FPM, и файл .user.ini.

Источники

Сверено 14 октября 2026 года.

Что почитать дальше