Servidores-Apache

Esta seção contém notas, dicas e instruções específicas para instalações do PHP em Apache, tanto para versões Unix quanto para Windows. Nós também temos instruções, dicas e notas para Apache 2 numa página separada.

Detalhes ao instalar o PHP com Apache no Unix

Você pode selecionar argumentos para adicionar ao configure na linha 10 abaixo através da Lista completa de opções do configure . Os números de versões foram omitidos aqui, para assegurar que as instruções não estejam incorretas. Você deverá trocar o 'xxx' aqui com os valores corretos dos seus arquivos.

Exemplo 3-4. Instruções de Instalação (Apache Versão de Módulo Compartilhado) para PHP 4

1.  gunzip apache_xxx.tar.gz
2.  tar -xvf apache_xxx.tar
3.  gunzip php-xxx.tar.gz
4.  tar -xvf php-xxx.tar
5.  cd apache_xxx
6.  ./configure --prefix=/www --enable-module=so
7.  make
8.  make install
9.  cd ../php-xxx
10. Agora, configure o seu PHP.
    Aqui é quando você entra na fase de customização do seu PHP,
    com várias opções, tais como quais extensões serão habilitadas.
    Execute o comando ./configure --help para uma lista das opções disponíveis.
    Em nosso exemplo, nós faremos uma simples configuração (./configure) com Apache 1 e suporte ao MySQL.

    Seu caminho ao binário apxs (Apache) pode variar de nosso exemplo abaixo:

    ./configure --with-mysql --with-apxs=/www/bin/apxs

11. make
12. make install

  Se você decidir mudar as opções de seu configure depois da instalação
  você precisará somente repetir os últimos 3 passos. Você somente precisará
  reiniciar o apache para o novo módulo funcionar. Não será necessário recompilar
  o Apache.

13. Configurando seu arquivo php.ini:

  cp php.ini-dist /usr/local/lib/php.ini

  Você pode editar o seu arquivo .ini para configurar as opções do PHP.  Se
  você preferir que este arquivo fique em outro lugar, use a opção
  --with-config-file-path=/caminho no passo 10.

  Se por acaso em vez de optar pelo php.ini-dist, optar pelo php.ini-recommended, esteja
  certo de ler a lista de mudanças ocorridas, pois elas podem afetar o modo como o PHP se comportará.

14. Edite o seu arquivo httpd.conf para carregar o módulo do PHP. O caminho no lado direito
  do comando LoadModule deve apontar para para o caminho do módulo PHP do seu sistema.
  
  O comando (make install) acima já deve ter adicionado estas linhas, mas tenha certeza
  de que as linhas abaixo foram adicionadas ao arquivo.

  Para PHP 4:

  LoadModule php4_module        libexec/libphp4.so

  Para PHP 5:

  LoadModule php5_module        libexec/libphp5.so

15. Em seguida, na seção AddModule do arquivo httpd.conf, adicione isto:

  Para PHP 4:

  AddModule mod_php4.c

  Para PHP 5:

  AddModule mod_php5.c

16. Configure no Apache a interpretação de certas extensões de arquivo como PHP.

      Por exemplo, vamos configurar o Apache que ele interprete as extensões .php
    como PHP. Você pode ter qualquer extensão interpretada como PHP simplesmente adicionando
    algumas outras extensões de arquivo, cada uma separada por um espaço.
    Nós iremos adicionar a extensão .phtml apenas para demonstrar.

    AddType application/x-httpd-php .php .phtml

      Você pode escolher qualquer extensão aqui. A extensão .php é simplesmente uma sugestão
    que nós damos. Você também pode incluir .html, e .php3 pode ser adicionado para 
    compatibilidade com versões antigas.

      É comum também configurar no Apache a extensão de arquivo .phps para mostrar os códigos
    fonte formatados de maneira colorida, isto pode ser feito assim:

    AddType application/x-httpd-php-source .phps
 
    <note>
    <simpara>
    SUGESTÃO:

    Coloque esta linha abaixo do comando AddModule descrito acima, isto facilita a sua remoção
    posterior e organiza seu arquivo de configuração do Apache.
    </simpara>
    </note>

17. Use seu procedimento normal para iniciar o servidor Apache. (Você deve
    parar e reiniciar o servidor, não somente fazer um reinício enviando
    um sinal HUP ou USR1.)

Dependendo da sua instalação do Apache e das variações Unix, existem inúmeras maneiras possíveis de parar e reiniciar o servidor. Abaixo estão algumas linhas típicas usadas para reiniciar e o servidor, para instalações de versões de apache/unix. Você deve trocar /caminho/para/ pelo caminho destas aplicações nos seus sistemas.

Exemplo 3-5. Exemplo de comandos para reinicialização do Servidor Apache

1. Inúmeras variações de sistemas Linux:
         /etc/rc.d/init.d/httpd restart

         2. Usando os scripts apachectl:
         /caminho/para/apachectl stop
         /caminho/para/apachectl start

         3. httpdctl and httpsdctl (Usando OpenSSL), igual ao apachectl:
         /caminho/para/httpsdctl stop
         /caminho/para/httpsdctl start

         4. Usando mod_ssl, ou outro servidor SSL, você pode querer iniciar
         ou reiniciar manualmente:
         /caminho/para/apachectl stop
         /caminho/para/apachectl startssl

As localizações dos binários apachectl e http(s)dctl geralmente variam. Se o seu sistema tem os comandos locate ou whereis ou which, estem podem lhe ajudar a encontrar os programas de controle do servidor.

Exemplos diferentes de compilação do PHP para apache estão a seguir:

./configure --with-apxs --with-pgsql

Isto irá criar uma biblioteca compartilhada libphp4.so que é carregada com o Apache usando uma linha LoadModule no arquivo httpd.conf do Apache. O suporte ao PostgreSQL está embutido dentro da biblioteca compartilhada libphp4.so.

./configure --with-apxs --with-pgsql=shared

Isto irá criar uma biblioteca compartilhada libphp4.so para o Apache, mas isto também criará uma biblioteca compartilhada pgsql.so que é carregada com o PHP tanto ao usar a diretiva de extensão no arquivo php.ini ou então carregando ela explícitamente no script usando a função dl().

./configure --with-apache=/caminho/para/apache_source --with-pgsql

Isto irá criar uma biblioteca libmodphp4.a, o arquivo mod_php4.c e vários arquivos dependentes e copiará eles para o diretório src/modules/php4 na árvore de diretório do código fonte do Apache. Então você compilará o Apache usando a opção --activate-module=src/modules/php4/libphp4.a e o sistema de compilação do Apache irá criar o arquivo libphp4.a e fará um link estático dentro do binário httpd. O suporte ao PostgreSQL estará incluído diretamente neste binário httpd, então o resultado final aqui será um único arquivo binário httpd que incluirá tudo do Apache e tudo do PHP.

./configure --with-apache=/caminho/para/apache_source --with-pgsql=shared

Mesmo que o anterior, exceto em vez de incluir o suporte ao PostgreSQL diretamente no binário httpd você terá uma biblioteca compartilhada pgsql.so que você poderá carregar com o PHP tanto do arquivo php.ini ou diretamente usando a função dl().

Quanto estiver decidindo compilar o PHP com maneiras diferentes, você deverá considerar as vantages e disvantagens de cada método. Complilando como uma biblioteca compartilhada significará que você poderá compilar o apache separadamente, e não terá que recompilar tudo quando quiser adicionar ou mudar o seu PHP. compilando o PHP dentro do apache (método estático) significará que o PHP irá carregar e rodar rapidamente. Para maiores informações, veja a página web do Apache que fala sobre Suporte a Objetos Dinâmicos Compartilhados.

Nota: O arquivo httpd.conf padrão do Apache atualmente já contém uma seção que se parece com isso:

User nobody
Group "#-1"

A menos que você mude isto para "Group nogroup" ou algo assim ("Group daemon" é também muito comum) o PHP não estará apto a abrir arquivos.

Nota: Tenha certeza de especificar a versão instalada do apxs quando usar a opção --with-apxs=/caminho/para/apxs. Você NÂO deverá usar a versão do apxs que está nos fontes do apache e sim a que está atualmente instalada no seu sistema.

Instalando o PHP em Windows com Apache 1.3.x

Existem duas maneiras de configurar o PHP para funcionar com o Apache 1.3.x em Windows. Uma é usando o binário CGI (php.exe), a outra é usando a bliblioteca compartilhada (DLL) como módulo para o Apache (SAPI). Nos dois casos você precisará parar o Servidor Apache, e editar seu arquivo httpd.conf para configurar o Apache para funcionar com o PHP.

Vale deixar claro aqui que agora o módulo SAPI tornou-se muito mais estável no Windows, nós recomendamos o seu uso em vez do binário CGI, por ele ser mais transparente e seguro.

Embora possa ter algumas variações de configurar o PHP com Apache, elas são fáceis suficientemente para ser feitas por um usuário sem experiência. Por favor consulte os Documentos do Apache para maiores diretivas de configuração.

Se você descompactou o pacote do PHP para c:\php\ como descrito na seção Passos de Instalação Manual, você precisará inserir estas linhas no seu arquivo de configuração do Apache para configurar o binário CGI:

Note que a segunda linha na lista acima pode ser encontrada em versões atuais do arquivo httpd.conf, mas elas estão comentadas. Lembre-se também de trocar o caminho c:/php/ pelo caminho atual do PHP instalado em seu sistema.

Atenção

Usando a configuração do binário CGI, o seu servidor está aberto a vários tipos possívels de ataque. Por favor leia nossa seção Segurança em CGI para aprender como defender-se de ataques.

Se você preferir usar o PHP como um módulo no Apache, esteja certo de mover o arquivo php4ts.dll para o diretório windows/system (em Windows 9x/Me) ou winnt/system32 (para Windows NT/2000/XP), sobrescrevendo qualquer arquivo antigo. Então você deverá adicionar as duas linhas a seguir em seu arquivo de configuração do Apache (httpd.conf):

Após mudar o arquivo de configuração, lembre-se de reiniciar o servidor, por exemplo, NET STOP APACHE seguido por NET START APACHE, se você roda o Apache como um Serviço Windows, ou use os atalhos comuns no menu iniciar.

Existem duas maneiras para você poder usar a função de destaque de códigos fonte, contudo dependerá da maneira de sua instalação para esta função funcionar corretamente. Se você configurou o Apache para usar o PHP como um módulo SAPI, então adicionando a seguinte linha ao seu arquivo de configuração (httpd.conf) você poderá usar esta função: AddType application/x-httpd-php-source .phps abaixo da posição em que definiu a linha AddType application/x-httpd-php .php, veja mais acima).

Se você escolher configurar o Apache para usar o PHP como um binário CGI, você precisará usar a função show_source(). Para fazer isto simplesmente crie um arquivo de script PHP e adicione este código: <?php show_source ("php_original_script.php"); ?>. Troque php_original_script.php pelo nome do arquivo que você quer que seja mostrado o código fonte.

Nota: No Apache em Windows todas as barras invertidas em uma definição de caminho como descrito aqui "c:\diretorio\arquivo.ext", devem ser convertidas para barras normais, como descrito aqui "c:/diretorio/arquivo.ext".