Diferença FastCGI, suPHP, CGI, mod_php (DSO) e PHP-FPM

Introdução

Neste artigo demonstraremos como o PHP trabalha junto ao Apache, uma vez que, o PHP não faz parte do servidor web e precisa "comunicar" de alguma forma com o PHP para gerar as páginas. Mas como isso funciona? Usando um Processador PHP!

Sendo assim, veja as opções que existem hoje e que são as mais utilizadas e difundidas no mercado:

 

DSO

(Abreviação para Dynamic Shared Object) ou mod_php é o mais antigo e, além disso, o manipulador PHP mais rápido disponível. Isto é, ele faz o Apache interpretar o próprio código PHP através do uso de um módulo do Apache conhecido como mod_php. Assim, este é o manipulador padrão normalmente instalado.

Aliás, o lado positivo do mod_php é a rapidez. De fato, ele é muito rápido, já que ele é executado diretamente no mesmo processo com o servidor Apache. Além disso, como ele é executado em conjunto com o Apache, significa que ele tem um consumo de CPU e memória muito baixo.

 

CGI

CGI é o fallback na maioria dos servidores, isto é,  quando o mod_php não está disponível. Em vez de executar o código PHP dentro do Apache, agora é executado em um próprio processo do CGI, ou seja, em um programa fora do seu servidor Apache.

Sendo assim, por padrão o CGI será chamado pelo servidor Apache, o que significa que ele será executado com o usuário do Apache e com todos os problemas que o mod_php encontrou. Contudo, o mod_php, ao contrário do CGI tem a capacidade de executar o PHP como outro usuário (presumivelmente o usuário do site) usando outro módulo do Apache conhecido como suexec.

 

suPHP

suPHP inicia fora do script do Apache, assim como o CGI. Ao contrário de CGI, no entanto, ele vai executar os scripts como um usuário diferente do usuário do Apache (presumivelmente o usuário do site). Isto é,  significa que se você estiver usando um CMS você será capaz de fazer upload de arquivos dentro de sua aplicação web usando suPHP.

Além disso, como o seu PHP está sendo executado como um usuário diferente, qualquer vulnerabilidade no seu site poderá ser restrita a apenas os arquivos de seu site proporcionando assim, benefícios substanciais de segurança particularmente em servidores que executam vários sites.

 

FastCGI

CGI - php

Ele oferece os benefícios suPHP de segurança, sendo assim, executa arquivos como o proprietário do arquivo. Ao contrário do suPHP, no entanto, o FastCGI mantém aberta uma sessão para o arquivo quando o processamento é feito. Isso resulta em uso de memória significativa, mas também permite o uso de código de operação de armazenamento em cache, como APC ou memcached. Se você tem memória para ele, FastCGI é sem dúvida o manipulador mais rápido, mesmo em comparação com mod_php.

 

PHP-FPM

PHP-FPM é a última geração de manipulador PHP. FPM (FastCGI Process Manager). Trata-se de uma alternativa para a implementação FastCGI com algumas features adicionais (principalmente) usado em sites pesados:

Gerenciamento de processos avançado com stop/start;
"slowlog" - armazena os registro 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.

 

Então, qual é o melhor?

Se você tiver a memória, portanto, não há realmente nenhuma razão para não usar o FastCGI ou PHP-FPM.

Em casos onde a memória é baixa, no entanto, ou ambiente com multi sites, a escolha pode ser analisada levando em consideração segurança vs desempenho.

Por isso, aqui está uma análise rápida para ajudá-lo a decidir.

 
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
 

Precisa de Hospedagem com PHP-FPM? Veja nosso Planos, clique aqui.


Fale Conosco

Entre em contato com a gente, teremos prazer em atendê-lo.


fale com um consultor

Fale com um Consultor


Entre em Contato


telefone

Fale com o Televendas


(34) 3515.0404


chat online

Chat On-line


Chat On-line