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

PHP через FastCGI: «завершается вызовом exit ()»

Недавно я преобразовал свой сервер с настройки mod_php на php через настройку mod_fcgid. Все работает хорошо: быстро, легко, не вылетает и т.д. и т.п.

Проблема в том, что файлы журнала заполняются такими сообщениями:

[Sat Nov 14 00:43:17 2009] [notice] mod_fcgid: process /var/www/fcgi-bin.d/php5-default/php-fcgi-wrapper(9451) exit(server exited), terminated by calling exit(), return code: 0
[Sat Nov 14 00:43:23 2009] [notice] mod_fcgid: process /var/www/fcgi-bin.d/php5-default/php-fcgi-wrapper(9453) exit(server exited), terminated by calling exit(), return code: 0
[Sat Nov 14 00:43:27 2009] [notice] mod_fcgid: process /var/www/fcgi-bin.d/php5-default/php-fcgi-wrapper(9457) exit(server exited), terminated by calling exit(), return code: 0
[Sat Nov 14 00:43:27 2009] [notice] mod_fcgid: process /var/www/fcgi-bin.d/php5-default/php-fcgi-wrapper(9459) exit(server exited), terminated by calling exit(), return code: 0
[Sat Nov 14 00:43:41 2009] [notice] mod_fcgid: process /var/www/fcgi-bin.d/php5-default/php-fcgi-wrapper(9463) exit(server exited), terminated by calling exit(), return code: 0
[Sat Nov 14 00:43:47 2009] [notice] mod_fcgid: process /var/www/fcgi-bin.d/php5-default/php-fcgi-wrapper(9461) exit(server exited), terminated by calling exit(), return code: 0
[Sat Nov 14 00:43:58 2009] [notice] mod_fcgid: process /var/www/fcgi-bin.d/php5-default/php-fcgi-wrapper(9466) exit(server exited), terminated by calling exit(), return code: 0

Если мой файл apache2.conf, у меня для ведения журнала установлено значение E_ALL & ~E_NOTICE. Мой файл php.ini настроен так, чтобы не регистрировать ошибки.

Я использую exit в моем php-коде, но я не понимаю, почему она выдает уведомление в файлах журнала. Любой вклад будет оценен.

В стандартных сценариях CGI сервер запускает сценарий, отправляет ему один запрос, а затем ожидает завершения сценария.

В сценарии FCGI сервер запускает его один раз и отправляет множество запросов, по одному за раз. Это означает, что ваш скрипт не должен завершаться после одного запроса, а должен выходить только в условиях ошибки, когда он не может дать полезный ответ (даже если он должен был ответить кодом 500).

Итак, я полагаю, вы сбиваете с толку Apache, выходя из него вообще.