Назад | Перейти на главную страницу

Не удается заставить PHP перестать показывать ошибки

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

Что я могу сделать, чтобы предотвратить это?

Mac OS X Lion Server 10.7.1 MAMP Скомпилировано с использованием инструкций из DIY Mac Server (diymacserver.com)

ОБНОВИТЬ:

Здесь хранится мой файл php.ini ...

Это значение моей настройки display_errors во время выполнения

И это значение копирования и вставки, записанное в /etc/php.ini

display_errors = Off

убедитесь, что вы редактируете правильный файл php.ini, так как есть два ini-файла, один для apache и один для CLI.

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

  1. Вполне может быть, что более поздняя настройка отменяет ваши. Просмотрите или найдите в ini-файле все случаи появления "display_errors": grep -n display_errors/etc/php.ini
  2. Какое значение имеет «Загруженный файл конфигурации»?

В display_errors директиву можно изменить во время выполнения с помощью ini_set функция. Убедитесь, что ни один из кодов не включает отображение ошибок.

Кроме того, при обновлении настроек php.ini обязательно перезапустите Apache.

У тебя есть auto_append_file= параметр, который заставляет php включать код на каждую страницу, которая использует ini_set() чтобы снова включить дисплей?

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

3 наиболее очевидные причины:

1) вы меняете не тот файл php.ini (к которому вы уже обращались).

2) параметр php.ini переопределен где-то еще - если это mod_php, то это может быть в файлах httpd.conf или .htaccess

3) вы не перезапустили процесс PHP (httpd, когда мы говорим о mod_php) после внесения изменений