Stretch 9.6 apache2 2.4 ne reconnait pas le php

Bonjour
après un

apt-get remove --purge apache2

puis un

apt-get install apache2

/var/www/html/index.html s’affiche normalement
par contre, le fichier hello_world.php :

<?php
  print "Hello World<br>";
?>

affiche

"; ?>

le php est 7.2

Qu’est-ce qui manque ?

De dire à apache de prendre en compte php, non ?!

2 J'aime

Ca peut être plein de choses.

  • Ton php est installé mais as tu aussi installé la version de libapache2-mod-php7.2 ?

  • le module est activé dans apache (ls /etc/apache2/mods-enabled/ | grep php) ?

  • avec je ne sais pas ou la déclaration de handler qui va bien (qui a du se faire toute seule normalement):

    <FilesMatch “.php$”>
    SetHandler application/x-httpd-php
    </FilesMatch>

1 J'aime

Bonjour,

@nimant, j’essaierai sans la balise HTML

<br>

C’est juste une idée comme ça.
http://php.net/manual/fr/function.print.php

Bonjour,

Essaie de créer un fichier index.php et d’y ajouter

<?php phpinfo(); ?>

Tu verras si ton php est fonctionel ou non.
ps : n’oublie pas de lui donner les bons droits :slight_smile:

Effectivement, il me manque le fichier /etc/apache2/mods-enabled/php7.2.conf
dans /etc/apache2/mods-enabled/ j’ai ajouté
php7.2.conf -> …/mods-available/php7.2.conf

j’ai relancé apache2
rien ne se passe apache2 ne “parse” pas le php.

Tu as installé “libapache2-mod-php7.2” que @mattotop t’a demandé ?

sudo apt-get install -y libapache2-mod-php7.2
sudo a2enmod php7.2
sudo systemctl restart apache2

Normalement tu n’as pas besoin d’autre manipulation

a2enmod php7.2
Considering dependency mpm_prefork for php7.2:
Considering conflict mpm_event for mpm_prefork:
ERROR: Module mpm_event is enabled - cannot proceed due to conflicts. It needs to be disabled first!
Considering conflict mpm_worker for mpm_prefork:
ERROR: Could not enable dependency mpm_prefork for php7.2, aborting

je ne comprends pas cette erreur.

Il me semble que tu ne peux pas avoir les modules mpm_event & mpm_prefork en même temps
Pour cela :

sudo a2dismod mpm_prefork
sudo systemctl restart apache2
sudo a2enmod php7.2
sudo systemctl restart apache2

N’hésite pas à (re)mettre les erreurs s’il y en a

roo@iab>apachectl -V | grep -i mpm
Server MPM: event
roo@iab>a2dismod mpm_prefork
Module mpm_prefork already disabled
roo@iab> systemctl restart apache2
roo@iab>a2enmod php7.2
Considering dependency mpm_prefork for php7.2:
Considering conflict mpm_event for mpm_prefork:
ERROR: Module mpm_event is enabled - cannot proceed due to conflicts. It needs to be disabled first!
Considering conflict mpm_worker for mpm_prefork:
ERROR: Could not enable dependency mpm_prefork for php7.2, aborting

toujours la même chose.
Comment reinstaller apache2 ?

Du coup exécute les même commandes mais avec mpm_event

roo@iab>a2dismod mpm_event
Module mpm_event disabled.
To activate the new configuration, you need to run:
systemctl restart apache2
roo@iab>systemctl restart apache2
Job for apache2.service failed because the control process exited with error code.
See “systemctl status apache2.service” and “journalctl -xe” for details.

Mais non, attends, c’est juste une question de réglages.

C’est donc ce modèle là qui pose problème: a2dismod mpm_event

Il veut du prefork ? Donnons lui du prefork: a2enmod mpm_prefork

Et aprés: a2enmod php7.2 devrait passer mieux.
Un petit systemctl restart apache2 à la fin, pour voir si l’apache repart bien.

Et sinon, le mpm_worker à tester.

a2dismod mpm_event
a2enmod mpm_prefork
a2enmod php7.2
systemctl restart apache2

tout se passe bien, sauf que php n’est toujours pas reconnu !

ls -l /var/www/html/“ton_fichier.php”

Il doit posséder les droits suivants :

-rwxr-xr-x 1 www-data www-data

Commandes basiques linux pour faire cela :

sudo chmod 755 /var/www/html/“ton_fichier.php”
sudo chown www-data: /var/www/html/"ton_fichier.php

Si cela ne fonctionne toujours pas, deux options :

  • Regarder les logs dans /var/log/apache2/
  • Afficher les erreurs dans php.ini

Les logs sont généralement access.log et error.log

Si cela ne donne rien, modifie le fichier php.ini

sudo nano/vim/emacs /etc/php/7.2/apache2/php.ini

Cherche la ligne display_errors ( ligne 477 sur mon PC ) et modifie la en lui mettant On
Comme ceci :

display_errors = On

Puis restart apache2

sudo systemctl restart apache2

Je viens de reinstaller la 9.6 : même problème mais seulement avant d’installer php …
apt-get install phpmyadmin installe php7.0 (et pas php7.2)
Hello World fonctionne !
J’avais donc un mélange de php7.0 et php7.2 dans la précédente version de Stretch.

faudra déjà m’expliquer pour quoi print au lieu de echo …
Et il faut penser aux modules activés pour apache… moi je zappe régulièrement entre 7.1 et 7.2.
Une petite ligne commande et hop.

Bonjour,
print() ou echo effectivement.
print sous cette forme ça ressemble plus à du Python 2 :wink: