Edit report at https://bugs.php.net/bug.php?id=49859&edit=1
ID: 49859
Comment by: matheus at gigatron dot com dot br
Reported by: loki5100-nospam at yahoo dot fr
Summary: PHP_FCGI_CHILDREN not work
Status: Not a bug
Type: Bug
Package: PHP options/info functions
Operating System: Windows Vista
PHP Version: 5.3.0
Block user comment: N
Private report: N
New Comment:
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?
Previous Comments:
------------------------------------------------------------------------
[2012-08-03 18:34:24] zyss at mail dot zp dot ua
I have the same problem. We're using PHP with windows embedded.
PHP just ignores this environment variable (PHP_FCGI_CHILDREN).
Please reopen this bug.
------------------------------------------------------------------------
[2012-04-04 12:12:29] strayer at olle-orks dot org
I just discovered this while checking out xcache and this really doesn't
work...
phpinfo() even shows the env var in its output!
cmd:
# set PHP_FCGI_CHILDREN=5
# set PHP_FCGI_MAX_REQUESTS=3
# php-cgi -b 127.0.0.1:9000
Process Explorer shows only one process with one thread.
Ran phpinfo() via browser:
Environment
PHP_FCGI_CHILDREN 5
PHP_FCGI_MAX_REQUESTS 3
It looks like php-cgi just ignores the PHP_FCGI_CHILDREN, since
PHP_FCGI_MAX_REQUESTS seems to be working as intended.
------------------------------------------------------------------------
[2009-10-19 14:40:16] [email protected]
You have just set the environment variables in wrong place / wrong way. (no
idea how you do that in windows, but this works just fine under *nix)
------------------------------------------------------------------------
[2009-10-13 08:00:52] 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 !
------------------------------------------------------------------------
--
Edit this bug report at https://bugs.php.net/bug.php?id=49859&edit=1