PHP como um binário CGI versus PHP como um módulo do Apache

3

Quais são os benefícios de executar o PHP como um binário CGI comparado à execução do PHP como um módulo do Apache? Existem:

  1. Benefícios de segurança?
  2. Benefícios de estabilidade?
  3. Benefícios de desempenho?

Eu sempre instalei e usei o PHP como um módulo do Apache, então estou curioso para saber se há alguma razão para usar o PHP como um binário CGI para trabalhos futuros ...

Obrigado!

    
por Aaron 19.06.2011 / 04:06

2 respostas

4

Quando o PHP é usado como um módulo, ele é mais ou menos compilado no próprio código do Apache. Ele é carregado para cada solicitação, o que significa que é carregado até mesmo para imagens, scripts, folhas de estilo e quaisquer outros arquivos que não sejam PHP. Isso torna a veiculação dessas páginas mais lenta. Por outro lado, ele torna o PHP mais rápido, já que o Apache não precisa gerar processos adicionais.

Quando o PHP é usado como um binário CGI, é mais seguro, mas é mais lento. O Apache pode gerar processos sob diferentes usuários, o que, por exemplo, pode aumentar a segurança de um ambiente de hospedagem compartilhada. Ele também aumenta a estabilidade porque os processos do PHP são separados do Apache e, no caso de um segfault ou outra falha grave, os processos do PHP não afetarão o Apache. Usar PHP como CGI significa que você não pode usar o arquivo .htaccess para configurar o PHP usando php_flag ou php_value .

A questão é, o que é mais importante para você. Velocidade ou segurança.

Se você pesquisar os benefícios de usar o PHP em CGI ou em módulos no Google, tenho certeza de que encontrará muitos artigos excelentes que podem abordar coisas que eu perdi.

    
por 19.06.2011 / 04:25
0

Normalmente você tem 3 opções:  - php como módulo do servidor web (apache ou iis) - > mod_php  - cgi (estilo antigo de cada vez binário de arranque)  - fast-cgi (binário mais otimizado)

Por fast-cgi queremos dizer que é o fast-cgi do apache sem nenhum proxy do fpm e etc.

Nos dois modos CGI, os scripts de autenticação HTTP não estarão funcionando.

O Fastcgi é melhor que apenas o CGI - @see gugl, mas podem ocorrer 500 erros.

Por estabilidade & o desempenho mod_php é melhor.

    
por 19.06.2011 / 05:11