¿Qué causa que las páginas PHP se descarguen constantemente en lugar de ejecutarse normalmente?

¿Qué causa que las páginas PHP se descarguen constantemente en lugar de ejecutarse normalmente?

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

Respuesta4

Compruebe .htaccessla fila AddType. Tenía un AddType personalizado que provocaba un tipo de contenido incorrecto. Firefox me ayudó a depurar el problema, pero también puedes usar wget.

Firefox Wget

información relacionada