Esta seção contém perguntas comuns na maneira de como instalar
o PHP. PHP é aceito em vários Sistemas Operacionais (talvez, com exceção do
MacOS antes do OSX), e praticamente qualquer servidor Web.
Para instalar o PHP, Siga as instruções no Instalação e Configuração.
PHP é como cola. É uma 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 intuitiva e fácil de
aprender. A flexibilidade e poder do PHP confia na estabilidade e
robustez da plataforma subjacente. Necessita de um sistema operacional, um
servidor web e bibliotecas de terceiros para trabalhar em conjunto. Quando qualquer
um desses elementos para de funcionar o PHP precisa encontrar meios de identificar e remediar esses problemas
rapidamente. Quando criamos uma arquitetura subjacente
mais complexa, por não ter completa separação da execução de tarefas, separação de
segmentos de memória e um forte sandbox para cada requisição realizada, mais
problemas são introduzidos ao ecossistema do PHP.
Se quiser utilizar uma MPM threaded, veja a configuração FastCGI
onde o PHP será executado em um espaço de memória próprio.
Por padrão no Unix deve estar no /usr/local/lib
Que é o <install-path>/lib.
Maioria das pessoas vão querer mudar isso no tempo de compilação com o
--with-config-file-path flag.
Poderíamos, por exemplo, adicionar algo como:
No Windows, o caminho padrão para o arquivo php.ini é o diretório
Windows. Se estivermos usando o servidor web Apache, php.ini é
procurado primeiro no diretório de instalação do Apache, e.g.
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.
Olhe também o capítulo sobre a configuração do arquivo.
Isso provavelmente significa que o PHP está tendo algum tipo de problema
e 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 tentar reproduzir o problema
com um pequeno caso teste. Se você souber como usar 'gdb' será muito
útil para fornecer um backtrace com o relato do erro (bug report)
e assim ajudar desenvolvedores a indentificar 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 /path/to/httpd.conf
Então busque a URL que esta causando problemas com seu browser.
> execute -X -f /path/to/httpd.conf
Se estiver recebendo um core dump, o gdb deverá informar sobre isso agora
type: bt
Deve-se incluir o seu backtrace no seu relatório. Envie esses dados para
» http://bugs.php.net/
Se o seu script usa as funções de expressões regulares (
preg_match() e demais), você deve ter certeza que compilou
PHP e Apache com a mesma versão do pacote da expressão
regular. 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 seguintes linhas em seu arquivo httpd.conf:
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. Recompile o PHP (usando 'make clean ; make')
depois do patch FP aplicado, deve resolver o problema.
Faça um 'view source' no navegador web e provavelmente achará que
poderá ver o código fonte 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 suas configurações de servidor, baseado nas intruções de
instalação do PHP.
Alguma coisa correu mal quando o servidor tentou executar o PHP.
Para 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 tiver algum problema de
execução, então uma mensagem adequada 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 esta funcionando,
e seu problema pode ser relatado para a configuração do seu
servidor que você deve verificar novamente.
Isto não tem nada a ver com o PHP, mas com as bibliotecas do
cliente MySQL. Algumas necessitam
--with-zlib
, outras não. Esta
é tambem abrangida pelo FAQ MySQL.
Esta mensagem de erro significa que o PHP falhou de gerar
qualquer saída. 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 execute
php -i. Se o PHP estiver com 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ê 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 está trabalhando na linha do comando, tente
acessar o script via navegador novamente. Se ele ainda falhar,
então pode ser um dos seguintes:
Certifique-se que qualquer usuário que precise executar um script
PHP tem o direito de executar php.exe! O IIS usa um usuário anônimo
que é adicionado no momento que o IIS é instalado. Este usuário precisa
de direitos do php.exe. Qualquer usuário autenticado
também terá direito a executar php.exe.
E para IIS4 você precisa dizer ao PHP que é um mecanismo script.
Você também, vai querer ler
esta FAQ.
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, isso é definido no php.ini
Pelo fato do padrão ser 1, é fundamental
que você esteja 100% certo de que o arquivo php.ini correto
está sendo lido. Leia
este faq para detalhes.
Para ter certeza que seu php.ini está sendo lido pelo PHP, faça
uma chamada para phpinfo(). Perto do topo, haverá
uma lista chamada Configuration File (php.ini).
Isto irá dizer-lhe onde o PHP está procurando php.ini e se está
sendo lido ou não. Se apenas um diretório do PATH
existe, então não está sendo lido e você deve colocar seu php.ini
no diretório. Se php.ini está incluso dentro do PATH, ele está
sendo lido.
Se php.ini está sendo lido e seu PHP está sendo executado como um modulo,
então, certifique-se de reiniciar seu servidor web depois de fazer
alterações.
Olhe também php_ini_loaded_file().
On Windows 7, XP, Vista, 2008, 2012 and up:
Vá até o Painel de Controle e abra o ícone de Sistema (Iniciar → Painel de Controle)
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
Encontre a entrada do Path (talvez você precise do scroll para encontrar)
;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 costumava indicar 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 para dentro
do diretório do sistema do Windowsm pois há muito tempo está obsoleto e pode causar problemas.
Existem várias maneiras de fazer isso. Se você usa o Apache, leia
as instruções específicas de instalação (
Apache 1, Apache 2
), caso contrário você deve definir a variável de ambiente
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 pois 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
Se liga aos arquivos de inclusão de extensões do PHP, tudo funcionará
perfeitamente. Este FAQ é apenas para o caso em que a conexão 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:
Não, é possível lidar com qualquer método de requisição, e.g. CONNECT. Status
de respostas adequadas podem ser enviados com header().
Se somente métodos GET e POST precisam ser manipulados, isso pode ser
conseguido com esta configuração do Apache:
Instalação
--with-config-file-path=/etc
--with-config-file-scan-dir=PATH
# 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
[mybox:user /src/php5] root# apachectl configtest
apachectl: /usr/local/apache/bin/httpd Undefined symbols:
_compress
_uncompress
cgi error:
The specified CGI application misbehaved by not
returning a complete set of HTTP headers.
The headers it did return are:
AddHandler php5-script php
AddType text/html php
<LimitExcept GET POST>
Deny from all
</LimitExcept>
Menu
Tutoriais de Tecnologia Web
Áreas
Blogs
Sites Sociais