web-dev-qa-db-fra.com

PHP le code _ n'est pas en cours d'exécution, le code s'affiche sur la page.

J'essaie d'exécuter du code PHP sur un projet (à l'aide de Dreamweaver), mais le code n'est pas en cours d'exécution.

Lorsque je vérifie le code source, le code PHP apparaît sous forme de balises HTML (je peux le voir dans le code source). Apache fonctionne correctement (je travaille avec XAMPP), les pages PHP s'ouvrent correctement mais le code PHP n'est pas en cours d'exécution.

Quelqu'un a-t-il une suggestion à propos de ce qui se passe?

Remarque: Le fichier porte déjà le nom filename.php

Edit: Le code ..:

<?
include_once("/code/configs.php");
?>

The print

291
Gui

On dirait que quelque chose ne va pas dans votre configuration, voici quelques points à vérifier:

  1. Assurez-vous que PHP est installé et fonctionne correctement. Cela peut sembler idiot, mais on ne sait jamais. Un moyen simple de vérifier consiste à exécuter php -v à partir d'une ligne de commande et à vérifier si des informations sur la version ou des erreurs sont renvoyées.

  2. Assurez-vous que le module PHP est répertorié et non commenté dans le fichier httpd.conf de votre Apache. Cela devrait ressembler à quelque chose comme LoadModule php5_module "c:/php/php5Apache2_2.dll" dans le fichier. Recherchez LoadModule php et assurez-vous qu'il n'y a pas de commentaire (;) devant celui-ci.

  3. Assurez-vous que le fichier httpd.conf du serveur Apache contient le type MIME PHP. Cela devrait être quelque chose comme AddType application/x-httpd-php .php. Cela indique à Apache d'exécuter les fichiers .php en tant que PHP. Recherchez AddType, puis assurez-vous qu'il existe une entrée pour PHP et qu'elle est décommentée .

  4. Assurez-vous que votre fichier a l'extension .php, ou quelle que soit l'extension spécifiée dans la définition MIME au point 3, sinon il ne sera pas exécuté en tant que PHP.

  5. Assurez-vous de ne pas utiliser balises courtes dans le fichier PHP (<?), elles sont non activées sur tous les serveurs par défaut et leur utilisation est découragée. Utilisez <?php à la place (ou activez les balises courtes dans votre php.ini avec short_open_tag=On si vous avez du code qui les utilise).

  6. Assurez-vous d’accéder à votre fichier sur votre serveur Web en utilisant une URL telle que http://localhost/file.php et non par l’accès local au fichier file://localhost/www/file.php.

Et enfin, consultez le manuel PHP pour plus d’informations sur la configuration .

385
shmeeps

php7:

Sudo a2enmod proxy_fcgi setenvif
Sudo a2enconf php7.0-fpm
Sudo service Apache2 restart
45
sj59

J'utilise Apache sur Ubuntu et mon problème était que le fichier /etc/Apache2/mods-available/php5.conf manquait:

<FilesMatch ".+\.ph(p[345]?|t|tml)$">
    SetHandler application/x-httpd-php
</FilesMatch>

Je l'ai rajouté et php analysait correctement les fichiers php.

32
Matt McDonald

remarque pour les utilisateurs de PHP 7, ajoutez ceci à votre fichier httpd.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>
26
EdC

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 au format UTF-16. Il semble que PHP5 ne reconnaisse pas la balise <?php en codage 16 bits par défaut.

21
Arrvi

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 .. m'a mis un certain temps à trouver la solution, alors j'ai pensé d le partager avec vous les gars:

Aussi, assurez-vous de vérifier qu'aucun fichier de configuration de site Web lié à cet hôte spécifique ou virtualhost n'a de php_admin_value qui désactive PHP, comme ceci:

php_admin_value engine Off

En cas de doute, commentez-le ...

# php_admin_value engine Off

Et redémarrez votre serveur Web.

18
Henry van Megen

Vous venez d'ouvrir votre fichier php dans le navigateur. Vous devez l'ouvrir en utilisant l'URL localhost. si vous ouvrez un fichier directement à partir de votre répertoire, il n'exécutera en aucun cas le code php.

tilisez: http://locahost/index.php ou http:127.0.0.1/index.php)

Activer le code abrégé php. Dans votre cas, vous utilisez <? qui est un code court php pour <?php. Par défaut, les codes courts php sont désactivés.

Utilisez également: Sudo apt-get install php5 libapache2-mod-php5 php5-mcrypt si vous êtes un utilisateur d'ubuntu.

15
Hasan Baig

Je sais que cela devrait sembler stupide ... mais cela arrive rarement.

Vérifiez si vous essayez d'exécuter php à partir de

**http://localhost/info.php**

et pas de

file:///var/www/info.php

ps> vous remarquerez que si vous écrivez depuis Shell

php info.php 

il répond avec le code (cela signifie fonctions php) ..

8
user3257072

Cela m'est encore arrivé, avec le téléchargement des fichiers HTML par le serveur, plutôt que le traitement. Je n'avais pas utilisé le serveur Web Apache pendant un certain temps sur l'ordinateur et entre-temps, Ubuntu était mis à jour comme deux versions supplémentaires de LTS installé à l'origine. C'est maintenant

$ cat /etc/issue
Ubuntu 16.04 LTS

Donc, le php a fonctionné après comme si:

$ Sudo apt-get install lamp-server^
$ Sudo a2enmod php7.0
$ Sudo service Apache2 restart 

Le serveur Web analysait maintenant le php. Peut-être que nous avons maintenant la possibilité de mettre à jour certains sites Web depuis que php7.0 est en cours d’exécution où il était avant d’exécuter php5. Tant pis.

7
ndasusers

J'ai résolu ce problème en désinstallant XAMPP et en installant WAMP. Merci pour l'aide.

5
Gui

sur mon Ubuntu 14.04, Apache 2.4, php 5.5.9 installer, j'ai essayé avec un sample.php sur/var/www/html (racine du document par défaut) et cela a fonctionné. Donc, le problème était sur ma configuration de serveurs virtuels. La solution consistait à inclure sur le répertoire def contenant le .php cette ligne:

    php_admin_flag engine on
4
Rogelio

J'ai rencontré ce problème sur php 7.1 fourni avec High Sierra (OS X 10.13.5), l'édition de /etc/Apache2/httpd.conf avec les modifications suivantes a aidé:

  1. Ne commentez pas cette ligne

    LoadModule php7_module libexec/Apache2/libphp7.so
    
  2. Coller suivant à 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>
    
4
AamirR

Vérifiez tous les paquets que vous avez installés pour php en utilisant:

yum list installed | grep remi

Installez tous les packages php pertinents, en particulier php-devel sur votre ordinateur.

3
Chaitanya Shivade

j'ai eu le même problème, mais dans mon cas, la solution était différente. mon fichier contenant le code php s'appelait "somename.html" changé en "somename.php" fonctionnait bien

3
Netrus

Pour une nouvelle configuration de LAMP sous PHP 7, éditez le fichier /etc/httpd/conf/httpd.conf. Remarque: assurez-vous de faire une sauvegarde avant de changer quoi que ce soit.

Collez ceci tout en bas 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, recherchez LoadModule et collez la ligne suivante:

LoadModule php7_module modules/libphp7.so

Cette ligne demandera simplement à httpd de charger le module php 7

Puis redémarrez httpd

2
Eric Libay

Assurez-vous que le script contient

<?php

avant le code qui doit être exécuté. Il ne doit y avoir aucun espace entre <? et php en cela.

2
Barmar

C'était dans mon .htaccess

DirectoryIndex index.html index.htm

index.html contenait le code PHP. Par défaut, PHP ne traitera pas les fichiers avec des extensions telles que htm * en tant que PHP code.

Vous pouvez le remplacer en ajoutant ce qui suit à .htaccess:

<FilesMatch ".+\.html$">
    SetHandler application/x-httpd-php
</FilesMatch>
2
Jahmic

J'ai eu un cas que j'ai accidentellement commencé à décompresser mon répertoire de fichiers dans la racine. Il a ajouté le fichier .htaccess de mon dossier de fichiers qui bloquerait tout php

# If we know how to do it safely, disable the PHP engine entirely.
<IfModule mod_php5.c>
  php_flag engine off
</IfModule>

En bout de ligne, vérifiez le fichier .htaccess à la racine.

1
albertski

dans mon cas (Apache/2.4.34),

après avoir retiré le commentaire du module spécifique

"LoadModule php7_module libexec/Apache2/libphp7.so"

de

"/etc/Apache2/httpd.conf"

mon problème était parti.

1
sh6210

Réinstaller le module mcrypt a fonctionné pour moi.

$Sudo apt-get install php5-mcrypt
$Sudo php5enmod mcrypt
1
b.g

Ajoutez AddType application/x-httpd-php .php à votre fichier httpd.conf si vous utilisez Apache 2.4

1
Ashahmali

Je viens de passer des heures à essayer d’obtenir PHP 5 sous Apache 2.4 sous Windows 10 . Enfin pour moi, c'était une faute de frappe dans httpd.conf LoadModule. A attiré l'attention sur l'écriture et le chemin exact du module à travers le dernière réponse dans ce fil de discussion apachelounge de denny2018 . Je vous remercie!

Après deux nuits, j'ai découvert ... Mon répertoire était é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"

J'ai donc 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>

Je viens d'essayer PHP 7 . La ligne LoadModule dans httpd.conf pour Apache 2.4 lit

LoadModule php7_module "C:/php/php7Apache2_4.dll"

Actuellement le manuel php apparaîtc:/php/php5Apache2.dll qui doit bien sûr être ajusté.

1
bobble bubble

Si vous avez une configuration comme celle-ci:

<VirtualHost *:80>
    ServerName example.com
    DocumentRoot "/var/www/example.com"

    <FilesMatch "\.php$">
        SetHandler "proxy:fcgi://127.0.0.1:9000"
    </FilesMatch>
</VirtualHost>

Ne commentez pas les lignes suivantes dans 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

1
user3890355

Je pense que le problème est qu’il affiche du code au lieu du résultat, c’est qu’il n’est pas transmis à l’hôte local. Revérifiez l'adresse dans laquelle vous allez. Allez-vous dans un répertoire de fichiers local ou vers l'hôte local?.

à partir de la capture d'écran que vous avez envoyé, votre ordinateur ne sera pas transmis à l'hôte local.

"fichier: ///" devrait être "localhost /"

1
Nav

le fichier que vous avez placé dans/var/www/html/devrait avoir .php par exemple example.php s’il s’agit d’un exemple, il ne fonctionne pas, mais si vous le changez en exemple.php, cela fonctionne.

0
yasin lachini