Enquanto fazia um tutorial do Zend , me deparei com a seguinte declaração:
Observe que as configurações de php_flag em .htaccess só funcionam se você estiver usando mod_php.
Alguém pode explicar o que isso significa?
Enquanto fazia um tutorial do Zend , me deparei com a seguinte declaração:
Observe que as configurações de php_flag em .htaccess só funcionam se você estiver usando mod_php.
Alguém pode explicar o que isso significa?
Respostas:
mod_php
significa PHP, como um módulo Apache .
Basicamente, ao carregar mod_php
como um módulo Apache, permite ao Apache interpretar arquivos PHP (aqueles são interpretados por mod_php
) .
EDITAR: Existem (pelo menos) duas maneiras de executar o PHP, ao trabalhar com o Apache:
mod_php
) : o interpretador PHP é então meio "embutido" dentro do processo Apache: não há nenhum processo PHP externo - o que significa que Apache e PHP podem se comunicar melhor.
E reeditar, após o comentário : usando CGI ou mod_php
é com você: é só uma questão de configuração do seu servidor web.
Para saber qual caminho está sendo usado atualmente em seu servidor, você pode verificar a saída de phpinfo()
: deve haver algo indicando se o PHP está rodando via mod_php
(ou mod_php5
) , ou via CGI.
Você também pode querer dar uma olhada na php_sapi_name()
função: ela retorna o tipo de interface entre o servidor da web e o PHP .
Se você verificar os arquivos de configuração do Apache, ao usar mod_php
, deve haver uma LoadModule
linha parecida com esta:
LoadModule php5_module modules/libphp5.so
(O nome do arquivo, à direita, pode ser diferente - no Windows, por exemplo, deve ser a .dll
)
mod_php
é de longe a configuração mais comum.
mod_php
não é PHP real; é apenas um complemento do Apache. Ou melhor, acho que você deve começar a resposta com uma definição de O que exatamente o PHP significa?
Esta resposta foi retirada do TuxRadar :
Ao executar o PHP através do seu servidor web, existem duas opções distintas: executá-lo usando o CGI SAPI do PHP ou executá-lo como um módulo para o servidor web. Cada um tem seus próprios benefícios, mas, em geral, o módulo é geralmente preferido.
Executar o PHP como CGI significa que você basicamente informa ao seu servidor da web a localização do arquivo executável do PHP, e o servidor executa esse executável, fornecendo a ele o script que você chamou, cada vez que visitar uma página. Isso significa que cada vez que você carrega uma página, o PHP precisa ler php.ini e definir suas configurações, precisa carregar todas as suas extensões e, em seguida, precisa começar a trabalhar na análise do script - há muito trabalho repetido.
Quando você executa o PHP como um módulo, o PHP literalmente fica dentro do seu servidor web - ele inicia apenas uma vez, carrega suas configurações e extensões apenas uma vez e também pode armazenar informações entre as sessões. Por exemplo, os aceleradores de PHP contam com a capacidade do PHP de salvar dados em cache em solicitações, o que é impossível usando a versão CGI.
A vantagem óbvia de usar o PHP como módulo é a velocidade - você verá um grande aumento na velocidade se converter de CGI em módulo. Muitas pessoas, principalmente usuários de Windows, não percebem isso e continuam usando o php.exe CGI SAPI, o que é uma pena - o módulo é geralmente três a cinco vezes mais rápido.
Existe uma vantagem chave em usar a versão CGI, entretanto, é que o PHP lê suas configurações toda vez que você carrega uma página. Com o PHP sendo executado como um módulo, qualquer alteração feita no arquivo php.ini não é iniciada até que você reinicie seu servidor web, o que torna a versão CGI preferível se você estiver testando várias configurações novas e quiser ver respostas instantâneas.
Seu servidor precisa ter os módulos php instalados para que possa analisar o código php.
Se você estiver no Ubuntu, você pode fazer isso facilmente com
sudo apt-get install apache2
sudo apt-get install php5
sudo apt-get install libapache2-mod-php5
sudo /etc/init.d/apache2 restart
Caso contrário, você pode compilar o apache com php: http://dan.drydog.com/apache2php.html
Especificar o sistema operacional do servidor ajudará outros a responder mais especificamente.
Isso significa que você deve ter o PHP instalado como um módulo no Apache, ao invés de iniciá-lo como um script CGI.
Apenas para adicionar essas respostas é que mod_php é o método mais antigo e lento disponível no servidor HTTPD para usar PHP. Não é recomendado, a menos que você esteja executando versões antigas do Apache HTTPD e PHP. php-fpm e proxy_cgi são os métodos preferidos.