Apache 2.0 em sistemas Unix
Esta seção contém notas e dicas específicas para a instalação do PHP no Apache 2.x
em sistemas Unix.
AvisoNão recomendamos usar um
MPM com threads no Apache 2 em produção. Use o módulo prefork, que é
o MPM padrão no Apache 2.0 e 2.2 e não usa threads.
Para obter informações sobre o motivo, leia a FAQ sobre o uso do
Apache2 com MPM com threads.
A » documentação do Apache
é a fonte de informação com maior autoridade sobre o servidor Apache 2.x.
Mais informações sobre opções de instalação para o Apache podem ser encontradas
lá.
A versão mais recente do Servidor HTTP do Apache pode ser obtida do
» site de download Apache,
e uma versão correspondente do PHP pode ser obtida dos locais mencionados anteriormente.
Esse guia rápido cobre apenas o básico para iniciar o uso do Apache 2.x
e do PHP. Para mais informações, leia a
» documentação do Apache.
Os números de versão estão omitidos aqui, para garantir que
as instruções não fiquem desatualizadas. Nos exemplos abaixo, 'NN' deve
ser substituído com a versão específica do Apache utilizado.
Atualmente há duas versões do Apache 2.x. - 2.4 e 2.2.
Embora haja várias razões para escolher entre elas, 2.4 é a versão mais
atual, e aquela recomendada, se essa opção estiver
disponível. Entretanto, as instruções aqui funcionarão para
ambas as versões, 2.4 ou 2.2. Importante notar que o Apache httpd 2.2 está no final de sua vida,
e nenhum novo desenvolvimento ou correções serão realizados nele.
-
Obtenha o Apache HTTP do endereço acima e
descompacte:
-
Da mesma forma, obtenha e descompacte o código-fonte do PHP:
-
Compile e instale o Apache. Consulte a documentação de instalação do Apache para
mais detalhes de compilação.
-
Agora haverá um Apache 2.x.NN disponível em /usr/local/apache2,
configurado com suporte a módulos carregáveis e o MPM prefork padrão.
Para testar a instalação, utilize o procedimento usual de inicialização
do servidor Apache. Por exemplo:
e depois pare o servidor para configurar o PHP:
-
Agora configure e compile o PHP. Aqui pode-se personalizar o PHP
com várias opções como, por exemplo, quais extensões estarão disponíveis. Execute
'./configure --help' para uma lista de opções disponíveis. Em nosso exemplo,
iremos configurar apenas com suporte ao Apache 2 e MySQL.
Se o Apache foi compilado a partir do código-fonte como descrito acima, os exemplos abaixo terão
caminhos coincidentes do apxs, mas se foi instalado de outra forma, o caminho
para o apxs precisará ser ajustado. Observe que algumas distribuições podem renomear
apxs para apxs2.
Se for decidido modificar as configurações depois da instalação,
os comandos configure, make
e make install precisarão ser executados novamente.
Só será necessário reiniciar o Apache para que o novo módulo seja carregado.
Uma recompilação do Apache não será necessária.
Note que, por padrão, make install também instalará o
» PEAR,
várias ferramentas do PHP como phpize,
o PHP CLI, entre outros.
-
Configure o php.ini:
Pode-se de editar o arquivo .ini
para definir opções do PHP. Se for desejado ter
um php.ini em outra localização,
utilize --with-config-file-path=/algum/caminho
no passo 5.
Se for preferível utilizar o php.ini-production, leia atentamente
a lista de modificações desse arquivo, já que ele afeta o comportamento do PHP.
-
Edite o httpd.conf para carregar o módulo do PHP. O caminho à direita
da instrução LoadModule
precisa apontar para o caminho do módulo do PHP
no sistema. O make install acima pode ter feito isso
automaticamente, mas é bom confirmar.
-
Configure o Apache para interpretar certas extensões de arquivos como PHP. Por exemplo, configurar
o Apache para interpretar arquivos .php
como scripts PHP. Em vez de utilizar apenas a diretiva AddType
do Apache, é recomendado evitar uploads potencialmente perigosos e nomes de
arquivos como exploit.php.jpg que possam ser executados como scripts PHP. Nesse
exemplo, pode-se ter quaisquer extensões interpretadas como PHP, simplesmente adicionando-as.
Adicionaremos .php
como demonstração.
Alternativamente, para permitir que arquivos .php
, .php2
,
.php3
, .php4
, .php5
,
.php6
e .phtml
sejam
executados como PHP, mas nenhum outro, seria desta forma:
Para permitir que arquivos .phps
sejam interpretados pelo filtro de fontes do PHP e
exibidos como código fonte destacado, utilize isto:
mod_rewrite
pode ser utilizado para permitir que qualquer arquivo .php
seja exibido
como código-fonte destacado, sem precisar ser renomeado ou copiado
para um arquivo .phps
:
O filtro de fontes PHP não deve ser ativado em ambiente de produção, onde
pode expor informações confidenciais ou sensíveis incorporadas no
código-fonte.
-
Depois, utilize o procedimento normal de iniciar o servidor Apache, por exemplo:
ou
Seguindo os passos acima, o servidor web Apache2 será executado com
suporte ao PHP como um módulo SAPI
. Existem muitas outras
opções de configuração disponíveis para o Apache e para o PHP. Para mais
informações execute ./configure --help no diretório
do código-fonte correspondente.
O Apache pode ser construído com suporte a multi-tarefas através da seleção
do MPM worker, em vez do padrão
MPM prefork. Isso é possível
acrescentado-se a seguinte opção ao argumento passado para ./configure no
passo 3 acima:
Isto não deve ser feito sem conhecer as consequências
desta decisão, ou pelo menos ter uma boa noção de
suas implicações. A documentação do Apache
sobre » módulos MPM
discute essas questões com muito mais detalhes.
Nota:
A seção de Perguntas Frequentes
do Apache MultiViews discute o uso de MultiViews com o PHP.
Nota:
Para construir uma versão multi-tarefa do Apache, o sistema de destino precisa suportar threads.
Neste caso, o PHP também deve ser construído
com o Zend Thread Safety (ZTS). Nesta configuração, nem todas as extensões estarão disponíveis.
A configuração recomendada é construir o Apache com o módulo
MPM prefork padrão.