Estoy tratando de ejecutar un código PHP en un proyecto (usando Dreamweaver) pero el código no se está ejecutando.
Cuando reviso el código fuente, el código PHP aparece como etiquetas HTML (puedo verlo en el código fuente). Apache se ejecuta correctamente (estoy trabajando con XAMPP), las páginas PHP se abren correctamente pero el código PHP no se ejecuta.
¿Alguien tiene una sugerencia sobre lo que está sucediendo?
Nota: El archivo ya está nombrado comofilename.php
Editar: El Código ..:
<?
include_once("/code/configs.php");
?>
<?
lugar de<?php
?<?
) Están en desuso, en realidad no funcionan en muchos lugares y, por lo demás, son completamente innecesarios. Guardar tres pulsaciones de teclas no es una razón válida para permitir que su código falle en probablemente la mitad de los servidores en los que puede ejecutarse.short_open_tag
configuración.<?=
), que deberían funcionar bien en php 5.4+ independientemente de la configuración del servidor.Respuestas:
Parece que hay algo mal con su configuración, aquí hay algunas cosas que puede verificar:
Asegúrese de que PHP esté instalado y funcionando correctamente. Esto puede sonar tonto, pero nunca se sabe. Una manera fácil de verificar es ejecutar
php -v
desde una línea de comando y ver si devuelve información de la versión o algún error.Asegúrese de que el módulo PHP esté en la lista y sin comentarios dentro de httpd.conf de su Apache. Esto debería ser algo así como
LoadModule php5_module "c:/php/php5apache2_2.dll"
en el archivo. BusqueLoadModule php
y asegúrese de que no haya ningún comentario (;
) delante.Asegúrese de que el archivo httpd.conf de Apache tenga el tipo MIME de PHP. Esto debería ser algo así
AddType application/x-httpd-php .php
. Esto le dice a Apache que ejecute.php
archivos como PHP. Busque AddType y luego asegúrese de que haya una entrada para PHP y que no esté comentada .Asegúrese de que su archivo tenga la
.php
extensión, o la extensión especificada en la definición MIME en el punto # 3, de lo contrario no se ejecutará como PHP.Asegúrese de no utilizar etiquetas cortas en el archivo PHP (
<?
), estas no están habilitadas en todos los servidores de forma predeterminada y se desaconseja su uso. Utilice en su<?php
lugar (o habilite etiquetas cortas en su php.ini conshort_open_tag=On
si tiene un código que se base en ellas).Asegúrese de acceder a su archivo a través de su servidor web utilizando una URL como
http://localhost/file.php
no a través del acceso a archivos localesfile://localhost/www/file.php
Y, por último, consulte el manual de PHP para obtener más consejos de configuración .
fuente
AddType application/x-httpd-php .php
. ¡¡Muchas gracias!!apt-get purge apache2; apt-get install apache2 libapache-mod-php5
.php
extensión con el contenido<?php echo("Success"); ?>
y vea si acceder al archivo a través de un navegador web hace que se muestre "Éxito" sin el código PHP asociado.php7:
fuente
sudo a2enmod proxy_fcgi setenvif
crea tres nuevas modificaciones./mods-available/proxy.conf proxy_fcgi.load proxy.load
Del mismo modo,sudo a2enconf php7.0-fpm
crea un archivo de configuración./conf-available/php7.0-fpm.conf
Una vez hecho esto, Apache2 puede ejecutar el módulo PHP7 como un servicio rápido de CGI.Estoy ejecutando Apache en Ubuntu y mi problema fue que al
/etc/apache2/mods-available/php5.conf
archivo le faltaba esto:Lo agregué nuevamente y php estaba analizando los archivos php correctamente.
fuente
nota para usuarios de php 7, agregue esto a su archivo httpd.conf:
fuente
httpd.conf
archivo se encuentra en/etc/apache2/httpd.conf
Si está usando Ubuntu, estaríaapache2.conf
en el mismo directorio que necesita ser modificado para PHP7.Encontré otro problema que causa este problema y ya lo resolví. Accidentalmente guardé mi script en la
UTF-16
codificación. Parece que PHP5 no puede reconocer la<?php
etiqueta en la codificación de 16 bits de forma predeterminada.fuente
Estoy publicando esta respuesta porque mi interfaz de administrador Virtualmin / Webmin decidió que era una buena idea deshabilitar mi motor PHP ... me tomó un tiempo encontrar la solución, así que pensé en compartirla con ustedes:
Además, asegúrese de verificar que ninguno de los archivos de configuración de su sitio web relacionados con este host específico o host virtual tenga ningún php_admin_value en ellos que apague PHP, como este:
En caso de duda, coméntalo ...
Y reinicie su servidor web.
fuente
/etc/apache2/mods-enabled/php7.conf
ophp5.conf
sudo grep php_admin_value /etc/* -R
Solo está abriendo su archivo php en el navegador. Tienes que abrirlo usando localhost url. si abre un archivo directamente desde su directorio, no ejecutará el código php en ningún caso.
uso:
http://locahost/index.php
ohttp:127.0.0.1/index.php
Habilitar código corto de php. En su caso, está utilizando
<?
cuál es el código corto de PHP<?php
. Por defecto, los códigos cortos de php están deshabilitados.También use:
sudo apt-get install php5 libapache2-mod-php5 php5-mcrypt
si es un usuario de ubuntu.fuente
Sé que debería sonar tonto ... pero rara vez sucede.
Comprueba si estás intentando ejecutar php desde
y no de
ps> puedes notar que si escribes desde shell
responde con el código (significa funciones php).
fuente
Esto me sucedió nuevamente, junto con el servidor descargando archivos html, en lugar de procesarlos. No había usado el servidor web Apache por algún tiempo en la computadora y mientras tanto Ubuntu actualizó como dos versiones más de LTS instalado originalmente. Ahora es
Entonces el php funcionó así:
El servidor web ahora estaba analizando el php. Tal vez ahora tengo que actualizar algunas webs desde que php7.0 ahora se ejecuta donde estaba antes de ejecutar php5. Oh bien.
fuente
He resuelto esto desinstalando XAMPP e instalando WAMP. Gracias por la ayuda.
fuente
Me enfrenté a este problema en php 7.1 que viene con High Sierra (OS X 10.13.5), la edición
/etc/apache2/httpd.conf
con los siguientes cambios ayudó:Descomenta esta línea
Pegar siguiendo al final
fuente
en mi ubuntu 14.04, apache 2.4, php 5.5.9 install, probé con un sample.php en / var / www / html (raíz de documento predeterminada) y funcionó bien. Entonces el problema estaba en mi configuración de Servidores Virtuales. La solución fue incluir, en la definición del Directorio que contiene el .php, esta línea:
fuente
Asegúrese de que el script contenga
antes del código que debe ejecutarse. No debe haber espacio entre
<?
yphp
en esto.fuente
Tuve un problema similar pero en mi caso la solución fue diferente. mi archivo que contenía código php se llamaba "somename.html" lo cambió a "somename.php" funcionó bien
fuente
Para una nueva configuración de LAMP ejecutando php 7, edite el archivo /etc/httpd/conf/httpd.conf Nota: asegúrese de hacer una copia de seguridad antes de cambiar nada.
Pegue esto en la parte inferior del archivo:
Luego, busque LoadModule y pegue la siguiente línea:
Esta línea simplemente le pedirá a httpd que cargue el módulo php 7
Luego reinicie httpd
fuente
Verifique todos los paquetes que ha instalado para php usando:
Instale todos los paquetes php relevantes , especialmente php-devel en su máquina.
fuente
Esto estaba en mi .htaccess
index.html contenía código PHP. Por defecto, PHP no procesará archivos con extensiones como htm * como código PHP.
Puede anular esto, agregando lo siguiente a .htaccess:
fuente
Creo que el problema de que muestra código en lugar del resultado es que no va al host local. vuelva a verificar en qué dirección ingresa. ¿Va a un directorio de archivos local o al host local?
de la captura de pantalla que envió, va a su computadora, no al host local.
"file: ///" debería ser "localhost /"
fuente
Reinstalar el
mcrypt
módulo funcionó para mí.fuente
Tuve un caso en el que accidentalmente comencé a descomprimir mi directorio de archivos en la raíz. Agregó el archivo .htaccess de mi carpeta de archivos que bloquearía todo php
Línea inferior verifique el archivo .htaccess en la raíz.
fuente
Si tiene una configuración como esta:
Descomente las siguientes líneas en su httpd.conf
Esto funciona para mi
fuente
Agregue
AddType application/x-httpd-php .php
a su archivo httpd.conf si está usando Apache 2.4fuente
Acabo de pasar horas intentando que PHP 5 se ejecute con Apache 2.4 en Windows 10 . Finalmente para mí fue un error tipográfico en httpd.conf
LoadModule
. Atrajo la atención hacia la escritura y la ruta exacta del módulo a través de la última respuesta en este hilo de apachelounge de denny2018 . ¡Gracias!Tenía
LoadModule php5_module "c:/php/php5apache2.dll"
pero correcto para Apache 2.4 es:Así que también me perdí el
_4
antes (para apache 2.4 ). El fragmento completo que funcionó para mí:Acabo de probar PHP 7 . Allí se lee la
LoadModule
línea en httpd.conf para Apache 2.4Actualmente manual de php muestra
c:/php/php5apache2.dll
cuál, por supuesto, debe ajustarse.fuente
en mi caso (Apache / 2.4.34),
después de descomentar el módulo específico
de
Mi problema se fue.
fuente
En caso de que estemos en la misma página, haga lo siguiente
sudo apt-get install php -y
sudo apt-get install php-{bcmath,bz2,intl,gd,mbstring,mysql,zip,fpm} -y
Para habilitar PHP 7.2 FPM en Apache2, haga lo siguiente:
a2enmod proxy_fcgi setenvif
a2enconf php7.2-fpm
Actualización 2: Apache descarga el archivo .php en lugar de renderizar
Después de eso, me enfrenté al problema anterior. Hay preguntas similares como esta .
No sé por qué, pero solo sucedió con mis archivos .php en
/var/www/html/
la carpeta raíz. todo estaba bien para los subdirectorios. (por ejemplo, wordpress y phpmyadmin funcionaron bien)Entonces aquí está mi solución. Decidí habilitar el módulo php. entonces ejecuté este comando:
a2enmod php7.2
pero tengo estos errores:
así que decidí desactivar mpm ejecutando los siguientes comandos:
luego reinicie apache:
systemctl restart apache2
luego habilite php7.2 (mi versión instalada):
sudo a2enmod php7.2
y ahora todo funciona bien.
fuente
Otra posible causa de este problema podría ser que está intentando ejecutar el script en un "directorio de usuarios" 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 etiqueta en la parte inferior que dicefuente
el archivo que pones en / var / www / html / debe tener .php ejemplo ejemplo.php si es ejemplo no está funcionando pero si lo cambias a ejemplo.php funciona.
fuente