Я использовал и настраивал 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 есть несколько мест, где можно настроить конфигурацию. Хотя у меня было представление о приоритете этих настроек, я решил проверить их экспериментально, чтобы быть уверенным в том, что я собираюсь сказать в этом ответе.
Итак, вот список этих мест, от более глобальных до более конкретных. Каждый параметр, расположенный ниже в списке, может переопределить предыдущий параметр.
Файл php.ini Файл конфигурации. В случае Ubuntu их два, /etc/php5/apache2/php.ini - это тот, который используется для модуля php apache. Это окажет глобальное влияние на все виртуальные хосты.
Каталог conf.d. На самом деле не все установки будут иметь эту модульную конфигурацию, но в случае Ubuntu он находится в /etc/php5/apache2/conf.d для модуля apache. Любой файл, добавленный в этот каталог, будет добавлен в основную конфигурацию php.ini с более высоким приоритетом, чем php.ini. Другими словами, любой параметр здесь переопределит настройки в php.ini - я тестировал добавление error.ini. Это окажет глобальное влияние на всех жизненных хозяев.
Конфигурация виртуального хоста Apache. Обычно устанавливается в / etc / apache2 / sites-available, каждый виртуальный хост может иметь разные настройки. Внутри тега VirtualHost можно включить «php_value error_reporting», где значение - это числовой результат логических операций над константами. В этой конфигурации фактически не разрешено использовать мнемонические константы, а только числовое значение. Это повлияет только на один виртуальный хост. Это переопределит указанные выше настройки.
.htaccess. Также возможно установить значения конфигурации и, в частности, параметр error_reporting также в .htaccess, с тем же синтаксисом, который описан в 3. Это повлияет только на каталог, в котором находится .htaccess, и все подкаталоги. Он переопределит указанные выше настройки, в этом случае перезапускать apache не требуется.
Исходный код. Последнее место, где можно изменить этот параметр, находится непосредственно в исполняемом исходном коде 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
это покажет только ошибки.