Apache 2.0 em sistemas Unix
Esta seção contém notas e dicas específicas para a instalação do PHP em 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 mais importante sobre o servidor Apache 2.x.
Mais informações sobre opções de instalação podem ser encontradas
lá.
A versão mais recente do servidor Apache HTTP 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 Apache 2.x
e 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 razões para escolher entre elas, 2.4 é a versão mais
atual, e aquela recomendada, se essa opção lhe for
possível. Entretanto as instruções aqui funcionarão para
ambas as versões 2.4 e 2.2. Importante notar que o Apache httpd 2.2 está em End Of Life,
e nenhum novo desenvolvimento ou correções serão realizados nele.
-
Obter o Apache HTTP do endereço acima e
descompactar:
-
Da mesma forma, obter e descompactar os fontes do PHP:
-
Compilar e instalar o Apache. Consulte a documentação de instalação do Apache
para mais detalhes/opções de compilação.
-
Você agora tem um Apache 2.x.NN disponível em /usr/local/apache2,
configurado com módulos carregáveis e o MPM prefork padrão.
Para testar a instalação utilize o procedimento de inicialização
do servidor Apache. Por exemplo:
e depois pare o servidor para configurar o PHP:
-
Agora configure e compile o PHP. Aqui você pode personalizar o PHP
com várias opções, por exemplo quais extensões estarão disponíveis. Rode
./configure --help para uma lista de opções disponíveis. Em nosso exemplo
nós iremos configurar apenas com suporte ao Apache 2 e MySQL.
Se você compilou o Apache a partir dos fontes como descrito acima os exemplos abaixo terão
caminhos coincidentes do apxs, mas se instalou de outra forma você terá de
ajustar o caminho para o apxs. Algumas distribuições renomeiam
apxs para apxs2.
Se decidir modificar suas configurações depois da instalação você
terá de rodar novamente o configure, make e make install.
Terá também de
reiniciar o Apache para que o novo módulo seja carregado. Uma recompilação do
Apache não é necessária.
Note que por padrão 'make install' também instalará o PEAR,
várias ferramentas do PHP como phpize, instalar o PHP CLI, entre outros.
-
Configure seu php.ini:
Você pode editar seu arquivo .ini para configurar o PHP. Se preferir ter
um php.ini em outra localização, utilize --with-config-file-path=/some/path no
passo 5.
Se preferir utilizar o php.ini-production leia atentamente
esse arquivo, dado que ele modifica o comportamento do PHP.
-
Edite seu httpd.conf para carregar o módulo do PHP. O caminho a direita
da instrução LoadModule precisa apontar para o caminho do módulo do PHP
em seu sistema. O 'make install' acima pode ter feito isso
por você, mas é bom confirmar.
-
Configure o Apache para interpretar certas extensões de arquivos do PHP. Por exemplo configurar
o Apache para interpretar arquivos .php. Em vez de utilizar apenas a diretiva Apache AddType
é recomendado evitar uploads potencialmente perigosos e nomes de
arquivos como exploit.php.jpg de serem executados pelo PHP. Nesse exemplo
você pode ter qualquer extensão (ou extensões) configuradas.
Adicionaremos .php como demonstração.
Ou, pode-se acrescentar também .php, .php2, .php3, .php4, .php5, .php6 e
.phtml para ser executado como PHP, desta forma:
Para permitir que arquivos .phps sejam interpretados pelo filtro de fontes do PHP e
exibidos como código fonte destacado, utilize isso:
mod_rewrite pode ser utilizado para permitir que qualquer arquivo .php seja exibido
como código fonte destacado, sem ter de renomear ou copiar arquivos
para a extensão .phps, assim:
O filtro de fontes PHP não deve ser ativado em ambiente de produção, onde
ele pode expor dados confidenciais ou de outra forma importantes, que estejam
incluídos no código fonte.
-
Depois utilize a forma normal de iniciar o servidor Apache:
ou
Seguindo os passos acima você terá um Apache2 rodando com
suporte ao PHP como um módulo SAPI
. Existem muitas outras
opções de configuração disponíveis no Apache e PHP. Para mais
informações rode ./configure --help na código
fonte correspondente.
Apache pode ser construído com multithread através da seleção do MPM
worker, em vez do padrão MPM
prefork. Isso é possível
acrescentado-se o seguinte argumento no ./configure do
passo 3 acima:
Isso não deve ser feito sem conhecer as consequências
dessa decisão, ou pelo menos ter uma boa noção de
suas implicações. A documentação do Apache
sobre » MPM-Modules
discute essas questões em grandes detalhes.
Nota:
A Apache MultiViews
FAQ discute multiviews com o PHP.
Nota:
Para construir uma versão multithread o sistema destino precisa suportar threads.
Nesse caso o PHP também deve ser compilado com o Zend Thread Safety (ZTS).
Nessa 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.