PHP como CGI ou Apache Module?

6

Eu sempre acreditei que o PHP funciona melhor instalado como um módulo do Apache, mas recentemente, alguém em um fórum local apontou que executar o PHP como CGI é melhor em termos de segurança. Eu fiz um pouco de googling e parece que Dreamhost padroniza sua instalação do PHP para trabalhar via CGI . Agora estou um pouco confuso.

Tanto quanto eu entendo (eu não sou sysadmin, apenas um desenvolvedor web), há o problema de permissões de usuário quando o PHP é instalado como um módulo do Apache. E há o problema de velocidade ao usar PHP via CGI (ou foi).

Qual é o caminho recomendado hoje em dia para instalar o PHP? Em hospedagem compartilhada e dedicada.

    
por Ionuț G. Stan 07.07.2009 / 10:52

3 respostas

7

A execução do PHP como um módulo geralmente é mais eficiente, mas significa que todos os scripts são executados sob a mesma conta de usuário (qual conta o Apache é executado), o que pode representar preocupações de segurança em um ambiente compartilhado.

O CGI é muito mais lento, já que inicia um novo processo PHP para cada requisição que precisa de um, mas pode ser configurado para rodar cada script como o usuário que o possui, o que pode ser muito mais seguro em um ambiente compartilhado.

O FastCGI pode ser mais complicado de configurar, mas chega perto da velocidade de execução do módulo PHP.

    
por 07.07.2009 / 11:09
5

Em geral, a única razão pela qual você deseja executar o CGI é em um ambiente compartilhado.

Isso permite que você tenha um estilo suEXEC (veja: suPHP ) onde os scripts são executados apenas como UID / GID do proprietário e tem permissão limitada para qualquer outra coisa no sistema de arquivos.

Caso contrário, o mod_php é muito mais eficiente e muitas vezes mais fácil de depurar.

    
por 07.07.2009 / 11:15
1

Com o FastCGI, posso reiniciar o PHP sem reiniciar o servidor (apenas mate os processos do PHP, o servidor irá notá-lo e reinicie-os imediatamente).

    
por 07.07.2009 / 23:42