153 votes

Apache affiche le code PHP au lieu de l'exécuter

J'ai récemment essayé d'installer PHP et Apache sur mon ordinateur. Après plusieurs heures, ils sont installés. J'ai modifié les fichiers httpd.conf et php.ini comme tout le monde le dit. J'ai ensuite créé un simple script :

<?php phpinfo(); ?>

Mais quand j'essaie de l'exécuter avec http://127.0.0.1/phpinfo.php il affiche juste le code source au lieu de l'exécuter. J'utilise Apache 2, PHP 5 et Windows Vista.

LIGNES ÉDUITES :

PHP.INI :

short_open_tag = On

HTTPD.CONF

LoadModule php5_module "C:/php/php5apache2_2.dll"
AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps
PHPIniDir "C:/php"

2voto

paul Points 912

Ce qui a marché pour moi :

Dans le fichier actif httpd.conf, trouvez

<IfModule mime_module>
...
</IfModule>

Il manquait les éléments suivants

AddType application/x-httpd-php .php
AddHandler application/x-httpd-php .php

Après le redémarrage d'Apache, les fichiers .php sont correctement analysés.

1voto

user906489 Points 71

Si le module userdir est activé et que votre site est dans un userdir (~/public_html) vous devez vérifier /etc/apache2/mods-enabled/php5.conf. La partie suivante permet de le faire fonctionner (sur Ubuntu 14.10 utopic) :

# Running PHP scripts in user directories is disabled by default
# 
# To re-enable PHP in user directories comment the following lines
# (from <IfModule ...> to </IfModule>.) Do NOT set it to On as it
# prevents .htaccess files from disabling it.

# <IfModule mod_userdir.c>
#     <Directory /home/*/public_html>
#        php_admin_flag engine Off
#    </Directory>
# </IfModule>

1voto

berhauz Points 26

Aucun des éléments ci-dessus n'a été appliqué ou n'a fonctionné pour moi... PHP7, Apache Httpd 2.2 sur CentOS 6

le fait est que j'ai installé (tout avec yum) php AVANT Apache... il faut faire l'inverse : toujours installer Apache en premier, puis PHP, et ensuite ça marche... En effet, il vous manque probablement libphp7.so y libphp7-zts.so sur /etc/httpd/modules/

J'ai quand même pu récupérer sans désinstaller PHP. J'ai ajouté la ligne magique dans /etc/httpd/conf/httpd.conf : AddType application/x-httpd-php .php Et ensuite courir : yum install php php-mysql

1voto

Bren1818 Points 400

J'ai essayé un certain nombre de solutions ci-dessus, mais la solution dans notre scénario était d'installer le module fpm.

Nous avions installé httpd avant php, ce qui peut avoir un rapport avec le problème, mais pour le résoudre, nous avons installé ce qui suit :

yum module install php:7.2

Cela a installé le module php-fpm-7.2.11-4.module+el8.1.0+5443+bc1aeb77.x86_64.rpm que nous avons ensuite activé par :

systemctl enable --now php-fpm

A partir de là, nous avons laissé le fichier /etc/httpd/conf.d/php.conf par défaut et redémarré httpd

service httpd restart

Puis tout a fonctionné.

J'espère que ça aidera, ça a pris beaucoup plus de temps que prévu pour le découvrir.

0voto

Torsten Knodt Points 59

J'ai eu le même problème, causé par la configuration par défaut du module de Debian/ Ubuntu suphp . Il contenait suPHP_Engine off pour l'ensemble de /usr/share, ce qui a permis d'afficher les sources php dans le navigateur. La désactivation avec a2dismod suphp était la solution provisoire.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X