it-swarm-pt.tech

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

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

30
cletus

Usando o mod_php, cada trabalhador do Apache tem todo o intérprete PHP carregado nele. Como o Apache precisa de um processo de trabalho por solicitação recebida, você pode acabar rapidamente com centenas de trabalhadores do Apache em uso, cada um com seu próprio intérprete PHP carregado, consumindo grandes quantidades de memória.

(Observe que isso não é exatamente verdade, o worker_mpm Do Apache permite que você atenda muitas solicitações com um único trabalhador Apache encadeado. No entanto, mesmo em 2009, essa não é a maneira recomendada de implantar PHP porque suspeita de problemas de encadeamento com as extensões PHP.)

Usar PHP no modo fast_cgi (usar algo como spawn-fcgi do pacote lighttpd) tem os seguintes benefícios

  • ajuste o número de PHP trabalhadores separadamente do número de conexões de entrada
  • permitem que você coloque PHP trabalhadores em um servidor diferente ou faça a escala em vários servidores sem alterar o nível da web
  • oferece flexibilidade para escolher um servidor da web diferente, como nginx ou lighttpd
  • permitem que você execute seu aplicativo PHP em um domínio de segurança diferente no servidor da web
37
Dave Cheney

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 definitivas quando se trata de reiniciar o servidor ou lidar com aplicativos descontrolados - no caso mod_php, isso significa que o processo do Apache é descontrolado, mas no fastcgi é apenas um processo com o qual o Apache está falando, portanto o servidor inteiro não precisa ser desativado.

5
pjz

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

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

4
Martin C.