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 "-" "-"
libapache2-mod-php7.2
(i wyczyścić stary).sudo a2enmod php7.2
.Odpowiedzi:
To właśnie posortowało moją instalację
źródło
W rzeczywistości, oprócz poleceń zawartych w tej odpowiedzi , potrzebujesz
także. Jakoś zniknął!
źródło
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.
źródło
Natrafiłem na to podczas aktualizacji z Ubuntu 16.04.6 LTS do 18.04 LTS za pomocą tego
do-release-upgrade
narzę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-common
iphp7.2-cli
zostały już zainstalowane, więc zostały zignorowane.sudo a2enmod php7.2
został wykonany automatycznie przezapt-get
.BTW, możesz zdiagnozować ten problem, tworząc plik
/var/www/html/phpinfo.php
o następującej zawartości: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 -v
wiersz poleceń i powiedział mi, że PHP 7.2 został zainstalowany. Co jest w pewnym sensie prawdą (ponieważ wiersze poleceń z pakietuphp7.2-cli
rzeczywiście zostały zainstalowane), ale to nie jest cała historia. :-)źródło