J’utilise actuellement nginx et PHP FastCGI, mais cette disposition souffre de la limitation du fait qu’elle ne peut servir qu’une requête HTTP à la fois. (Voir ici .) Je lance PHP depuis l’invite de commande Windows en faisant;
c:\Program Files\PHP>php-cgi -b 127.0.0.1:9000
Cependant, il existe un autre moyen de faire fonctionner PHP, connu sous le nom de “Fast CGI Process Manager” (PHP-FPM).
Sous Windows 7, derrière nginx, PHP-FPM peut-il gérer plusieurs requêtes HTTP simultanées?
J’ai fini avec cette solution: il vous suffit de lancer plusieurs processus php-cgi et de les lier à différents ports, et vous devez mettre à jour nginx config:
http { upstream php_farm { server 127.0.0.1:9000 weight=1; server 127.0.0.1:9001 weight=1; server 127.0.0.1:9002 weight=1; server 127.0.0.1:9003 weight=1; } ... server { ... fastcgi_pass php_farm; } }
Pour des raisons de commodité, j’ai créé des fichiers de commandes simples.
start_sandbox.bat
:
@ECHO OFF ECHO Starting sandbox... RunHiddenConsole.exe php\php-cgi.exe -b 127.0.0.1:9000 -c php\php.ini RunHiddenConsole.exe php\php-cgi.exe -b 127.0.0.1:9001 -c php\php.ini RunHiddenConsole.exe php\php-cgi.exe -b 127.0.0.1:9002 -c php\php.ini RunHiddenConsole.exe php\php-cgi.exe -b 127.0.0.1:9003 -c php\php.ini RunHiddenConsole.exe mysql\bin\mysqld --defaults-file=mysql\bin\my.ini --standalone --console cd nginx && START /B nginx.exe && cd ..
et stop_sandbox.bat
:
pstools\pskill php-cgi pstools\pskill mysqld pstools\pskill nginx
comme vous pouvez le voir, il y a 2 dépendances: pstools et runhiddenconsole.exe