PHP s'affiche en texte brut après la mise à niveau vers 18.04

8

Je viens de passer à Ubuntu 18.04. Apache sert maintenant le php de mon site Web en php en texte clair. J'ai déjà essayé: pourquoi mes fichiers PHP s'affichent-ils en texte brut? (sur Stack Overflow) et PHP 7 et apache affichent du texte brut et ne peuvent pas être redémarrés . Les packages php installés sont:

php              php7.2-cli       php7.2-fpm       php7.2-mbstring  php7.2-pgsql     php7.2-sqlite3   php7.2-zip       php-curl         php-igbinary     php-pgsql        php-xml
php7.2           php7.2-common    php7.2-gd        php7.2-mysql     php7.2-readline  php7.2-xml       php-bz2          php-fpm          php-mbstring     php-soap         php-xmlrpc
php7.2-bz2       php7.2-curl      php7.2-json      php7.2-opcache   php7.2-soap      php7.2-xmlrpc    php-common       php-gd           php-mysql        php-sqlite3      php-zip

Un des sites Web en question peut être consulté ici .

L'apache error.log:

[Thu Apr 26 16:02:12.740886 2018] [mpm_prefork:notice] [pid 6504] AH00169: caught SIGTERM, shutting down

[Thu Apr 26 16:02:13.001806 2018] [mpm_prefork:notice] [pid 7704] AH00163: Apache/2.4.29 (Ubuntu) OpenSSL/1.1.0g configured -- resuming normal operations

[Thu Apr 26 16:02:13.001900 2018] [core:notice] [pid 7704] AH00094: Command line: '/usr/sbin/apache2'

Et le access.log:

<MYIP> - - [26/Apr/2018:16:02:40 +0200] "-" 408 3435 "-" "-"

<MYIP> - - [26/Apr/2018:16:02:40 +0200] "-" 408 3435 "-" "-"

<MYIP> - - [26/Apr/2018:16:02:40 +0200] "-" 408 3435 "-" "-"
Benedikt Wutzi
la source
Vous devriez probablement installer et activer le bon module php d'Apache libapache2-mod-php7.2(et purger l'ancien).
pa4080
libapache2-mod-php7.2 est déjà la dernière version. :(
Benedikt Wutzi
Peut-être vous devriez l' activer: sudo a2enmod php7.2.
pa4080
1
Le module php7.2 est déjà activé. ;)
Benedikt Wutzi
1
Pourriez-vous écrire la réponse comme réponse alors s'il vous plaît? Il serait utile que d'autres personnes tombent sur la même situation
Lily Bergonzat

Réponses:

23

C'est ce qui a trié mon installation

sudo apt install php7.2 php7.2-common php7.2-cli
sudo a2enmod php7.2
Phippsy
la source
2
Merci, pour moi l'activation du module php7.2 a parfaitement fonctionné, - il semble qu'il y ait eu des conflits entre plusieurs versions de php
Agnius Vasiliauskas
1
Je n'avais besoin que de la deuxième ligne a2enmod. Une fois que cela a été activé, l'application est apparue. Merci!
user1794918
4

En fait, en plus des commandes de cette réponse , vous avez besoin

sudo apt install libapache2-mod-php

ainsi que. D'une certaine manière, il a disparu!

Jarek
la source
0

Il semble que cela puisse être lié à l'installation et à l'activation de 2 versions de PHP en même temps après la mise à niveau. Aucun des éléments ci-dessus n'a fonctionné pour moi, j'ai donc désinstallé Apache, PHP 7.1 et PHP 7.2, réinstallé Apache et PHP 7.2 et les choses fonctionnent maintenant.

Jonathan Bossenger
la source
0

J'ai rencontré cela lors de la mise à niveau d'Ubuntu 16.04.6 LTS vers 18.04 LTS à l'aide de l' do-release-upgradeoutil. Dans mon cas, les éléments suivants ont aidé:

sudo apt-get install php7.2 libapache2-mod-php

Cela a également ajouté libapache2-mod-php7.2. php7.2-commonet php7.2-cliétaient déjà installés, ils ont donc été ignorés. sudo a2enmod php7.2a été exécuté automatiquement par apt-get.

BTW, vous pouvez diagnostiquer ce problème en créant un fichier /var/www/html/phpinfo.phpavec le contenu suivant:

<?php phpinfo(); ?>

puis en pointant votre navigateur vers l'URL http://your.server/phpinfo.php. Vous devriez obtenir une belle page Web avec tous les paramètres PHP. Si vous obtenez le <?php phpinfo(); ?>texte à la place, vous devez installer les packages décrits ci-dessus.

Je mentionne cela parce que je viens de courir php -vsur la ligne de commande et il m'a dit que PHP 7.2 était installé. Ce qui est en quelque sorte vrai (car les éléments de ligne de commande du package ont php7.2-clieffectivement été installés), mais ce n'est pas toute l'histoire. :-)

Laryx Decidua
la source