Manual do PHP
Anterior |  | Próxima

# Capítulo 4. Instalação em sistemas Unix

Essa seção é um guia geral para configuração e instalação do PHP em sistemas Unix. Verifique se existe uma seção específica para usa plataforma ou servidor web antes de começar o processo.

Como nosso manual destaca na seção Considerações Gerais sobre Instalação, nós estamos lidando principalmente com configurações web do PHP nessa seção, embora cobriremos instalação do PHP para uso em linha de comando também.

Existem várias maneiras de instalar o PHP para a plataforma Unix, ou com um processo de compilar e configurar, ou atráves de vários métodos pré-empacotados. Essa documentação é focada principalmente no processo de compilação e configuração do PHP. Muitos sistemas baseados no Unix tem alguma forma de sistema de instalação de pacotes. Isso pode ajudar na instalação de uma configuração padrão, mas se você precisar ter uma série de características diferentes (como um servidor seguro, ou um driver de banco de dados diferente), você pode precisar montar o PHP e/ou servidor web. Se você não estiver familiarizado com o processo de montar e compilar seu próprio software, vale a pena checar se alguém já montou um pacote do PHP com as características que você precisa.

Pre-requisitos de software e de conhecimento para compilar:

- Conhecimento básico de Unix (ser capaz de operar o "make" e um compilador C)

- Um compilador ANSI C

- flex: Versão 2.5.4

- bison: Versão 1.28 (preferida), 1.35, ou 1.75

- Um servidor web

- Qualquer componentes específicos para os módulos (como gd, bibliotecas pdf, etc.)

O processo inicial de configuração de instalação do PHP é controlado pelo uso de opções de linha de comando do script configure. Você pode pegar a lista de todas as opções disponíveis junto com uma pequena explicação executando o comando ./configure --help. Nosso manual documenta as diferentes opções separadamente. Você encontrará as opções principais no apêndice, enquanto as opções específicas das diferentes extensões são descritas nas páginas de referência.

Quando o PHP é configurado, você está pronto para montá-lo como módulo e/ou executável. O comando make deve tomar conta disso. Se ele falhar e você não conseguir descobrir a razão, veja a Seção de Problemas.

# Apache 1.3.x em sistemas Unix

Essa seção contem notas e dicas específicas para a instação do Apache e do PHP em plataformas Unix. Também temos instruções e notas para o Apache 2 em uma página separada.

Você pode selecionar argumentos para adicionar ao configure na linha 10 abaixo através da Lista completa de opções do configure e das opções específicas das extensões em seus respectivos lugares no manual. 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 4-1. Instruções de Instalação (Apache Versão de Módulo Compartilhado) para PHP
    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 que você personaliza seu PHP
        com várias opções, como quais extensões serão habilitadas. Execute o
        comando ./configure --help para uma lista das opções disponíveis. No nosso exemplo
        nós faremos uma simples configuração com Apache 1 e suporte ao MySQL. Seu caminho
        para o arquivo apxs pode ser diferente do exemplo.

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

        Note que, por padrão, 'make install' também instalará PEAR, além
        de várias ferramentas do PHP como phpize, instalar o CLI do PHP e mais.

    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 ao invés de escolher o arquivo php.ini-dist, você escolher o arquivo php.ini-recommended,
        leia a lista de mudanças dentro do mesmo, uma vez que elas afetam a maneira como o PHP se comporta.

    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 no 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 o PHP 4:

          LoadModule php4_module libexec/libphp4.so

        Para o PHP 5:

          LoadModule php5_module libexec/libphp5.so

    15. Em seguida, na seção AddModule do arquivo httpd.conf, em algum lugar
        abaixo de ClearModuleList, adicione isto:

        Para o PHP 4:

          AddModule mod_php4.c

        Para o PHP 5:

          AddModule mod_php5.c

    16. Diga ao Apache para avaliar certas extensões como PHP. Por exemplo,
        vamos fazer o Apache interpretar a extensão .php como um script PHP. Você poderia
        ter qualquer extensão(ões) avaliadas como PHP simplesmente adicionando-as, com
        cada uma separada por um espaço. Vamos adicionar .phtml para demonstrar.

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

        Também é comum configurar a extensão .phps para mostrar o código-fonte
        do script PHP com highlight, isso pode ser feito com:

          AddType application/x-httpd-php-source .phps

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

Outra maneira é instalar o PHP como um objeto estático:

Exemplo 4-2. Instruções de Instalação (Instalação como módulo estático do Apache) para o PHP
    1.  gunzip -c apache_1.3.x.tar.gz | tar xf -
    2.  cd apache_1.3.x
    3.  ./configure
    4.  cd ..

    5.  gunzip -c php-4.x.y.tar.gz | tar xf -
    6.  cd php-4.x.y
    7.  ./configure --with-mysql --with-apache=../apache_1.3.x
    8.  make
    9.  make install

    10. cd ../apache_1.3.x

    11. ./configure --prefix=/www --activate-module=src/modules/php4/libphp4.a
        (A linha acima está correta! Sim, sabemos que libphp4.a não existe nesse
        estágio. E nem deveria. Ele será criado.)

    12. make
        (você deve agora ter um binário httpd que você pode copiar para o diretório bin do Apache. Se
        for sua primeira instalação então você precisa executar "make install" também)

    13. cd ../php-4.x.y
    14. cp php.ini-dist /usr/local/lib/php.ini

    15. Você pode editar o arquivo /usr/local/lib/php.ini para editar as opçso do PHP.
        Edite o seu arquivo httpd.conf ou srm.conf e adicione:
        AddType application/x-httpd-php .php

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 4-3. Exemplo de comandos para reinicialização do Servidor Apache
    1. Várias distribuições Linux e variantes do SysV:
    /etc/rc.d/init.d/httpd restart

    2. Usando os scripts apachectl:
    /path/to/apachectl stop
    /path/to/apachectl start

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

    4. Usando mod_ssl, ou outro servidor SSL, você pode querer iniciar
    ou reiniciar manualmente:
    /path/to/apachectl stop
    /path/to/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=/path/to/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=/path/to/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.

Anterior | Principal | Próxima
Considerações Gerais sobre Instalação | Acima | Apache 2.0 em sistemas Unix