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

54

Je viens de réinstaller Apache et PHP5, mais lorsque je visite ma racine de documentation, il télécharge simplement un fichier "de téléchargement". 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.
Les gens ont suggéré d'ajouter une ligne 'Load Module' à mon httpd.conffichier mais je n'ai pas ce fichier.

utilisateur2919631
la source

Réponses:

103

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é, chargez avec:

sudo a2enmod php5

et redémarrez 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.

Installer:

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

Vérifier:

a2query -m php7.x

Charge:

sudo a2enmod php7.x

Redémarrez Apache:

sudo service apache2 restart
Girardengo
la source
Il serait préférable d’utiliser a2enmodplutôt que de copier le fichier manuellement entre mods-available et mods-enabled. a2enmodcrée un lien symbolique et vous n’avez donc qu’une copie de la configuration.
Jkt123
@ Jkt123 tu as raison. merci pour le conseil, je modifie ma réponse.
Girardengo
Dans mon cas, il est écrit "ERREUR: le module php5 n'existe pas!" il est installé
Marian Klühspies
3
pour ubuntu 16.04 avec php7 J'ai exécuté ces commandes dans l' ordre apt-get install libapache2-mod-php, a2query -m php7.0,service apache2 restart
Marlo
Pour Ubuntu 14.04: # a2query -m php7.0 php7.0 (activé par l'administrateur du site) Le code php n'est toujours pas en cours d'exécution
Ashish Karpe
19

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

( Crédit )

tufelkinder
la source
13

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

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

Voici libapache2-mod-phpun méta-package qui installe libapache2-mod-php7.

daltonfury42
la source
2

Ouvrir php.iniavec nanoterminal:

sudo nano /etc/php/php5.6/apache2/php.ini

Puis changez:

short_open_tag = Off

à

short_open_tag = On

Puis enregistrez et redémarrez apache2:

sudo systemctl restart apache2
Satrio Prasojo
la source
1
Ou réparer les scripts PHP :-)This directive determines whether or not PHP will recognize code between <? and ?> tags as PHP source which should be processed as such. It is generally recommended that <?php and ?> should be used and that this feature should be disabled [...]
Nicolas Raoul
1

J'ai rencontré le même problème, mais mon problème particulier était unique. J'exécutais dans un répertoire utilisateur (à l'aide de mod_userdir), ce qui signifie que vous accédez à ma page Web à l' adresse http://host.name.com/~username/example.php.

Ceci est désactivé par défaut dans php * .conf dans mon répertoire activé par mods. J'ai dû le modifier pour le commenter:

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

C'était pénible à comprendre ..

Eh bien, je doute que quiconque ait eu CE problème particulier, mais je me suis dit que je l’ajouterais parce que c’était pour moi une source de confusion et peut-être que quelqu'un fait la même chose. Personne n'utilise plus / utilisateur je suppose, sauf moi.

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

Jiminy Idiot
la source
0

Mon cas était un peu différent. Je suis passé d'Ubuntu 19.04 à 19.10. Pendant l’installation, il a installé PHP 7.3 (alors que PHP 7.2 était déjà installé). Avec 2 versions installées a2query -m php7.3 return Aucun module ne correspond à php7.3 .

La solution que j'ai trouvée provenait de comment installer php-7-3 sur Ubuntu .

Pour définir PHP 7.0 par défaut, exécutez

update-alternatives --set php /usr/bin/php7.0

Pour définir PHP 7.2 par défaut, exécutez

update-alternatives --set php /usr/bin/php7.2

Pour définir PHP 7.3 comme valeur par défaut, exécutez

update-alternatives --set php /usr/bin/php7.3

Avant de pouvoir configurer Apache pour utiliser PHP 7.3, nous devons désactiver l’ancienne version de PHP 7.0 en tapant

a2dismod php7.2

Activez maintenant la version PHP 7.3 nouvellement installée avec la commande suivante:

a2enmod php7.3

Redémarrez le serveur Web Apache pour que les modifications prennent effet:

sudo systemctl restart apache2
Adeel Raza Azeemi
la source