ПРОЕКТЫ 


  АРХИВ 


Apache-Talk @lexa.ru 

Inet-Admins @info.east.ru 

Filmscanners @halftone.co.uk 

Security-alerts @yandex-team.ru 

nginx-ru @sysoev.ru 


  СТАТЬИ 


  ПЕРСОНАЛЬНОЕ 


  ПРОГРАММЫ 



ПИШИТЕ
ПИСЬМА












     АРХИВ :: nginx-ru
Nginx-ru mailing list archive (nginx-ru@sysoev.ru)

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: PHP 4.3.11 из CVS и ошибки PHP скриптов



On Thu, 17 Feb 2005, Mike Kolesnikov wrote:

Обнаружил некую невосместимость версий PHP в плане обработки ошибок
скриптов в режиме FastCGI.
Если в обрабатываемом скрипте есть ошибка (например, функция не
определена), то PHP 4.3.2 возвращает результат в записи типа
FCGI_STDOUT, в то время как PHP 4.3.11 из CVS пишет в FCGI_STDERR, а
этот тип FCGI записи nginx-ом не обрабатывается.

Пример из жизни, PHP 4.3.2, в скрипте не определена функция:

2005/02/17 13:41:50 [debug] 7671#0: *243 pipe recv chain: 0
2005/02/17 13:41:50 [debug] 7671#0: *243 pipe buf free s:0 t:1 f:0
080D0260, pos 080D029C, size: 28 file: 0, size: 0


Теперь PHP 4.3.11-dev:

2005/02/17 04:53:24 [debug] 11900#0: *422 recv: fd:60 112 of 32768
2005/02/17 04:53:24 [debug] 11900#0: *422 http fastcgi record byte: 01

Эксперименты показывают, что только некоторые ошибки лезут в
FCGI_STDERR. Скажем, деление на ноль и неопределенная функция идут в
stderr, а просто parse error оправляется в stdout. В общем, непонятки.
Тем не менее, может быть, добавить поддержку FCGI_STDERR в nginx?
Логически он не сильно отличается от FCGI_STDOUT. Тем более что в спеке
написано:
Use of the FCGI_STDERR stream is always optional. If an application has
no errors to report, it sends either no FCGI_STDERR records or one
zero-length FCGI_STDERR record.

Т.е. бэкенд запросто может послать FCGI_STDERR, даже если ошибки не было.

Вчера вечером я доделал поддержку FCGI_STDERR. До этого она не работала.
Мне просто не на чем было потестировать FCGI_STDERR, php про ошибки
писал в FCGI_STDOUT.

Через полчаса будет 0.1.20. Хорошо бы в нём потестировать FCGI_STDERR.


Игорь Сысоев
http://sysoev.ru




 




Copyright © Lexa Software, 1996-2009.