Estoy ejecutando un servidor Ubuntu en una máquina virtual para probar diferentes soluciones de foros web. He configurado un ~/public_html/ para que sea accesible con el servidor web apache2, y funciona bien.
Sin embargo, cuando voy a un archivo .php en un navegador (usando la dirección IP/~nombre de usuario/phpfile.php de mi VM), no lo muestra como debería. En su lugar, ofrece guardar en un archivo/pregunta con qué programa abrirlo. Curiosamente, ese cuadro de diálogo reconoce que es un archivo php.
Tengo la siguiente versión de php instalada en el 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
Y el siguiente servidor:
Server version: Apache/2.2.14 (Ubuntu)
Server built: Nov 18 2010 21:19:09
Si alguien sabe qué podría estar causando esto/posibles soluciones, me haría muy feliz :)
EDITAR: Resulta que en archivos este comportamiento solo fue evidente en archivos en el directorio ~/public_html/. Todos los archivos php en /var/www/ funcionan bien.
¿Los premios son para quien pueda explicar por qué? :D (Y por premios solo me refiero a un trabajo bien hecho, me temo que no hay premios reales).
Respuesta1
Es posible que actualmente solo tengas instalada la versión cli de PHP.
sudo apt-get install php5
y reinicia apache
sudo apache2ctl restart
.
También puede verificar que el módulo PHP esté cargado en Apache haciendo
sudo apache2ctl -M
Si el módulo está cargado, debería mostrar algo como
Loaded Modules:
...
php5_module (shared)
...
Syntax OK
Respuesta2
agrega esto a tu configuración de apache
AddType application/x-httpd-php .php
Respuesta3
Debe configurar Apache para que inicie el intérprete de PHP cuando se solicite un archivo .php en lugar de simplemente devolver el contenido del archivo.
Esto debe hacerse en httpd.conf para el directorio en cuestión. Se vería algo como esto:
# 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