Pregunta 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í actualizarlo. Primero desinstalé el php 5.3.x y luego instalé php 5.5.1 pero después de la instalación completada, apache no analizó los archivos php que acaba de descargar. He consultado preguntas similares aquí en stackoverflow, pero ninguna de ellas me ha ayudado hasta ahora.

Para el registro, tengo las siguientes líneas en mi httpd.conf y php.conf que deberían hacer que php funcione, pero no:

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 líneas 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 parte. yo añadí

AddType text/html .php

pero sin suerte.


74
2017-08-24 19:10


origen


Respuestas:


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 configura Apache, intente ver la página desde otro navegador. He tenido días en que Chrome guarda categóricamente el resultado y sigue descargando el código fuente, mientras que en otro navegador está bien.


65
2017-08-27 05:34



Después de luchar mucho, finalmente resolví el problema.

Si se le solicita que descargue un .php archivo en lugar de ejecutarlo, entonces aquí está la solución perfecta: supongo que ya ha instalado PHP5 y sigue obteniendo este error.

$ sudo su
$ a2enmod php5

Eso es todo.

Pero si sigues recibiendo el error:

Config file php5.conf not properly enabled: /etc/apache2/mods-enabled/php5.conf is a real file, not touching it

luego haz lo siguiente:

Resulta que los archivos no deben almacenarse en mods-enabled, pero debería almacenarse en mods-available. Luego, se debe crear un enlace simbólico en mods-enabled apuntando al archivo almacenado en mods-available.

Primero elimina el original:

$ mv /etc/apache2/mods-enabled/php5.conf /etc/apache2/mods-available/

Luego crea el enlace simbólico:

$ ln -s /etc/apache2/mods-available/php5.conf /etc/apache2/mods-enabled/php5.conf

Espero que tu problema esté resuelto


14
2018-02-01 11:02



Hoy me encontré con este problema y ninguna de las soluciones descritas me funcionó. Entonces 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 conocía el x-mapp-php6 tipo, ya que eso .htaccess el archivo era algo que importé de un host web diferente cuando transferí el contenido del sitio web.

Solo quitando el AddHandler línea desde el .htaccess archivo lo resolvió para mí.


11
2018-04-11 22:52



Por favor, eche un vistazo a sus directivas addtype.

Me parece que Apache le está diciendo al navegador que está enviando un tipo de documento de aplicación / php para scripts con extensiones como .php5. De hecho, se supone que Apache le dice al navegador que el script está enviando texto / html.

Por favor intente esto:

AddType text/html .php

Con respecto a la sugerencia anterior, debes decirle al navegador que estás produciendo un script PHP: me pareció una idea inusual. Lo busqué en Google y descubrí que hay bastante debate al respecto en la web. Aparentemente hay casos en los que puede querer decir que está enviando un script PHP (aunque se supone que Apache debe ejecutar el script y emitir texto / html) y también hay casos en los que el navegador simplemente no reconoce ese Mime específico. Tipo.

Borrar la caché de su navegador siempre es una buena idea.

En caso de que sea útil, aquí hay una copia de mi archivo /etc/httpd/conf.d/php.conf de un servidor que ejecuta CentOS 5.9:

#        
# PHP is an HTML-embedded scripting language which attempts to make it                                             
# easy for developers to write dynamically generated webpages.                                                  
#
<IfModule prefork.c>
  LoadModule php5_module modules/libphp5.so
</IfModule>
<IfModule worker.c>
  LoadModule php5_module modules/libphp5-zts.so
</IfModule>

#
# Cause the PHP interpreter to handle files with a .php extension.
#
AddHandler php5-script .php
AddType text/html .php

#
# Add index.php to the list of files that will be served as directory
# indexes.
#
DirectoryIndex index.php

#
# Uncomment the following line to allow PHP to pretty-print .phps
# files as PHP source code:
#
#AddType application/x-httpd-php-source .phps

5
2017-08-26 06:31



Esto podría estar sucediendo debido a los módulos faltantes requeridos para su php. Suponiendo que tiene instalado php7, busque módulos php7 disponibles usando

sudo apt-cache search php7-*

El comando anterior mostrará una lista de todos los módulos PHP7 disponibles para su instalación. Puede comenzar la instalación de módulos como,

sudo apt-get install libapache2-mod-php7.0 php7.0-mysql php7.0-curl php7.0-json

5
2017-09-06 13:31



Tengo el mismo problema. Apache no carga archivos php desde un determinado sitio web, simplemente lo descarga. Leí esta publicación y las respuestas y he visto que tengo esta línea en el último lugar del archivo .htaccess:

AddHandler x-mapp-php5.5  .php

Lo he comentado y todo funciona bien.

Gracias a todos !!!


3
2018-05-29 10:50



Anteriormente tengo un problema similar, después de actualizar de 5.3 a 5.4. Pero mi configuración se ve un poco diferente ya que estoy ejecutando Debian y usando fcgid para server las páginas PHP, y no el módulo PHP5 apache / cgi. Así que después de actualizar, también instalé php5_cgi, que colisionó con mi configuración fcgid, y ya no ejecutaba archivos PHP.

Tuve que desactivar el módulo de Apache y reiniciar Apache

a2dismod php5_cgi
/etc/init.d/apache2 restart

Una vez que el módulo php5_cgi estuvo fuera del camino, fcgid pudo servir páginas PHP nuevamente.


2
2018-01-14 10:47



Si Your .htaccess tiene algo como esto ...      Aplicación AddHandler / x-httpd-php53 .php .php5 .php4 .php3 luego coméntelo y vuelva a intentar refrescar esto funcionó para mí ...


2
2018-06-10 09:26