PHP 7.1.0 Release Candidate 4 Released

FastCGI Process Manager (FPM)


FPM (FastCGI Process Manager) é uma alternativa para a implementação PHP FastCGI com algumas features adicionais (principalmente) usado em sites pesados.

Entre as features estão incluidas:

  • gerenciamento de processos avançado com stop/start;

  • habilidade para começar a trabalhar com uid/gid/chroot/environment diferentes, ouvindo em diferentes portas e últilizando-se de php.ini destintos (troca de safe_mode);

  • stdout e stderr logging;

  • reinício de emergência em caso de destruição acidental de opcode cache;

  • acelera o processo de upload;

  • "slowlog" - os scripts de registro (e não apenas seus nomes, mas o seu PHP backtraces também,         usando ptrace e coisas semelhantes para o processo de leitura remota execute_data) que são executados extraordinariamente lento;

  • fastcgi_finish_request() - função especial para finalizar pedido e liberar todos os dados ao mesmo tempo         continuando a fazer algo demorado (conversão de vídeo, processamento de estatísticas, etc);

  • dinâmico/estático child spawning;

  • informações básicas de estatus do SAPI (similar ao Apache mod_status);

  • php.ini-baseado em arquivos de configurações.

add a note add a note

User Contributed Notes 4 notes

joel k
5 years ago
the fpm process supports the USER2 signal, which is used to reload the config file.

kill -USR2 [pid]

should do the trick.
robin at robinwinslow dot co dot uk
5 years ago
Init script setup

You will probably want to create an init script for your new php-fpm. Fortunately, PHP 5.3.3 provides one for you, which you should copy to your init directory and change permissions:

$ cp <php-5.3.3-source-dir>/sapi/fpm/ /etc/init.d/php-fpm
$ chmod 755 /etc/init.d/php-fpm

It requires a certain amount of setup. First of all, make sure your php-fpm.conf file is set up to  create a PID file when php-fpm starts. E.g.:
pid = /var/run/
(also make sure your php-fpm user has permission to create this file).

Now open up your new init script (/etc/init.d/php-fpm) and set the variables at the top to their relevant values. E.g.:

Your init script is now ready. You should now be able to start, stop and reload php-fpm:

$ /etc/init.d/php-fpm start
$ /etc/init.d/php-fpm stop
$ /etc/init.d/php-fpm reload

The one remaining thing you may wish to do is to add your new php-fpm init script to system start-up. E.g. in CentOS:

$ /sbin/chkconfig php-fpm on


Disclaimer: Although I did just do this on my own server about 20 mins ago, everything I've written here is off the top of my head, so it may not be 100% correct. Also, allow for differences in system setup. Some understanding of what you are doing is assumed.
kokushibyou at gmail dot com
3 years ago
PHP-FPM is FAST - but be wary of using it while your code base is stored on NFS - under average load your NFS server will feel some serious strain. I have yet to find a work around for this bug:
dreamcat4 at gmail dot com
2 years ago
Doesn't work? Enable logging!

The php-fpm.log file is a great place to fault-find errors and get to the bottom of a problem. But be sure to enable logging for your specific worker pool. Or you won't see anything!


To enable error logging for the default [www] worker pool, add this line in the [www] section of your php-fpm.conf:

catch_workers_output = yes
To Top