Apache está descargando archivos php en lugar de mostrarlos
Información del sistema operativo y del servidor:
- CentOS 6.4 (final)
- Apache 2.2.15
- PHP 5.5.1
Anteriormente tenía instalado php 5.3.x pero decidí actualizar. Primero desinstalé php 5.3.x y luego instalé php 5.5.1, pero una vez completada la instalación, Apache no analizó los archivos php, simplemente los descargó. Revisé preguntas similares aquí en stackoverflow, pero ninguna me ha ayudado hasta ahora.
Para que conste, tengo las siguientes líneas en mi httpd.conf y php.conf que deberían hacer que php funcione pero no lo hacen:
AddHandler application/x-httpd-php .php5 .php4 .php .php3 .php2 .phtml
AddType application/x-httpd-php .php5 .php4 .php .php3 .php2 .phtml
AddType application/x-httpd-php-source .phps
AddHandler php5-script .php
Realmente apreciaria cualquier ayuda. Gracias.
EDITAR:
Tengo estas lineas en php.conf
<IfModule !worker.c>
LoadModule php5_module modules/libphp5.so
</IfModule>
<IfModule worker.c>
LoadModule php5_module modules/libphp5-zts.so
</IfModule>
EDITAR:
Al eliminar el
AddType application/x-httpd-php .php5 .php4 .php .php3 .php2 .phtml
Apache ya no descarga el archivo. Ahora Apache muestra el código fuente, pero no todo, solo una parte. yo añadí
AddType text/html .php
pero no hubo suerte.
El AddType correcto para php es application/x-httpd-php
AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps
También asegúrese de que su módulo php esté cargado
LoadModule php5_module modules/mod_php55.so
Cuando esté configurando Apache, intente ver la página desde otro navegador. He tenido días en los que Chrome almacena en caché obstinadamente el resultado y sigue descargando el código fuente mientras que en otro navegador está bien.
Me encontré con este problema hoy y ninguna de las soluciones descritas funcionó para mí. Aquí hay otra posible causa:
Si tienes algo como
AddHandler x-mapp-php6 .php3 .php4 .php .phtml
en un .htaccess
archivo de su carpeta de contenido web, puede hacer que sus scripts PHP dejen de funcionar. En mi caso, el servidor no sabía el x-mapp-php6
tipo, ya que ese .htaccess
archivo era algo que importé desde un servidor web diferente cuando transferí el contenido del sitio web.
Simplemente eliminar la AddHandler
línea del .htaccess
archivo lo resolvió.