/php-cgi-spawner

Spawns php-cgi processes (in production)

Primary LanguageCMIT LicenseMIT

php-cgi-spawner

Build status

php-cgi-spawner is the smallest and easiest application to spawn a multiple php-cgi processes in Windows for your web server with FastCGI.

  • It spawns as many php-cgi (x86 or x64) on a single port as you need
  • It automatically restarts them if they crashed or reached PHP_FCGI_MAX_REQUESTS

Basic Usage

If you have the following directory structure:

php-cgi-spawner.exe
php
  php-cgi.exe
  php.ini

In order to spawn 4 php-cgi on tcp/9000:

php-cgi-spawner.exe php/php-cgi.exe 9000 4

You may specify a config file explicitly:

php-cgi-spawner.exe "php/php-cgi.exe -c php/php.ini" 9000 4

php-cgi.exe processes are spawned under the same user that runs php-cgi-spawner.exe.

Version 1.1

Now you can additionally specify a number of php-cgi helpers for permanently running php-cgi processes:

php-cgi-spawner.exe "php/php-cgi.exe -c php/php.ini" 9000 4+16

It means that up to 16 php-cgi helpers can start automatically when 4 php-cgi permanents do not handle a temporary server high load.

PHP_FCGI_MAX_REQUESTS for php-cgi helpers can be set in PHP_HELP_MAX_REQUESTS:

set PHP_HELP_MAX_REQUESTS 100
php-cgi-spawner.exe "php/php-cgi.exe -c php/php.ini" 9000 4+16

You can even do not use permanently running php-cgi and use just helpers, even with 1 request per helper:

set PHP_HELP_MAX_REQUESTS 1
php-cgi-spawner.exe "php/php-cgi.exe -c php/php.ini" 9000 0+16

But it is recommended to run at least 1 permanent php-cgi to handle opcache.

Download

Go to release to download pre-built binary.

Build

Go to src directory and run make.bat in a Visual Studio environment.

Notes

  • Currently a maximum number of permanently running php-cgi processes is 64 because of MAXIMUM_WAIT_OBJECTS in WaitForMultipleObjects.
  • The number of php-cgi helpers does not have such limit.