array ( 0 => 'index.php', 1 => 'PHP Manual', ), 'head' => array ( 0 => 'UTF-8', 1 => 'pt_BR', ), 'this' => array ( 0 => 'faq.installation.php', 1 => 'Instalação', ), 'up' => array ( 0 => 'faq.php', 1 => 'FAQ', ), 'prev' => array ( 0 => 'faq.databases.php', 1 => 'Questões sobre banco de dados', ), 'next' => array ( 0 => 'faq.build.php', 1 => 'Problemas de Compilação', ), 'alternatives' => array ( ), 'source' => array ( 'lang' => 'pt_BR', 'path' => 'faq/installation.xml', ), ); $setup["toc"] = $TOC; $setup["toc_deprecated"] = $TOC_DEPRECATED; $setup["parents"] = $PARENTS; manual_setup($setup); ?>
Esta seção contém perguntas comuns sobre a maneira de instalar o PHP. O PHP está disponível para quase todos os sistemas operacionais, e praticamente qualquer servidor web.
Para instalar o PHP, siga as instruções em Instalação e Configuração.
O PHP é como uma cola. É a cola usada para construir aplicações web legais unindo dezenas de bibliotecas de terceiros e fazendo tudo aparecer como uma entidade coerente através de uma interface de linguagem intuitiva e fácil de aprender. A flexibilidade e poder do PHP dependem da estabilidade e robustez da plataforma subjacente. Ele precisa de um sistema operacional funcionando, um servidor web funcionando e bibliotecas de terceiros funcionando para juntar. Quando qualquer um desses elementos pára de funcionar o PHP precisa de meios de identificar e remediar os problemas rapidamente. Quando tornamos a arquitetura subjacente mais complexa por não ter threads de execução completamente separadas, segmentos de memória completamente separados e uma sandbox sólida na qual executar cada requisição, mais problemas são introduzidos ao sistema do PHP.
Se quiser utilizar um módulo MPM com threads, veja uma configuração FastCGI onde o PHP seja executado em seu próprio espaço de memória.
Por padrão no Unix ele deve estar em /usr/local/lib que é o <install-path>/lib. A maioria das pessoas vai querer mudar isso em tempo de compilação com a flag --with-config-file-path. Poderíamos, por exemplo, configurá-la com algo como:
--with-config-file-path=/etc
--with-config-file-scan-dir=PATH
No Windows, o caminho padrão para o arquivo php.ini é o diretório Windows. Se estivermos usando o servidor web Apache, o php.ini primeiro é procurado no diretório de instalação do Apache, por exemplo, c:\program files\apache group\apache. Desta maneira, poderíamos ter diferentes arquivos php.ini para diferentes versões do Apache na mesma máquina.
Veja também o capítulo sobre o arquivo de configuração.
Isso provavelmente significa que o PHP está tendo algum tipo de problema e está sofrendo um core dump (fim com despejo de memória). Olhe nos logs de erro do servidor web para ver se este é o caso, e então tente reproduzir o problema com um pequeno caso de teste. Se você souber como usar 'gdb', é muito útil quando você pode fornecer um backtrace com seu relatório de erros para ajudar os desenvolvedores a identificar o problema. Se estiver usando o PHP como um módulo do Apache tente algo como:
Pare seus processos httpd
gdb httpd
Pare seus processos httpd
> execute -X -f /caminho/para/httpd.conf
Então acesse o URL que está causando problemas com seu browser.
> execute -X -f /caminho/para/httpd.conf
Se estiver ocorrendo um core dump, o gdb deverá informar sobre isso agora
type: bt
Você deve incluir o backtrace no seu relatório de erros. Envie o relatório para » https://github.com/php/php-src/issues
Se o seu script usa as funções de expressões regulares ( preg_match() e demais), você deve ter certeza de que compilou o PHP e o Apache com a mesma versão do pacote de expressões regulares. Isso deve acontecer automaticamente com o PHP e Apache 1.3.x.
Supondo que você instalou tanto o Apache quanto o PHP a partir dos pacotes RPM, você precisa descomentar ou adicionar algumas ou todas as linhas a seguir ao seu arquivo httpd.conf:
# Módulos extra AddModule mod_php.c AddModule mod_perl.c # Módulos extra LoadModule php_module modules/mod_php.so LoadModule php5_module modules/libphp5.so LoadModule perl_module modules/libperl.so
AddType application/x-httpd-php .php
Não, O PHP funciona bem com as extensões FrontPage. O problema é que o patch do FrontPage modifica diversas estruturas do Apache, das quais o PHP depende. Recompilar o PHP (usando 'make clean ; make') depois de aplicar o patch FP deve resolver o problema.
Faça um 'view source' no navegador web e provavelmente descobrirá que pode ver o código fonte do seu script PHP. Isto significa que o seu servidor web não enviou o script para o interpretador do PHP. Algo está errado com as configurações do seu servidor - verifique novamente as configurações de seu servidor, com base nas instruções de instalação do PHP.
Alguma coisa deu errado quando o servidor tentou executar o PHP. Para conseguir 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 execute php -i. Se o PHP tiver algum problema para rodar, então uma mensagem de erro apropriada será exibida, o que lhe dará pistas do que precisa ser feito em seguida. Se você receber uma tela cheia de códigos HTML (a saída da função phpinfo()) então o PHP está funcionando, e seu problema pode ser relacionado à configuração do seu servidor, que você deve verificar novamente.
[mybox:user /src/php5] root# apachectl configtest apachectl: /usr/local/apache/bin/httpd Undefined symbols: _compress _uncompress
Isto não tem nada a ver com o PHP, mas com as bibliotecas do cliente MySQL. Algumas necessitam de --with-zlib, outras não. Isso também é abordado nas FAQ do MySQL.
cgi error: The specified CGI application misbehaved by not returning a complete set of HTTP headers. The headers it did return are:
Esta mensagem de erro significa que o PHP falhou em gerar qualquer saída. 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 PHP (php.exe no Windows) e execute php -i. Se o PHP estiver com algum problema para rodar, então uma mensagem de erro adequada será exibida, o que lhe dará uma ideia do que precisa ser feito em seguida. Se você receber uma tela cheia de códigos HTML (a saída da função phpinfo()) então o PHP está funcionando.
Uma vez que o PHP esteja funcionando na linha do comando, tente acessar o script via navegador novamente. Se ele ainda falhar, então pode ser um dos seguintes:
ISUR_<machinename>
não pode acessá-los.
Certifique-se de que qualquer usuário que precise executar um script PHP tem permissão para executar o php.exe! O IIS usa um usuário anônimo que é adicionado no momento que o IIS é instalado. Este usuário precisa de permissões para o php.exe. Além disso, qualquer usuário autenticado também precisará ter permissão para executar o php.exe. E para o IIS4 você precisa dizer que o PHP é um engine de script. Além disso, você também vai querer ler esta FAQ.
Security Alert! PHP CGI
cannot be accessed directly.
.
Você deve definir a diretiva
cgi.force_redirect para 0
.
O padrão é 1
, então certifique-se que
a directiva não está comentada (com um ;
). Como
todas as diretivas, esta é definida no php.ini
Pelo fato do padrão ser 1
, é fundamental
que você tenha certeza de que o arquivo php.ini correto está sendo
lido. Leia
esta FAQ para detalhes.
Para ter certeza de que seu php.ini está sendo lido pelo PHP, faça uma chamada
à função phpinfo(). Próximo ao topo, haverá uma
lista chamada Configuration File (php.ini)
.
Esta irá lhe dizer onde o PHP está procurando o php.ini e
se ele está sendo lido ou não. Se houver apenas um diretório do PATH,
então ele não está sendo lido e você deve colocar seu php.ini
neste diretório. Se o php.ini está incluso dentro do PATH,
ele está sendo lido.
Se o php.ini está sendo lido e seu PHP está sendo executado como um módulo, então certifique-se de reiniciar seu servidor web depois de fazer alterações no php.ini.
Veja também php_ini_loaded_file().
No Windows:
Vá até o Painel de Controle e abra o ícone de Sistema (Iniciar → Painel de Controle)
Vá até a aba Avançado
Clique no botão 'Variáveis de Ambiente'
Procure o painel 'Variáveis do Sistema'
Encontre o item Path (talvez você precise rolar a lista para encontrá-lo)
Dê um duplo clique no item Path
Adicione seu diretório do PHP ao final, incluindo ';' antes (por exemplo,
;C:\php
)
Aperte OK e reinicie seu computador
Nota: Certifique-se de reiniciar depois de seguir os passos acima para garantir que as alterações ao PATH sejam aplicadas.
Existem várias maneiras de fazer isso. Se você estiver usando o Apache, consulte a documentação do Apache, caso contrário, você deve definir a variável de ambiente PHPRC.
Se os links para arquivos PHP incluem extensões, tudo funcionará perfeitamente. Esta
FAQ é apenas para o caso em que links para arquivos PHP não incluem a extensão
e você quer usar a negociação de conteúdo para selecionar arquivos PHP a partir de URLs
sem nenhuma extensão.
Neste caso, substitua a linha AddType application/x-httpd-php
.php
por:
AddHandler php5-script php AddType text/html php
php-script
.
Não, é possível lidar com qualquer método de requisição, por exemplo, CONNECT. Status de respostas adequados podem ser enviados com header(). Se somente os métodos GET e POST devem ser manipulados, isso pode ser alcançado com esta configuração do Apache:
<LimitExcept GET POST> Deny from all </LimitExcept>