Как бы я ни старался, я не могу подавить отображение сообщений об ошибках от PHP (используя php-fpm).
Соответствующие файлы;
/etc/php5/fpm/php.ini:display_errors = Off
/etc/php5/fpm/pool.d/www.conf:php_flag[display_errors] = off
/etc/php5/fpm/pool.d/www.conf:php_admin_flag[display_errors] = off
/etc/php5/cli/php.ini:display_errors = Off
Когда я звоню phpinfo()
вывод будет следующим [изображения в виде ссылок, поскольку это мой первый пост и поэтому у меня недостаточно репутации, чтобы разместить их в строке, извините!];
https://i.stack.imgur.com/4ttGt.png https://i.stack.imgur.com/4LAah.png
Выше показан путь к файлу конфигурации как /etc/php5/fpm
и загруженный файл конфигурации как /etc/php5/fpm/php.ini
. На втором изображении показано display_errors
и display_startup_errors
так как Off
.
Это говорит о том, что эти настройки были установлены правильно, но загрузка страницы с ошибками приводит к страницам с ошибками, например:
Неизвестно: preg_replace (): Модификатор / e устарел, используйте вместо него preg_replace_callback в /path/to/file.php онлайн 651 **** Неизвестно: preg_replace (): Модификатор / e устарел, используйте вместо него preg_replace_callback в /path/to/file.php онлайн 651
(отформатирован, как указано выше, поэтому применяется форматирование HTML)
Я также пробовал установить ini_set("display_errors", 0);
и даже error_reporting(0);
но безрезультатно.
Также отредактировал, чтобы добавить;
# php5-fpm -i | grep error
display_errors => Off => Off
display_startup_errors => Off => Off
error_append_string => no value => no value
error_log => /var/log/php_err.log => /var/log/php_err.log
error_prepend_string => no value => no value
error_reporting => 22527 => 22527
html_errors => Off => Off
ignore_repeated_errors => On => On
log_errors => On => On
log_errors_max_len => 1024 => 1024
Что мне не хватает?
Версии следующие;
Debian 8 Джесси
PHP 5.6.30-0 + deb8u1
Nginx 1.6.2
Это простой PHP или вы запускаете код с какой-то структурой?
В последних фреймворках довольно распространено перенастраивать отчеты об ошибках на лету и / или регистрировать собственный обработчик ошибок, так что, возможно, что-то в вашей программе перенастраивает его снова?