Le code PHP n'est pas exécuté, mais le code apparaît sur la page
j'essaie d'exécuter du code PHP sur un projet (en utilisant Dreamweaver) mais le code n'est pas exécuté.
quand je vérifie le code source, le code PHP apparaît comme des balises HTML (je peux le voir dans le code source). Apache fonctionne correctement (je travaille avec XAMPP), les pages PHP sont ouvertes correctement mais le code PHP n'est pas exécuté.
est-ce que quelqu'un a une suggestion sur ce qui se passe?
Note: le fichier est déjà nommé filename.php
Edit: code..:
<?
include_once("/code/configs.php");
?>
24 réponses
Sonne comme il ya quelque chose de mal avec votre configuration, voici quelques choses que vous pouvez vérifier:
-
assurez-vous que PHP est installé et fonctionne correctement. Cela peut paraître idiot, mais on ne sait jamais. Une façon facile de vérifier est d'exécuter
php -v
à partir d'une ligne de commande et de voir si renvoie des informations de version ou des erreurs. -
assurez - vous que le module PHP est listé et non complété à l'intérieur du httpd de votre Apache.conf cela devrait être quelque chose comme
LoadModule php5_module "c:/php/php5apache2_2.dll"
dans le fichier. CherchezLoadModule php
, et assurez-vous qu'il n'y a aucun commentaire (;
) en face de lui. -
assurez-vous que Apache soit httpd.le fichier conf a le type MIME PHP. Ça devrait être quelque chose comme
AddType application/x-httpd-php .php
. Cela indique à Apache de lancer les fichiers.php
en PHP. Rechercher AddType, puis s'assurer qu'Il ya une entrée pour PHP, et qu'il est non complété . -
assurez-vous que votre fichier a l'extension
.php
dessus, ou quelle que soit l'extension spécifiée dans la définition MIME au point #3, sinon il ne sera pas exécuté comme PHP. -
assurez-vous que vous n'utilisez pas short tags dans le fichier PHP (
<?
), ceux-ci sont non activé sur tous les serveurs par défaut et leur utilisation est déconseillée. Utilisez<?php
à la place (ou activer les balises courtes dans votre php.ini avecshort_open_tag=On
si vous avez un code qui s'appuie sur eux). -
assurez-vous que vous accédez à votre fichier sur votre serveur web en utilisant une URL comme
http://localhost/file.php
pas via l'accès au fichier localfile://localhost/www/file.php
et enfin vérifier le manuel PHP pour d'autres conseils de configuration .
J'exécute Apache sur Ubuntu et mon problème était que le fichier /etc/apache2/mods-available/php5.conf
manquait ceci:
<FilesMatch ".+\.ph(p[345]?|t|tml)$">
SetHandler application/x-httpd-php
</FilesMatch>
Je l'ai ajouté en arrière dedans et php parsait des dossiers php correctement.
php7:
sudo a2enmod proxy_fcgi setenvif
sudo a2enconf php7.0-fpm
sudo service apache2 restart
j'ai trouvé un autre problème à l'origine de ce problème et je l'ai déjà résolu. J'ai accidentellement enregistré mon script dans l'encodage UTF-16
. Il semble que PHP5 ne puisse pas reconnaître la balise <?php
en encodage 16 bits par défaut.
note pour les utilisateurs de php 7, ajoutez ceci à votre httpd.fichier conf:
# PHP 7 specific configuration
<IfModule php7_module>
AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps
<IfModule dir_module>
DirectoryIndex index.html index.php
</IfModule>
</IfModule>
je poste cette réponse parce que mon interface D'administration Virtualmin/Webmin a décidé que c'était une bonne idée de désactiver mon moteur PHP.. ça m'a pris du temps pour trouver la solution, alors j'ai pensé que je la partagerais avec vous les gars:
aussi, assurez-vous de vérifier qu'aucun des fichiers de configuration de votre site Web liés à cet hôte spécifique ou virtualhost n'a de php_admin_value qui éteint PHP, comme ceci:
php_admin_value engine Off
en cas de doute, en commentaire...
# php_admin_value engine Off
et redémarrez votre serveur web.
Oh Mon Dieu! Je viens de voir votre image postée à nouveau, vous ouvrez juste votre fichier php dans le navigateur. vous avez ouvert utilise l'url localhost. si vous ouvrez un fichier directement à partir de votre répertoire, il n'exécutera pas le code php dans tous les cas.
utilisation: http://locahost/index.php
ou http:127.0.0.1/index.php
activer le code php court dans votre cas, vous utilisez <?
qui est le code php court pour <?php
par défaut les codes courts php sont désactivés.
également utiliser: sudo apt-get install php5 libapache2-mod-php5 php5-mcrypt
si vous êtes un utilisateur ubuntu.
je sais que ça doit sembler idiot... mais rarement il arrive.
vérifiez si vous essayez d'exécuter php à partir de
**http://localhost/info.php**
et non de
file:///var/www/info.php
ps> Vous pouvez remarquer que si vous écrivez à partir de shell
php info.php
il répond avec le code (il signifie fonctions php)..
j'ai résolu ce problème en désinstallant XAMPP et en installant WAMP. Merci pour l'aide.
j'ai eu le même problème mais dans mon cas était différent. mon fichier qui contenait du code php s'appelait " somename.html " changé "abc.php" a bien fonctionné
cela vient de m'arriver à nouveau, avec le téléchargement de fichiers html par le serveur, plutôt que le traitement. Je n'avais pas utilisé le serveur web apache depuis un certain temps sur l'ordinateur et entre-temps Ubuntu mis à jour comme deux autres versions de LTS installés à l'origine. Maintenant c'est
$ cat /etc/issue
Ubuntu 16.04 LTS
donc le php a fonctionné après comme ainsi:
$ sudo apt-get install lamp-server^
$ sudo a2enmod php7.0
$ sudo service apache2 restart
le serveur web analysait maintenant le php. Peut-être qu'il faut maintenant mettre à jour quelques réseaux depuis php7.0 en cours d'exécution Où as c'était avant de lancer php5. Oh bien.
sur mon ubuntu 14.04, apache 2.4, php 5.5.9 installer, j'ai essayé avec un échantillon.php on/var/www / html (par défaut document root) et ça a marché. Donc le problème était sur la configuration de mes serveurs virtuels. La solution était d'inclure, sur le répertoire def contenant le .php, cette ligne:
php_admin_flag engine on
vérifiez tous les paquets que vous avez installés pour php en utilisant:
yum list installed | grep remi
installez tous les paquets php , surtout php-devel sur votre machine.
C'était dans mon .htaccess
DirectoryIndex index.html index.htm
de l'index.html contenait du code PHP. Par défaut, PHP ne traitera pas les fichiers avec des extentions comme htm* en tant que code PHP.
vous pouvez outrepasser cela, en ajoutant ce qui suit à .htaccess:
<FilesMatch ".+\.html$">
SetHandler application/x-httpd-php
</FilesMatch>
pour la nouvelle configuration de la lampe fonctionnant en php 7 éditer le fichier /etc/httpd/conf/httpd.conf Remarque: assurez-vous d'effectuer une sauvegarde avant de changer quoi que ce soit.
coller ceci au fond du fichier:
<IfModule php7_module>
AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps
<IfModule dir_module>
DirectoryIndex index.html index.php
</IfModule>
ensuite, rechercher LoadModule et coller la ligne suivante:
LoadModule php7_module modules/libphp7.so
cette ligne demandera simplement à httpd de charger le module php 7
puis redémarrez httpd
j'ai affronté ce problème sur php 7.1 qui est livré avec High Sierra (OS X 10.13.5), éditant /etc/apache2/httpd.conf
avec les changements suivants aidé:
-
Uncement this line
LoadModule php7_module libexec/apache2/libphp7.so
-
Coller à la fin
<IfModule php7_module> AddType application/x-httpd-php .php AddType application/x-httpd-php-source .phps <IfModule dir_module> DirectoryIndex index.html index.php </IfModule> </IfModule>
je pense que le problème qu'il montre le code au lieu du résultat est qu'il ne va pas à l'hôte local . vérifiez que l'adresse u r aller dans. sont u assister à un fichier ou à l'hôte local.
de la capture d'écran u envoyé il va à ur ordinateur pas au localhost.
"file:///" il faut "localhost/"
réinstaller le module mcrypt
a fonctionné pour moi.
$sudo apt-get install php5-mcrypt
$sudo php5enmod mcrypt
j'ai eu un cas où j'ai accidentellement commencé à démêler mon répertoire de fichiers dans root. - Il ajouté .htaccess fichier de mon dossier de fichiers qui bloquerait tous les php
# If we know how to do it safely, disable the PHP engine entirely.
<IfModule mod_php5.c>
php_flag engine off
</IfModule>
Vérifier le bilan .fichier htaccess sur root.
si vous avez la configuration suivante:
<VirtualHost *:80>
ServerName example.com
DocumentRoot "/var/www/example.com"
<FilesMatch "\.php$">
SetHandler "proxy:fcgi://127.0.0.1:9000"
</FilesMatch>
</VirtualHost>
décommentez les lignes suivantes de votre httpd.conf
LoadModule proxy_module lib/httpd/modules/mod_proxy.so
LoadModule proxy_fcgi_module lib/httpd/modules/mod_proxy_fcgi.so
Ça marche pour moi
ajouter AddType application/x-httpd-php .php
à votre httpd.fichier conf si vous utilisez Apache 2.4
assurez-vous que le script contient
<?php
avant le code qui doit être exécuté. Il ne doit pas y avoir d'espace entre <?
et php
.
vient de passer des heures à essayer de faire fonctionner PHP 5 avec Apache 2.4 sur Windows 10 . Finalement pour moi c'était une faute de frappe dans httpd.conf LoadModule
. Attiré l'attention sur l'écriture et la trajectoire exacte du module à travers le dernière réponse dans ce fil apachelounge de denny2018 . Je vous remercie!
après deux nuits j'ai découvert... Mon répertoire a été écrit
c:
(minuscule)
j'avais LoadModule php5_module "c:/php/php5apache2.dll"
mais correct pour apache 2.4 est:
LoadModule php5_module "C:/php/php5apache2_4.dll"
donc j'ai aussi manqué le _4
avant (pour apache 2.4 ). L'extrait complet qui a fonctionné pour moi:
# PHP
LoadModule php5_module "C:/php/php5apache2_4.dll"
AddHandler application/x-httpd-php .php
<FilesMatch \.php$>
SetHandler application/x-httpd-php
</FilesMatch>
Juste essayé PHP 7 . Il y a la ligne LoadModule
dans httpd.conf pour Apache 2.4 lit
LoadModule php7_module "C:/php/php7apache2_4.dll"
actuellement manuel php montre c:/php/php5apache2.dll
qui, bien sûr, doit être ajustée.
dans mon cas (Apache/2.4.34),
après avoir décompressé le module spécifique
" LoadModule php7_module libexec/apache2 / libphp7.so "
de
" /etc/apache2 / httpd.conf "
mon problème avait disparu.