Por que o script PHP é baixado em vez de executado?

2

Eu tenho um servidor LAMP local configurado no meu laptop Ubuntu para testar vários scripts PHP.

Às vezes, quando faço algo errado, em vez de receber um erro, o script que estou testando é oferecido para download. Por que isso e como isso pode ser corrigido?

    
por scribu 13.06.2009 / 15:20

5 respostas

2

O servidor não reconhece o script como algo a ser executado localmente e, como tal, o oferece como um arquivo.

Estas linhas devem estar presentes na sua configuração do Apache. Note que o caminho pode precisar ser alterado para os módulos .so, dependendo da sua configuração:

# -- if you're using PHP 5, uncomment this line to activate it
#LoadModule php5_module libexec/libphp5.so

# -- if you're using PHP 4, uncomment this line to activate it
#LoadModule php4_module libexec/libphp4.so

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

Acompanhar o reinício do serviço Apache e o php deve ser carregado no Apache para funcionar bem.

    
por 13.06.2009 / 15:44
1

Algumas razões pelas quais descobri que isso acontece:

  • se o php não estiver configurado corretamente no servidor
  • se o arquivo não tiver a extensão .php correta
  • se estiver em um diretório que não permite execução
  • se o script demorar muito para ser executado.

Um teste que eu uso é para fazer um arquivo no mesmo diretório (verify.php) que contém:

<?php
  phpinfo();
?>

Se esse arquivo é executado no meu navegador, os primeiros 3 pontos são ok

    
por 13.06.2009 / 16:04
0

Eu concordaria com Avery, essa é a causa usual. No entanto, você diz especificamente que é só às vezes. Alguma chance de você estar mudando o cabeçalho do tipo de conteúdo?

    
por 13.06.2009 / 15:50
0

Um erro comum é imprimir algo na página antes que os cabeçalhos sejam enviados.

    
por 13.06.2009 / 15:55
0

Observe também que, se você tiver um arquivo .htaccess na mesma pasta do seu script php, pode ser o motivo de alguns problemas de execução.

Por exemplo, se você obtiver uma cópia dos arquivos do site de outro servidor, o arquivo htaccess poderá ter uma linha como:

AddHandler x-httpd-php5-3 .php

Mas no seu servidor você pode estar executando outra versão do PHP. Portanto, não seria correto.

    
por 10.03.2013 / 09:03