Diferenças e desvantagens entre: Fast-CGI, CGI, Mod-PHP, SuPHP, PHP-FPM

59

Existem alguns "wrappers" php diferentes (?). Quais são as diferenças entre eles? Tentei google alguns, mas não consigo encontrar informações. (mod-php não é googleable).

Por que eu posso escolher um sobre o outro?

    
por Gacek 20.11.2014 / 11:31

1 resposta

121

As perguntas são um pouco estranhas, não está claro se você está pedindo apenas PHP ou sua pergunta é mais geral.

Vou dar uma breve visão geral do lado do PHP.

Primeiro, os dois protocolos:

  • Os scripts CGI são uma maneira de executar um script do lado do servidor quando uma solicitação HTTP vem; isso não tem nada a ver com o PHP

  • O FastCGI é um "melhor CGI" - o CGI é conhecido por ser lento, o Fast CGI é uma abordagem diferente com resultados muito mais rápidos; isso também não tem nada a ver com o PHP.

Agora as coisas relacionadas ao PHP:

  • mod_php está executando um PHP como módulo do Apache - que é PHP request é executado sob o processo Apache com tudo que o acompanha - os processos do Apache são definidos pela configuração do Apache, o PHP é executado com permissão do Apache, etc.

  • O PHP-FPM é a implementação FastCGI do PHP; O PHP-FPM é executado como um servidor FastCGI autônomo e o Apache se conecta ao servidor usando o módulo do Apache, geralmente mod_fcgid ou mod_fastcgi; Eu pessoalmente acho que isso é muito melhor do que rodar como mod_php, mas depende das suas necessidades e também é um pouco mais complexo; nesta configuração, permissão, processa coisas relacionadas & tudo é executado sob configuração PHP, usuário PHP, etc. & O Apache se conecta ao PHP como a um servidor; nesta configuração também é possível ter um conjunto de servidores PHP e ter um servidor PHP em uma máquina fisicamente diferente do Apache. Eles dizem que isso é quase tão rápido quanto usar o módulo do Apache e há benefícios de um melhor controle sobre a configuração do PHP.

  • SuPHP - isso foi usado principalmente para resolver alguns problemas de mod_php relacionados a permissões; com scripts PHP mod_php são executados sob o usuário / grupo do Apache; mod_suphp pode executar os scripts no usuário diferente; Eu nunca usei, o PHP-FPM agora deve ser uma escolha muito melhor

Então, basicamente:

  • CGI, Fast-CGI são protocolos; O CGI é lento, o Fast-CGI é muito mais rápido
  • mod_php (com sublinhado) e PHP-FPM são duas maneiras básicas de executar o PHP
  • mod_SuPHP é semelhante a mod_php, mas pode alterar o usuário / grupo que o processo executa em
por 20.11.2014 / 12:05