|
php.net | support | documentation | report a bug | advanced search | search howto | statistics | random bug | login |
[2009-10-13 08:00 UTC] loki5100-nospam at yahoo dot fr
Description: ------------ i found a bug in PHP-cgi.exe I use Php-cgi as fastCgi php-cgi.exe -b host:port i set in environement variables this : PHP_FCGI_CHILDREN=8 PHP_FCGI_MAX_REQUESTS=1000 in the task manager i see only one Php-cgi.exe process (when normaly i must see 9 process no?) and after i send more than 1000 request the php-cgi.exe process died ! and i must manually restart it! that not a normal behavior when PHP_FCGI_CHILDREN is > 1 Reproduce code: --------------- set in environement variables : PHP_FCGI_CHILDREN=8 PHP_FCGI_MAX_REQUESTS=1000 exec: php-cgi.exe -b 127.0.0.1:9000 see in task manager only one Php-cgi.exe process send more than 1000 request to php-cgi.exe, the process will die and you will need to manually restart it ! Expected result: ---------------- process must be restarted automatiquely Actual result: -------------- the main process die and you need to manually restart it ! PatchesPull RequestsHistoryAllCommentsChangesGit/SVN commits
|
|||||||||||||||||||||||||||
Copyright © 2001-2025 The PHP GroupAll rights reserved. |
Last updated: Tue Oct 28 14:00:01 2025 UTC |
The problem is that the PHP_FCGI_CHILDREN environment variable is ignored under windows, therefore php-cgi does not spawn children, and when PHP_FCGI_MAX_REQUESTS is reached the process terminates. Check on PHP's source, file cgi_main.c, around line 1982: #ifndef PHP_WIN32 /* Pre-fork, if required */ if (getenv("PHP_FCGI_CHILDREN")) { char * children_str = getenv("PHP_FCGI_CHILDREN"); ... So, php with fast-cgi will **never** work on Windows. The question is, why is forking disabled under windows?