PHP wyświetla się jako zwykły tekst po aktualizacji do 18.04

8

Właśnie zaktualizowałem system do Ubuntu 18.04. Teraz apache służy php mojej witryny jako zwykły tekst php. Już próbowałem: Dlaczego moje pliki PHP są wyświetlane jako zwykły tekst? (w przypadku przepełnienia stosu) oraz PHP 7 i apache wyświetlają zwykły tekst i nie można go ponownie uruchomić . Zainstalowane pakiety php to:

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

Jedną z omawianych witryn można zobaczyć tutaj .

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'

Oraz 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
źródło
Prawdopodobnie powinieneś zainstalować i włączyć odpowiedni moduł php Apache libapache2-mod-php7.2(i wyczyścić stary).
pa4080
libapache2-mod-php7.2 jest już najnowszą wersją. :(
Benedikt Wutzi
Może powinieneś ją włączyć: sudo a2enmod php7.2.
pa4080
1
Moduł php7.2 jest już włączony. ;)
Benedikt Wutzi
1
Czy mógłbyś zatem napisać odpowiedź jako odpowiedź? Byłoby pomocne, gdyby inni ludzie wpadli na tę samą sytuację
Lily Bergonzat,

Odpowiedzi:

23

To właśnie posortowało moją instalację

sudo apt install php7.2 php7.2-common php7.2-cli
sudo a2enmod php7.2
Phippsy
źródło
2
Dzięki, że włączenie modułu php7.2 działało idealnie, - wydaje się, że wystąpiły konflikty między wieloma wersjami php
Agnius Vasiliauskas
1
Potrzebowałem tylko drugiej linii a2enmod. Po włączeniu pojawiła się aplikacja. dzięki!
user1794918,
4

W rzeczywistości, oprócz poleceń zawartych w tej odpowiedzi , potrzebujesz

sudo apt install libapache2-mod-php

także. Jakoś zniknął!

Jarek
źródło
0

Wygląda na to, że może to mieć związek z zainstalowaniem i włączeniem 2 wersji PHP jednocześnie po aktualizacji. Żadne z powyższych nie działało dla mnie, więc odinstalowałem Apache, PHP 7.1 i PHP 7.2, ponownie zainstalowałem Apache i PHP 7.2 i wszystko działa teraz.

Jonathan Bossenger
źródło
0

Natrafiłem na to podczas aktualizacji z Ubuntu 16.04.6 LTS do 18.04 LTS za pomocą tego do-release-upgradenarzędzia. W moim przypadku pomogły:

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

To również zostało dodane libapache2-mod-php7.2. php7.2-commoni php7.2-clizostały już zainstalowane, więc zostały zignorowane. sudo a2enmod php7.2został wykonany automatycznie przez apt-get.

BTW, możesz zdiagnozować ten problem, tworząc plik /var/www/html/phpinfo.phpo następującej zawartości:

<?php phpinfo(); ?>

a następnie wskazując przeglądarce adres URL http://your.server/phpinfo.php. Powinieneś uzyskać ładną stronę ze wszystkimi ustawieniami PHP. Jeśli <?php phpinfo(); ?>zamiast tego pojawi się tekst, musisz zainstalować pakiety opisane powyżej.

Wspominam o tym, ponieważ najpierw uruchomiłem php -vwiersz poleceń i powiedział mi, że PHP 7.2 został zainstalowany. Co jest w pewnym sensie prawdą (ponieważ wiersze poleceń z pakietu php7.2-clirzeczywiście zostały zainstalowane), ale to nie jest cała historia. :-)

Laryx Decidua
źródło