2009-06-26 2 views
2

есть способ установить error_reporting(E_ALL); для определенного каталога, а не включать его в каждый файл?сообщения об ошибках в определенных папках

Я хотел бы, чтобы включить отчеты об ошибках для моего beta.mysite.com

+0

Я желаю я выбрал 2 сообщений для действительных ответов +1 для всех трех :( – dassouki

ответ

6

You can use a .htaccess file in Apache. Просто добавьте следующую строку:

php_value error_reporting 6143 

Или для старых версий PHP:

php_value error_reporting 2047 

Заметьте, что вы не можете использовать contants (как E_ALL)

От the manual:

Примечание: постоянные PHP вне PHP

Использование PHP-констант за пределами PHP, , как и в httpd.conf, не будет иметь полезного значения, поэтому в таких случаях требуются целые значения . А так как уровни ошибок будут добавлены с течением времени, максимальное значение (для E_ALL) будет вероятно изменение. Так вместо E_ALL рассмотреть возможность использования большего значения для покрытия всех битовых полей от сегодня и в будущее, числовое значение, как 2147483647.

+0

+1 за то, что черт побери подробно, но я добавил в бит, который указывает на конфигурацию, удалите, если вам не нравится – cgp

3

Use an .htaccess file to set the option.

<IfModule mod_php5.c> 
    display_errors 1 
</IfModule> 

Теперь, естественно, это работает только, если вы используете Apache в качестве модуля.

Если вы хотите добавить опцию конфигурации при использовании CGI, ваши варианты будут ограничены.

Пара идей:

  • В том числе что-то в каждом сценарии.
  • Более экзотично: используйте правило перезаписи, которое указывает на известный скрипт в каталоге, который использовал обычный аргумент стиля set_ini, а затем включил предполагаемый скрипт, проверив путь. Мне плохо с правилами перезаписи, но я знаю, что это можно сделать.
1

Только быстрое примечания: класть инструкции PHP в .htaccess работает только в том случае, если PHP установлен как модуль Apache. С PHP, установленным как CGI, все, что вы получаете, это 500 Internal server error.

+0

Спасибо за подсказку, я нахожусь на apache, но если кто-то читал это, как бы вы сделали это под CGI? – dassouki

+0

Прямо сейчас я использую per- файлы php.ini на моем общем хосте Linux. До сих пор у меня не было возможности работать на моем домашнем тестовом сервере WIndows: я считаю, что для Apache требуется phpsuexec или suphp. Если ничего другого не работает, я бы включил include() или auto_prepend php-файл со списком инструкций ini_set() в начале каждого файла ... – djn

0

для режима CGI вы должны использовать php.ini для достижения этой цели

Смежные вопросы