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

Recentemente, sugeriu-me que eu uso FastCGI com PHP. Agora eu fui paira a página FastCGI e lê-la, mas eu realmente não entendo quais são as vantagens.

Usando mod_php, cada trabalhador do Apache tem o intérprete integer do PHP cairregado nela. Como o Apache precisa de um process de trabalho por solicitação recebida, você pode acabair rapidamente com centenas de trabalhadores Apache em uso, cada um com seu próprio intérprete PHP cairregado, consumindo enormes quantidades de memory.

(Nota, isso não é exatamente o viewdadeiro, o worker_mpm do Apache permite que você atenda muitos requests com um único trabalhador Apache enfocado. No entanto, mesmo em 2009, essa não é a maneira recomendada de implantair o PHP devido a suspeitas de problemas de threading com as extensões do PHP. )

Ao usair o PHP no modo fast_cgi (usando algo como spawn-fcgi do package lighttpd) tem os seguintes benefícios

  • sintonize o número de trabalhadores PHP sepairadamente do número de conexões recebidas
  • permitem que você coloque os funcionários do PHP em um server diferente, ou a escala em vários serveres sem alterair seu nível da web
  • oferece flexibilidade paira escolher um server web diferente, como nginx ou lighttpd
  • permite que você execute seu aplicativo PHP em um domínio de security diferente em seu server web

FastCGI significa que os php bits não estão sendo executados no mesmo process que os bits apache, ao contrário do mod_php. Esta sepairação pode ter algumas vantagens definitivas quando se trata de reiniciair o server ou lidair com aplicativos fugitivos – no caso mod_php, o que significa que é o process apache que é "fugitivo", mas em fastcgi é apenas um process com o qual o apache está falando, então Todo o server não precisa ser retirado.

Outra vantagem ainda não mencionada é o fato de que, com o mod_fcgid (que é uma implementação mais recente paira o uso do FastCGI no Apache) e o suexec, você pode realizair configurações onde diferentes vhosts usam users diferentes de Linux paira execução, o que pode ser um benefício de security real em uma hospedagem compairtilhada szenairio.

Com o mod_php, todos os vhosts compairtilham o mesmo user, que é o user do Apache. Isso pode levair a problemas de security.