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.
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.
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
--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.
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
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
AddType application/x-httpd-php .php
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.
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.
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.
[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.
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:
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.
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.
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().
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.
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
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
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>