FAQ
PHP Manual

Instalação

Esta seção contem perguntas comuns na maneira de como instalar o PHP. PHP é aceito em vários Sistemas Operacionais (Talvez exceto para MacOS antes OSX), e varios servidores Web.

Para instalar o PHP, Siga as instruções no Instalação e Configuração.

  1. Por que não deve usar o Apache2 com uma tarefa MPM em um ambiente de produção?
  2. Unix/Windows: Onde deveria estar localizado meu arquivo php.ini?
  3. Unix: Eu instalei o PHP, mas toda vez que carrego um documento, recebo a menssagem 'Document Contains No Data'! Oque está acontecendo aqui?
  4. Unix: Eu instalei o PHP usando RPMS, mas o Apache não esta processando as páginas PHP! Oque esta acontecendo aqui?
  5. Unix: Eu arrumei o Apche com os patch de extensões FrontPage, e repentinamente parar o trabalho no PHP. PHP é imcompátivel com as extensões Apache FrontPage?
  6. Unix/Windows: Eu tenho instalado o PHP, mas quando eu tento acessar um arquivo de script PHP através de meu browser, Eu recebo uma tela em branco.
  7. Unix/Windows: Eu tenho instalado o PHP, mas quando tento acessar um arquivo script do PHP através do meu browser, Eu recebo um erro do servidor 500.
  8. Alguns sistemas operacionais: Eu isntalei o PHP sem erro, mas qunado eu tento iniciar o Apache recebo um erro de simbolo indefinido: [mybox:user /src/php4] root# apachectl configtest apachectl: /usr/local/apache/bin/httpd simbolo indefinido: _compress _uncompress
  9. Windows: Eu instalei o PHP, mas quando tento acessar um arquivo script do PHP através do meu browser, Eu recebo um erro: erro cgi: O aplicativo CGI especifica não esta retornando um conjunto completo de cabeçallhos HTTP. O cabeçalho está devolvendo:
  10. Windows: Eu segui todas as instruções, mas ainda não consegui fazer o PHP e o IIS trabalharem juntos!
  11. Quando executo PHP em CGI com IIS, PWS, OmniHTTPD ou Xitami, recebo em seguida um erro : Security Alert! PHP CGI não pode ser acessado diretamente..
  12. Como eu sei se meu php.ini esta sendo encontrado e lido? Parece que ele não é como as minhas alterações que não estão sendo implementadas.
  13. Como eu adiciono meu diretório PHP no PATH do Windows?
  14. Como eu faço para o arquivo php.ini ficar disponível para o PHP no windows?
  15. É possivel usar o Apache contendo negociaçao (opação MultiViews) com PHP?
  16. PHP é limitado os processos GET e POST pedido único de metódos?
Por que não deve usar o Apache2 com uma tarefa MPM em um ambiente de produção?

PHP é cola. É a cola usada para construir legais aplicações web pegando dezenas de partes de 3 bibliotecas juntas e fazendo tudo aparecer como uma entidade coerente através de um intuitivo e fácil de aprender a língua de interface. A flexibilidade e poder do PHP traz estabilidade e robustez da plataforma subjacente. Ele precisa estar trabalhdno em um SO, trabalhando em um servidor web and trabalhando com as 3 partes da biblioteca juntas. Quando algum deles para de trabalhar o PHP precisa indentificar os problemas e arruma-los rapidamente. Quando você faz uma estrutura subjacente mais complexa não havendo completamente separado a execução das tarefas, separe completamente os seguimentos de memória e uma caixa de areia forte para cada solicitação para jogar, pés de argila são introduzidos no sistema PHP.

Se você sentir que deve usar a threaded MPM, Olhe na configuração FastCGI onde o PHP está sendo executado em um espaço de memória.

E finalmente, esta advertência contra a utilização de uma tarefa MPM não é tão forte para Sistemas Windows, porque a maioria das bibliotecas naquela plataforma tendem a ser uma tarefa.

Unix/Windows: Onde deveria estar localizado meu arquivo php.ini?

Por padrão no Unix deve estar no /usr/local/lib Que é o <install-path>/lib. Maioria das pessoas vão quere mudar isso no tempo de compilação com o --with-config-file-path flag. Você poderia, por exemplo, adicionar algo como:

--with-config-file-path=/etc
E então voce poderia copiar php.ini-development para a distribuição do /etc/php.ini e editá-lo para fazer quaisquer alterações locais que você deseja.

--with-config-file-scan-dir=PATH

No Windows o caminho padrão para o arquivo php.ini é o diretório do Windows. Se você estiver usando o servidor web Apache, php.ini encontre primeiro onde esta instalado o diretório do Apache, e.g. c:\arquivos de programa\apache group\apache. Este caminho você pode te-lo diferente php.ini arquivos de diferentes versões do Apache na mesma máquina.

Olhe também o capítulo sobre a configuração do arquivo.

Unix: Eu instalei o PHP, mas toda vez que carrego um documento, recebo a menssagem 'Document Contains No Data'! Oque está acontecendo aqui?

Isso provavelmente significa que o PHP está tendo algum tipo de problema e é core-dumping. olhe no seu erro de log do servidor para ver se este é o caso, e tente reproduzir o problema com um pequeno caso teste. Se você souber como usar 'gdb', é muito útil quando você pode fornecer um backtrace com seu relatório de erro para ajudar os desenvolvedores a indentificar o problema. Se você esta usando o PHP como um módulo do Apache tentar algo como:

  • Pare seus processos httpd

  • gdb httpd

  • Pare seus processos httpd

  • > execute -X -f /path/to/httpd.conf

  • Então busque a URL que esta causando problemas com seu browser.

  • > execute -X -f /path/to/httpd.conf

  • Se você está recebendo um despejo de núcleo, o gdb deverá informá-lo sobre isso agora

  • type: bt

  • Você deve incluir o seu backtrace no seu relatório. Você deveria enviar para » http://bugs.php.net/

Se o seu script usa as funções de expressões regulares (preg_match() e amigos), você deve ter certeza que compilou PHP e Apache com o pacote de mesma expressão regular. Isso deve acontecer automaticamente com o PHP e Apache 1.3.x

Unix: Eu instalei o PHP usando RPMS, mas o Apache não esta processando as páginas PHP! Oque esta acontecendo aqui?

Supondo que você instalou o Apache e PHP, tanto a partir dos pacotes RPM, você precisa descomentar ou adicionar algumas ou todas as seguintes linhas em seu arquivo httpd.conf:

# Módulos extra
AddModule mod_php.c
AddModule mod_php.c
AddModule mod_perl.c

# Módulos extra
LoadModule php_module         modules/mod_php.so
LoadModule php5_module        modules/libphp5.so     # for PHP 5
LoadModule perl_module        modules/libperl.so
E adicione:
AddType application/x-httpd-php .php
... para as propriedades globais, ou para as propriedades do VirtualDomain você deseja ter suporte PHP adicionado.

Unix: Eu arrumei o Apche com os patch de extensões FrontPage, e repentinamente parar o trabalho no PHP. PHP é imcompátivel com as extensões Apache FrontPage?

Não, PHP trabalha bem com as extensões FrontPage. O problema é que o patch do FrontPage modifica diversas estruturas Apache, que se baseia em PHP. Recopile o PHP (usando 'make clean ; make') depois do patch PF aplicado resolveria o problema.

Unix/Windows: Eu tenho instalado o PHP, mas quando eu tento acessar um arquivo de script PHP através de meu browser, Eu recebo uma tela em branco.

Faça um "view source" no navegador da web e provavelmente você vai achar que você pode ver o código fonte do seu script PHP. Isto significa que o servidor web não enviou o script PHP para interpretação. Algo está errado com a configuração do servidor - verifique a configuração do servidor contra as instruções de instalação do PHP.

Unix/Windows: Eu tenho instalado o PHP, mas quando tento acessar um arquivo script do PHP através do meu browser, Eu recebo um erro do servidor 500.

Alguma coisa correu mal quando o servidor tentou executar PHP. Para começar a ver uma mensagem de erro razoável, na linha de comando, mude para o diretório que contém o executável do PHP (php.exe no Windows) e executar php -i. Se o PHP tem algum problema na execução, então uma mensagem adequada será exibida oque lhe dará uma idéia do que precisa ser feitoem seguida. Se você receber uma tela cheia de códigos HTML (a saída da função phpinfo()) então o PHP esta funcionando, e seu problema pode ser relatado para a configuração do seu servidor que você deve verificar novamente.

Alguns sistemas operacionais: Eu isntalei o PHP sem erro, mas qunado eu tento iniciar o Apache recebo um erro de simbolo indefinido:
[mybox:user /src/php4] root# apachectl configtest
 apachectl: /usr/local/apache/bin/httpd simbolo indefinido:
  _compress
  _uncompress

Isto não tem nada a vê com o PHP, mas com as bibliotecas do cliente MySQL. Algumas necessidade --with-zlib , outras não. Esta é tambem abrangida pelo FAQ MySQL.

Windows: Eu instalei o PHP, mas quando tento acessar um arquivo script do PHP através do meu browser, Eu recebo um erro:

erro cgi:
O aplicativo CGI especifica não esta
retornando um conjunto completo de cabeçallhos HTTP.
O cabeçalho está devolvendo:

Está mensagem de erro significa que o PHP falhou na saida de algo. Para começar a ver uma mensagem de erro sensata, para a linha de comando, mude para o diretório que tem o executável PHP (php.exe no Windows) e executar php -i. Se o PHP tem algum problema na execução, em seguida, uma mensagem de erro adequada será exibida o que lhe dará uma idéia do que precisa ser feito em seguida. SE você reeber uma tela cheia de códigos HTML (a saída da função phpinfo() ) então o PHP esta funcionando.

Uma vez que o PHP está trabalhando na linha do comando, tente acessar o script via navegador novamente. Se ele falhar ainda então pode ser um dos seguintes:

  • Premissões de arquivo no seu script PHP, php.exe, php4ts.dll, php.ini ou todas as extensões do PHP que você esta tentando carregar são tais que um usuário anônimo nao pode acessar ISUR_<machinename>.
  • O arquivo script não existe (ou, eventualmente, não é onde você pensa que é relativo ao diretório raiz da web). Observe que para o IIS você pode interceptar este erro, assinalando 'Check File exists' caixa ao configurar os mapeamentos de script no Internet Services Manager. Se um arquivo file não existir então o servidor retornará um erro 404 instantâneo. Existe também um benefício adicinal que o IIS irá fazer qualquer autenticação requerida para você com base nas permissões NTLanMan no seu arquivo script.
Windows: Eu segui todas as instruções, mas ainda não consegui fazer o PHP e o IIS trabalharem juntos!

Certifique-se de qualquer usuário que precisa para executar um script PHP tem o direito de executar php.exe! O IIS usa um usuário anônimo que é adicionado no momento do IIS está instalado. Este usuário precisa de direitos do php.exe. Também, qualquer usuário autenticado também terá direito a executar php.exe. e para IIS4 você precisa dizer ao PHP que é um mecanismo script. também, você vai querer ler: este faq.

Quando executo PHP em CGI com IIS, PWS, OmniHTTPD ou Xitami, recebo em seguida um erro : Security Alert! PHP CGI não pode ser acessado diretamente..

Você deve definir cgi.force_redirect directiva para 0. É padrão para 1 isso certifique-se a directiva não é comentada ;). Como todas as directivas, isso é definido no php.ini

Porque o padrão é 1, é fundamental que você está 100% certo que o correto arquivo php.ini esta sendo lido. Leia este faq para detalhes.

Como eu sei se meu php.ini esta sendo encontrado e lido? Parece que ele não é como as minhas alterações que não estão sendo implementadas.

Para ser certo que seu php.ini esta sendo lido pelo PHP, fazer uma chamada para phpinfo(). Perto do topo, Haverá um anucio lá Configuration File (php.ini). Isto irá dizer-lhe onde o PHP está procurando php.ini e existe ou não esta sendo lido. Se apenas um diretório do PATH existe, então não está sendo lido, e você deveria colocar seu php.ini no diretório. se php.ini está incluso dentro do PATH, ele está sendo lido.

Se php.ini está sendo lide e seu PHP esta executando um modulo, em seguida, certifique-se de reiniciar seu servidor web depois de fazer alterações. php.ini

Olhe também php_ini_loaded_file().

Como eu adiciono meu diretório PHP no PATH do Windows?

No Windows NT, 2000, XP e 2003:

  • Vá até o Panel de Controle e abra o ícone Sisteman (Iniciar -> Configurações -> Painel de Controle -> Sistema, ou apenas Iniciar -> Painel de Controle -> Sistema para Windows XP/2003)

  • Vá até a aba avaçado

  • Clique no botão "Variáveis de Ambiente"

  • Olhe dentro do painel as 'Variavies do Sistema'

  • Encontre a entrada do Path (Talvez você precise do scroll para encontrar)

  • Dê um duplo clique para entrar no Path

  • Digite o diretório do seu PHP e no fim , incluindo ';' antes (e.g. ;C:\php)

  • Aperte OK e reinicie seu computador

No Windows 98/Me você precisa editar o arquivo autoexec.bat:

  • Abra o bloco de notas (Iniciar -> Executar e digite notepad)

  • Abra o arquivo C:\autoexec.bat

  • Localize a linha com PATH=C:\WINDOWS;C:\WINDOWS\COMMAND;..... e adicione: ;C:\php no final desta linha

  • Salve o arquivo e reinicie seu computador

Nota: Certifique-se de reiniciar depois de seguir os passos acima para garantir que as alterações serão aplicadas PATH.

O manual do PHP usado para promover a cópia de arquivos para o diretório do sistema do Windows, é porque o diretório (C:\Windows, C:\WINNT, etc.) está por padrão dentro do PATH do sistema. Copiando os arquivos apra dentro do diretório do sistema do Windowns tem uma substituição e pode causar problemas.

Como eu faço para o arquivo php.ini ficar disponível para o PHP no windows?

Existem várias maneiras de fazer isso. Se você usa o Apache, ler suas instruções específicas de instalação (Apache 1, Apache 2), caso contrário você deve definir a variavel ambente PHPRC:

No Windows NT, 2000, XP e 2003:

  • Vá em Painel de Controle e abra o icone Sistema (Iniciar -> Configurações -> Painel de Controle -> Sistema, ou apenas Iniciar -> Painel de Controle -> Sistema para Windows XP/2003)

  • Vá na aba Avançado

  • Clique no botão "Variáveis de Ambiente"

  • Olhe dentro do painel 'Variaveis do Sistema'

  • Clique em 'Novo' e digite 'PHPRC' como nome da variavel e o diretório onde php.ini está localizado como o valor da variavel (e.g. C:\php)

  • Dê um OK e reinicie o computador

No Windows 98/Me você precisa editar o arquivo autoexec.bat:

  • Abra no bloco de notas (Iniciar -> Executar e digite notepad)

  • Abra o arquivo C:\autoexec.bat

  • Adicione uma nova linha no final no arquivo: set PHPRC=C:\php (substituir C:\php com o diretório onde php.ini esta localizado).Preste atenção o path não pode conter espaço. Por exemplo, Se você tem instalado o PHP no C:\Program Files\PHP, você entraria C:\PROGRA~1\PHP em vez disso.

  • Salve o arquivo e reinicie o computador

É possivel usar o Apache contendo negociaçao (opação MultiViews) com PHP?

Se os links para arquivos incluem a extensão PHP, tudo trabalhará perfeito. Este FAQ é apenas para o caso em links para arquivos PHP não incluem a extensão e você quiser usar negociação de conteúdo para escolher os arquivos PHP de URL com nenhuma extensão. Neste caso, substitua a linha AddType application/x-httpd-php .php com:

# PHP 4
AddHandler php-script php
AddType text/html php

# PHP 5
AddHandler php5-script php
AddType text/html php
Esta solução não funciona para o Apache 1, módulo PHP não pega php-script.

PHP é limitado os processos GET e POST pedido único de metódos?

Não, é possível lidar com qualquer método de requisição, e.g. CONNECT. Status de resposta adequada pode ser enviado com header(). If only GET and POST methods should be handled, Se apenas métodos GET e POST deve ser tratado, ele pode ser alcançado com esta configuração do Apache:

<LimitExcept GET POST>
Deny from all
</LimitExcept>


FAQ
PHP Manual