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

Отключение предупреждений и уведомлений об устаревании PHP

Я использовал и настраивал PHP, но теперь у меня возникла странная проблема, поэтому я попрошу вас, ребята, о помощи.

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

Я запускаю PHP 5.3.3-1ubuntu9.3 с Suhosin-Patch в Ubuntu 10.10

В моем /etc/php5/apache2/php.ini Есть такая строка:

error_reporting = E_ALL & ~E_DEPRECATED & ~E_NOTICE

Я перезапустил веб-сервер. В конфигурации виртуального хоста php_admin_value не вмешивается в эту конфигурацию, в папке нет файла .htaccess.

Тем не менее, предупреждения и уведомления об устаревании по-прежнему отображаются.

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

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

Итак, вот список этих мест, от более глобальных до более конкретных. Каждый параметр, расположенный ниже в списке, может переопределить предыдущий параметр.

  1. Файл php.ini Файл конфигурации. В случае Ubuntu их два, /etc/php5/apache2/php.ini - это тот, который используется для модуля php apache. Это окажет глобальное влияние на все виртуальные хосты.

  2. Каталог conf.d. На самом деле не все установки будут иметь эту модульную конфигурацию, но в случае Ubuntu он находится в /etc/php5/apache2/conf.d для модуля apache. Любой файл, добавленный в этот каталог, будет добавлен в основную конфигурацию php.ini с более высоким приоритетом, чем php.ini. Другими словами, любой параметр здесь переопределит настройки в php.ini - я тестировал добавление error.ini. Это окажет глобальное влияние на всех жизненных хозяев.

  3. Конфигурация виртуального хоста Apache. Обычно устанавливается в / etc / apache2 / sites-available, каждый виртуальный хост может иметь разные настройки. Внутри тега VirtualHost можно включить «php_value error_reporting», где значение - это числовой результат логических операций над константами. В этой конфигурации фактически не разрешено использовать мнемонические константы, а только числовое значение. Это повлияет только на один виртуальный хост. Это переопределит указанные выше настройки.

  4. .htaccess. Также возможно установить значения конфигурации и, в частности, параметр error_reporting также в .htaccess, с тем же синтаксисом, который описан в 3. Это повлияет только на каталог, в котором находится .htaccess, и все подкаталоги. Он переопределит указанные выше настройки, в этом случае перезапускать apache не требуется.

  5. Исходный код. Последнее место, где можно изменить этот параметр, находится непосредственно в исполняемом исходном коде PHP. Если используется, переопределит все предыдущие настройки, и это именно то, с чем я столкнулся. Его можно установить, вызывая функцию error_reporting () или ini_set ("error_reporting",) ". Ошибки компиляции все еще могут отображаться, потому что в этом случае сценарий не будет выполняться.

Установите переменную в /etc/php5/apache2/php.ini к

error_reporting = E_COMPILE_ERROR|E_RECOVERABLE_ERROR|E_ERROR|E_CORE_ERROR

это покажет только ошибки.