Estou executando um servidor Ubuntu em uma VM para testar diferentes soluções de fóruns da web. Eu configurei um ~/public_html/ para ser acessível com o servidor web Apache2 e isso funciona bem.
No entanto, quando vou para um arquivo .php em um navegador (usando o endereço IP/~username/phpfile.php da minha VM), ele não é exibido como deveria. Em vez disso, ele oferece salvar em arquivo/pergunta com qual programa abri-lo. Curiosamente, essa caixa de diálogo reconhece que é um arquivo php.
Tenho a seguinte versão do php instalada no sistema:
PHP 5.3.2-1ubuntu4.5 with Suhosin-Patch (cli) (built: Sep 17 2010 13:49:46)
Copyright (c) 1997-2009 The PHP Group
Zend Engine v2.3.0, Copyright (c) 1998-2010 Zend Technologies
E o seguinte servidor:
Server version: Apache/2.2.14 (Ubuntu)
Server built: Nov 18 2010 21:19:09
Se alguém souber o que pode estar causando isso/soluções potenciais, isso me deixaria muito feliz :)
EDIT: Acontece que esse comportamento só era aparente em arquivos no diretório ~/public_html/. Todos os arquivos php em /var/www/ funcionam bem.
Os prêmios vão para quem puder explicar por quê? :D (E por prêmios quero dizer apenas um bom trabalho, sem prêmios reais, infelizmente.)
Responder1
Você pode ter apenas a versão cli do PHP instalada atualmente, tente
sudo apt-get install php5
e reinicie o apache
sudo apache2ctl restart
.
Você também pode verificar se o módulo PHP está carregado no Apache fazendo
sudo apache2ctl -M
Que se o módulo estiver carregado, ele deverá mostrar algo como
Loaded Modules:
...
php5_module (shared)
...
Syntax OK
Responder2
adicione isso à sua configuração do apache
AddType application/x-httpd-php .php
Responder3
Você precisa configurar o apache para que ele inicie o interpretador php quando um arquivo .php for solicitado, em vez de apenas retornar o conteúdo do arquivo.
Isso precisa ser feito em httpd.conf para o diretório em questão. Seria algo assim:
# Use for PHP 5.x:
LoadModule php5_module modules/libphp5.so
AddHandler php5-script php
# Add index.php to your DirectoryIndex line:
DirectoryIndex index.html index.php
AddType text/html php