67 votes

PHP script ne s'exécute pas sur le serveur Apache

Je viens de réinstaller Apache et PHP5, mais lorsque je me rends à la racine de mon document, je ne télécharge qu'un fichier "download". Et quand j'essaie documentroot /index.php, il télécharge simplement le fichier PHP.

J'ai installé PHP mais Apache ne semble pas vouloir l'exécuter.
Des personnes m'ont suggéré d'ajouter une ligne "Load Module" à mon fichier httpd.conf mais je n'ai pas ce fichier.

131voto

girardengo Points 4735

Dactylographie :

sudo apt-get install apache2 php5 libapache2-mod-php5

installera tout ce dont vous avez besoin et démarrera le serveur apache avec le support de PHP.

Pour vérifier que le module php est chargé, tapez :

a2query -m php5

si non activé, alors charger avec :

sudo a2enmod php5

et redémarrer apache :

sudo service apache2 restart

Mise à jour pour php7.x (testé sur Ubuntu 16.04, 16.10, 18.04, 18.10) )

Grâce aux commentaires, je mets à jour la réponse pour php7.x.

Installez :

sudo apt-get install apache2 php7.x libapache2-mod-php7.x 

Vérifier :

a2query -m php7.x

Charge :

sudo a2enmod php7.x

Redémarrer apache :

sudo service apache2 restart

20voto

tufelkinder Points 301

Une autre cause fréquente est que les balises courtes php <? ne sont pas activés par la configuration par défaut du php.ini, donc après une mise à jour ou une réinstallation, ce paramètre peut être désactivé et le code php peut en dépendre. Essayez de remplacer <? avec <?php .

( Crédit )

18voto

daltonfury42 Points 5229

Ubuntu 16.04 est passé à PHP 7. Cette commande unique fera le travail pour vous :

sudo apt-get install apache2 php libapache2-mod-php

Aquí libapache2-mod-php est un méta-paquet qui installe libapache2-mod-php7.

4voto

Jiminy Idiot Points 41

J'ai rencontré le même problème, mais mon problème particulier était unique. Je fonctionnais dans un répertoire d'utilisateur (en utilisant mod_userdir) - ce qui signifie que vous accédez à ma page web avec http://host.name.com/~nom d'utilisateur/exemple.php

Ceci est désactivé par défaut dans le fichier php*.conf dans mon répertoire mods-enabled. J'ai dû le modifier pour le mettre en commentaire :

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

C'était une douleur à comprendre

Je doute que quelqu'un ait eu CE problème particulier, mais je me suis dit que j'allais l'ajouter parce qu'il m'a laissé perplexe et que PEUT-ÊTRE quelqu'un fait la même chose. Je suppose que plus personne n'utilise ~/user, sauf moi.

Vous devez bien sûr redémarrer apache après cela.

3voto

mevers303 Points 166

Pour les personnes qui ont trouvé cet article de Google près de 6 ans dans le futur (et au-delà !), vous pouvez rencontrer ce problème avec Apache 2 et PHP 7 tout en utilisant également l'option UserDir module.

Une autre cause possible de ce problème pourrait être que vous essayez d'exécuter le script dans un "répertoire utilisateur" à partir de l'adresse de l'utilisateur. UserDir module. L'exécution de scripts PHP dans les répertoires des utilisateurs est désactivée par défaut. Vous rencontrerez ce problème si le scripts se trouve dans le répertoire de l'utilisateur. public_html dans votre dossier personnel et vous essayez d'y accéder à partir de http://localhost/~your_username .

Pour résoudre ce problème, ouvrez /etc/apache2/mods-enabled/php7.2.conf . Vous devez commenter ou supprimer le bloc de balises en bas qui dit

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

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X