Manual do PHP
Anterior | Capítulo 3. Instalação | Próxima

# 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:

- `ScriptAlias /php/ "c:/php/"`

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

- `Action application/x-httpd-php "/php/php.exe"`

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`):

- Abra o arquivo `httpd.conf` com seu editor de textos preferido e localize a diretriz `LoadModule` e adicione a seguinte linha no final da lista para o PHP 4: `LoadModule php4_module "c:/php/sapi/php4apache.dll"` ou a seguinte linha para o PHP 5: `LoadModule php5_module "c:/php/sapi/php5apache.dll"`

- Você pode descobrir que após ter instalado o Apache com o Windows installer que é necessário definir a diretriz para `mod_php4.c`. Isto é especialmente importante se a diretriz `ClearModuleList` estiver definida, na qual você irá descobrir algumas linhas abaixo. Você verá uma lista de entradas `AddModule`, adicione a seguinte linha no final da lista: `AddModule mod_php4.c` para PHP 4 e para PHP 5 mude para `AddModule mod_php5.c`

- Procure por uma frase igual a `AddType`, então adcione a seguinte linha no final da lista: `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.

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".

Anterior | Principal | Próxima
Servers-CGI/Commandline | Acima | Servers-Apache 2.0