Entendendo FastCGI, suPHP, CGI, mod_php(DSO) e PHP-FPM

O PHP não faz parte do servidor Apache nativamente, então para o PHP trabalhar junto ao Apache precisa-se de um Processador PHP
Opções mais utilizadas no mercado:

  • DSO
  • CGI
  • suPHP
  • FastCGI
  • PHP-FPM

DSO

Abreviação para Dynamic Shared Object, ou mod_php é o mais antigo e o manipulador PHP mais rápido disponível. Ele faz o Apache interpretar a partir de um módulo dele mesmo chamado mod_php. Ele é executado diretamente no mesmo processo do Apache, sendo assim tem um consumo de CPU e memória muito baixo, porém com grandes aplicações o consumo de memória e processamento pode crescer muito. A desvantagem é a segurança, já que o mesmo usuário do Apache poderá ter acesso a todas as aplicações ou sites.

CGI

CGI é o fallback na memória dos servidores, quando o mod_php não esta disponível ele entra, nessa situação é executado em um processo separado do Apache, a vantagem é que ele tem a capacidade de executar o PHP com outro usuário, para isso utiliza o módulo do Apache conhecido como suexec. Uma grande desvantagem é o desempenho péssimo, sendo aconselhado apenas para sites minúsculos e a vantagem é um grau a mais de segurança.

FastCGI

Oferece benefícios do suPHP de segurança, executa como sendo o proprietário do arquivo, porém o FastCGI mantém aberta uma sessão para o arquivo quando o processamento é feito, com isso aumenta o uso de memória, mas também permite o uso de código de armazenamento em cache, como APC ou memcached. A vantagem é que o manipulador é muito rápido, mesmo em comparação com mod_php.

PHP-FPM

Até então é a última geração de manipulador PHP, o FPM (FastCGI Process Manager). É uma alternativa para implementação do FastCGI com algumas features adicionais principalmente para utilizar em sites pesados.
Gerenciamento de processos avançados com stop/start
“slowlog” – Armazena os registros de scripts executados muito lentamente (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).
O Pcache melhora o desempenho do PHP, armazenando bytecode script pré-compilado em memória compartilhada, além disso, remove a necessidade do PHP de carregar e analisar scripts em cada pedido no disco.

Qual utilizar esta muito relacionado ao planejamento e infraestrutura, se você tiver recursos disponíveis não vejo razão para não utilizar o FastCGI ou PHP-FPM
Quando os recursos de hardware são limitados dai cabe a prioridade entre segurança vs desempenho:

mod_php CGI suPHP FastCGI PHP-FPM
Uso de memória Baixo Baixo Baixo Alto Alto
Utilização do CPU Baixo Alto Alto Baixo Baixo
Segurança Baixo Baixo Alto Alto Alto
Executar como proprietário do arquivo Não Não Sim Sim Sim
Desempenho Geral Rápido Lento Lento Rápido Rápido

Como saber qual processador esta ativo em seu servidor

É muito simples, basta você exibir o phpinfo(); e procurar pelo Server API:

https://brasilcloud.com.br/duvidas/diferenca-fastcgi-suphp-cgi-mod_php-dso-fpm/

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *