PHP: Quais são as vantagens do FastCGI sobre mod_php?

30

Recentemente, foi sugerido para mim que eu usasse o FastCGI com PHP. Agora eu fui para a página do FastCGI e li, mas eu realmente não entendo quais são as vantagens.

    
por cletus 10.05.2009 / 04:35

3 respostas

37

Usando o mod_php, cada trabalhador do Apache tem o interpretador inteiro do PHP carregado nele. Como o Apache precisa de um processo de trabalho por solicitação de entrada, você pode acabar rapidamente com centenas de funcionários do Apache em uso, cada um com seu próprio interpretador PHP carregado, consumindo grandes quantidades de memória.

(Observe que isso não é exatamente verdade, worker_mpm do Apache permite que você atenda a muitos pedidos com um único trabalhador Apache encadeado. No entanto, mesmo em 2009, essa não é a maneira recomendada de implantar o PHP devido a problemas suspeitos de encadeamento com as extensões PHP.)

Usando PHP no modo fast_cgi (usando algo como spawn-fcgi do pacote lighttpd) os seguintes benefícios

  • ajusta o número de trabalhadores PHP separadamente do número de conexões de entrada
  • permite que você coloque funcionários PHP em um servidor diferente ou dimensione vários servidores sem alterar sua camada da web
  • oferece flexibilidade para escolher um servidor da web diferente, como nginx ou lighttpd
  • permite que você execute seu aplicativo PHP em um domínio de segurança diferente em seu servidor da web
por 10.05.2009 / 05:14
5

FastCGI significa que os bits php não estão sendo executados no mesmo processo que os bits do apache, ao contrário do mod_php. Essa separação pode ter algumas vantagens definidas quando se trata de reiniciar o servidor ou lidar com aplicações fugitivas - no caso do mod_php isso significa que é o processo do apache que é "fugitivo", mas sob o fastcgi é apenas um processo com o qual o apache está falando todo o servidor não precisa ser removido.

    
por 10.05.2009 / 04:50
4

Outra vantagem ainda não mencionada é o fato de que com mod_fcgid (que é uma implementação mais recente para usar FastCGI no Apache) e suexec você pode realizar configurações onde diferentes vhosts usam diferentes usuários Linux para execução, o que pode ser uma verdadeira segurança beneficiar em um szenario de hospedagem compartilhada.

Com o mod_php, todos os vhosts compartilham o mesmo usuário, que é o usuário do Apache. Isso pode levar a problemas de segurança.

    
por 10.05.2009 / 09:43