Eu gostaria de perguntar sobre os métodos de configuração do PHP / Apache que você conhece, seus prós e contras. Eu vou começar eu mesmo:
---------------- PHP como módulo do Apache ----------------
Prós : boa velocidade, já que você não precisa iniciar o exe sempre, especialmente em mpm-worker mode. Você também pode usar vários aceleradores de PHP neste modo, como APC ou eAccelerator.
Contras : se você estiver executando o apache no modo mpm-worker, poderá enfrentar problemas de estabilidade porque cada falha em qualquer script php levará à instabilidade em todo o conjunto de encadeamentos desse processo apache.
Também neste modo todos os scripts são executados em nome do usuário do apache. Isso é ruim para a segurança. A configuração do mpm-worker requer o PHP compilado no modo thread-safe. Pelo menos os repositórios padrão do Red Hat e do RedHat não possuem versões do PHP seguras para threads, então nesses sistemas operacionais você precisa compilar pelo menos o PHP (existe uma maneira de ativar o worker mpm no Apache).
O uso de binários PHP seguros para thread é considerado experimental e instável. Além disso, muitas extensões PHP não suportam o modo thread-safe ou não foram bem testadas no modo thread-safe.
---------------- PHP como CGI ----------------
Esta parece ser a configuração padrão mais lenta que parece ser um "con" em si;)
---------------- PHP como CGI via mod_suphp ----------------
Prós : o suphp permite que você execute php scipts em nome do proprietário do arquivo de script. Dessa forma, você pode separar com segurança sites diferentes na mesma máquina. Além disso, o suphp permite usar diferentes arquivos php.ini por host virtual.
Contras : PHP no modo CGI significa menos desempenho. Neste modo, você não pode usar aceleradores php como o APC, porque toda vez que um novo processo é gerado, ele não funciona, tornando o cache do processo anterior inútil. BTW, você sabe o caminho para aplicar algum acelerador nesta configuração? Eu ouvi algo sobre o uso de shm para cache de bytecode php.
Além disso, você não pode configurar o PHP via arquivos .htaccess neste modo. Você precisará instalar P ECL htscanner para isso se precisar definir várias opções por script via .htaccess (php_value / diretivas php_flag)
---------------- PHP como CGI via suexec ----------------
Esta configuração parece a mesma que com o suphp, mas ouvi dizer que é mais lento e menos seguro. Quase os mesmos prós e contras aplicam-se.
---------------- PHP como FastCGI ----------------
Prós : O padrão FastCGI permite que o processo de php único manipule vários scripts antes que o processo do php seja eliminado. Desta forma, você ganha desempenho, pois não há necessidade de girar o novo processo de php para cada script. Você também pode usar aceleradores PHP nesta configuração (veja a seção contras para comentários). Além disso, FCGI quase como suphp também permite que processos php sejam executados em nome de algum usuário. O mod_fcgid parece ter o suporte e a flexibilidade mais completos do fcgi para o apache.
Contras : O uso do acelerador php no modo fastcgi levará a um alto consumo de memória, pois cada processo PHP terá seu próprio cache bytecode (a menos que haja algum acelerador que possa usar memória compartilhada para o cache de bytecode Existe tal?) FastCGI também é um pouco complexo para configurar. Você precisa criar vários arquivos de configuração e fazer algumas modificações na configuração.
Parece que o fastcgi é a configuração do PHP mais estável, segura, rápida e flexível, porém um pouco difícil de ser configurado. Mas, pode ser, eu perdi alguma coisa?
Comentários são bem vindos!