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.xy luego instalé php 5.5.1, pero después de que se completó la instalación, apache no analizó los archivos php, simplemente los descargó. He comprobado 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 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 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:
Quitando 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 es solo una parte. yo añadí
AddType text/html .php
pero no suerte.
httpd.conf
si el módulo php está comentado o noRespuestas:
El AddType correcto para php es application / x-httpd-php
También asegúrese de que su módulo php esté cargado
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.
fuente
/etc/httpd/conf/httpd.conf
Encontré este problema hoy y ninguna de las soluciones descritas funcionó para mí. Entonces aquí hay otra posible causa:
Si tienes algo como
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 elx-mapp-php6
tipo, ya que ese.htaccess
archivo era algo que importé de un servidor web diferente cuando transferí el contenido del sitio web.Simplemente quitando la
AddHandler
línea del.htaccess
archivo lo resolvió para mí.fuente
AddHandler application/x-httpd-php54 .php54 .php
que hubo que quitar.Después de luchar mucho, finalmente resolví el problema.
Si se le pide que descargue un
.php
archivo en lugar de ejecutarlo, aquí está la solución perfecta: supongo que ya ha instalado PHP5 y sigue recibiendo este error.Eso es todo.
Pero si sigue recibiendo el error:
luego haz lo siguiente:
Resulta que los archivos no deben almacenarse en
mods-enabled
, sino que deben almacenarsemods-available
. Luego, se debe crear un enlace simbólico en mods habilitados que apunte al archivo almacenado en mods-available.Primero retire el original:
Luego crea el enlace simbólico:
Espero que tu problema esté resuelto.
fuente
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á generando texto / html.
Por favor intente esto:
Con respecto a la sugerencia anterior de que debe decirle al navegador que está generando un script PHP: me pareció una idea inusual. Lo busqué en Google y descubrí que hay bastante discusión al respecto en la web. Aparentemente, hay casos en los que es posible que desee 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.
Limpiar la memoria 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:
fuente
Esto podría estar sucediendo debido a la falta de módulos necesarios para su php. Suponiendo que tiene php7 instalado, busque los módulos php7 disponibles usando
El comando anterior enumerará todos los módulos PHP7 disponibles para la instalación. Puede comenzar la instalación de módulos como,
fuente
Si su .htaccess tiene algo como esto ... AddHandler application / x-httpd-php53 .php .php5 .php4 .php3 , coméntelo e intente nuevamente actualizar esto funcionó para mí ...
fuente
Tengo el mismo problema. Apache no carga archivos php desde un sitio web determinado, solo lo descarga. Leí esta publicación y las respuestas y he visto que tengo esta línea en el último lugar del archivo .htaccess:
Lo he comentado y todo funciona bien.
Gracias a todos !!!
fuente
Anteriormente tuve 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 servidor las páginas PHP, y no el módulo PHP5 apache / cgi. Entonces, después de actualizar, también instaló php5_cgi, que colisionó con mi configuración fcgid y ya no ejecutaba archivos PHP.
Tuve que deshabilitar el módulo Apache y reiniciar Apache
Una vez que el módulo php5_cgi estuvo fuera del camino, fcgid pudo servir páginas PHP nuevamente.
fuente
Tuve síntomas similares, otra solución más: en /etc/apache2/mods-enabled/php5.conf había un consejo útil en el comentario, que seguí:
fuente
En caso de que alguien esté usando php7 en un entorno Linux
Asegúrese de habilitar php7
Reinicie el servicio mysql y Apache
fuente
Después de actualizar PHP a 7.3, los scripts PHP se ejecutaron con www-data en lugar de $ USER como antes.
Necesitaba reinstalar y activar PHP-FPM:
Para asegurarme de que todo estaba bien para Virtualmin , utilicé el asistente Volver a verificar la configuración
/virtual-server/check.cgi
, en Vitualmin / Configuración del sistema .Después de eso, Apache / PHP estaba descargando archivos php en lugar de ejecutarlos. Así que necesitaba editar
/etc/apache2/mods-available/php7.3.conf
para comentar la filaSetHandler application/x-httpd-php
como se muestra a continuación:Después de reiniciar Apache, resolvió mi problema, espero que esto ayude.
Ocúpate también del caché del navegador.
Mi sistema:
fuente
Pasé dos días rastreando esto y descubrí que estaba poniendo mis scripts PHP en el directorio incorrecto.
En mi instalación estándar de Ubuntu, estaba colocando los scripts
/var/www
. Deberían haber estado en/var/www/html
.Acabo de comenzar a trabajar con PHP, así que no sé si mi solución se relaciona con el cambio de versión que atravesó.
fuente
esto resolvió el problema para mí (tengo php7 instalado):
sudo apt-get install libapache2-mod-php7.0
reinicio de apache2 del servicio sudo
fuente
Tuve este problema. Resultó que tenía instalados nginx y apache y comenzaba automáticamente al arrancar. El problema era que nginx se vinculaba primero al puerto http, lo que impedía que apache se iniciara.
fuente
También es posible que tenga nginx en ejecución, pero su php está configurado para ejecutarse con apache. Para verificar, ejecutar
service nginx status
yservice apache2 status
ver cuál se está ejecutando. En el caso de que nginx se esté ejecutando y apache no, simplemente ejecútelosudo service nginx stop; sudo service apache2 start
y su servidor ahora entregará archivos php como se esperaba.fuente
Ok ... Sé que ya hay 1.000.000 de respuestas a estas preguntas, pero he pasado al menos 6 horas efectivas, averiguando esta; y lo he buscado en Google cientos de veces y no he encontrado una sola publicación al respecto. Entonces pensé que agregaría la solución a mi problema aquí.
La conclusión
Si comenté estas dos líneas en mis archivos .conf en el
/etc/apache2/[[SERVER-NAME].conf
archivo -file:No tengo idea de lo que hacen o cómo llegaron allí, pero está en cada uno de mis
.conf
archivos. Y si elimino esas líneas y me aseguro de que haya un enlace simbólico en la/etc/apache2/sites-enabled/
carpeta, entonces no descarga el index.php, y todo funciona como debería.Toda la historia
Tengo VirtualMin instalado en un Ubuntu 16.04 VPS. Actualicé a la versión 7.2 de PHP. Poco después de eso, actualicé la versión de Ubuntu y encontré un error 'Kernel Offset: Disabled'. Así que tuve que eliminar la última versión de Ubuntu, y cuando mi sistema operativo se reinició: ¡BOOM! Recibí el error del que habla su publicación: para cada sitio en mi VPS, simplemente descargó el index.php en lugar de mostrarlo.
Probé todo tipo de cosas:
a2enmod [MODULE_NAME]
. Y encontré el nombre del módulo buscando en Google. Tuve que activar alrededor de 6-8 módulos, antes de pasar ese paso en la validación, y pasaron un par de minutos antes de que se agotara la caché, por lo que hacer esto fue un paso tedioso.fuente
Tuve un problema similar al OP al actualizar php5 de una versión anterior a 5.5.9, que es la versión instalada con Mint 17.
Estoy ejecutando una configuración LAMP en una máquina en mi red local, que utilizo para obtener una vista previa de los cambios en los sitios web antes de cargar esos cambios en el servidor en vivo real. Así que mantengo un espejo local perfecto del sitio real.
Después de la actualización, los archivos que se ejecutan y se muestran perfectamente en el sitio real no se mostrarán o solo mostrarán html en la máquina local. PHP no fue analizado. El comando phpinfo () funcionó, así que sabía que php estaba funcionando. El registro no generó errores. Ver la fuente de la página me mostró el código php real.
Había construido una página test.php que contenía el siguiente código:
<?php phpinfo(); ?>
Esto funcionó. Luego descubrí cuando cambié
<?php
al<?
comando que ya no funcionaba. Todos mis sitios php usan en<?
lugar de lo<?php
que podría no ser ideal, pero es la realidad. Solucioné el problema yendo a / etc / php5 / apache2, buscando "short_open_tag" y cambiando el valor de Off a On.fuente
Si nada de lo anterior funciona,
intenta comentar la línea
y reinicie apache usando
¡Deberia de funcionar!
fuente
PHP56
vim /etc/httpd/conf/httpd.conf
fuente
Tengo este tipo de problema. Así es como lo soluciono. Después de instalar Apache , instalé PHP usando este comando.
se ejecuta correctamente pero solicito el archivo .php de Apache, lo da sin ejecutar el script PHP .
Luego verifico que PHP esté habilitado.
pero no mostró ningún resultado. Verifico los paquetes PHP instalados.
Diferentes tipos de versiones de PHP instaladas en mi computadora. Luego elimino algunos paquetes PHP de mi lista anterior, usando apt-get purge .
Reinstalo PHP
Verifique que el módulo PHP esté cargado
si no está habilitado con:
Reinicie el servidor Apache
Finalmente, verifico el proceso PHP en Apache
crear un archivo vacío
Agregue este contenido a info.php y guárdelo.
Compruebe el navegador:
se muestra correctamente Creo que esto ayudará a cualquiera.
fuente
Tuve este problema y si en realidad nunca jugaste con los ajustes de configuración de tu servidor, entonces tu problema es del 90% en tu archivo .htaccess
Puede modificar el archivo .htaccess LOCALMENTE o eliminarlo (LOCALMENTE)
fuente
Si tiene virtualmin, intente comentar estas líneas en su configuración de apache en / etc / apache2 / sites-available
fuente
Cuando actualicé de PHP 7.2 a PHP 7.4, también tuve el mismo problema. Trabajado haciendo lo siguiente: -
En
[domain].conf file
, comentó lo siguiente:motor php_admin_value apagado
Y agregado:
Deshabilite el mod 7.2 y habilite el 7.4 de la siguiente manera:
a2dismod php7.2
a2enmod php7.4
En el
/etc/apache2/mods-enabled/php7.4.conf
archivo, comente lo siguiente:Aplicación SetHandler / x-httpd-php
php_admin_flag motor apagado
fuente
Para las personas que han encontrado esta publicación de Google casi 6 años en el futuro (¡y más allá!), Es posible que se encuentren con este problema con Apache 2 y PHP 7 mientras también usan el
UserDir
módulo.Otra posible causa de este problema podría ser que esté intentando ejecutar el script en un "directorio de usuario" desde el
UserDir
módulo. La ejecución de scripts PHP en directorios de usuarios está deshabilitada de forma predeterminada. Te encontrarás con este problema si el script está en elpublic_html
directorio de tu carpeta de inicio y estás intentando acceder a él desdehttp://localhost/~your_username
.Para arreglar esto, abre
/etc/apache2/mods-enabled/php7.2.conf
. Debe comentar o eliminar el bloque de etiquetas en la parte inferior que dicefuente
Si su .htaccess tiene algo como esto
fuente