PHP wurde Ende letzten Jahres in Version 7.2 veröffentlicht und hat damit einen weiteren Meilenstein hinter sich gebracht. Wer jetzt schon die neuen Funktionen nutzen oder einfach nur aktuell sein will, kann PHP 7.2 unter Debian Stretch ganz einfach nachinstallieren.
Ondřej Surý stellt die aktuellsten Pakete in einem Repository zur Verfügung – man muss also zum Glück nicht selbst kompilieren. Um die Pakete zu nutzen, reichen folgende Schritte aus:
wget -q -O- https://packages.sury.org/php/apt.gpg | apt-key add -
echo "deb https://packages.sury.org/php/ stretch main" | tee /etc/apt/sources.list.d/php.list
apt-get update
Vor dem eigentlichen Upgrade kann man sich kurz die aktuell installierten PHP-Pakete anschauen (z.B. mit dpkg -l | grep php) und die entsprechenden Pakete mit vorangestelltem php7.2 installieren. Beispiel gefällig?
apt install php7.2 php7.2-cli php7.2-common php7.2-curl php7.2-gd php7.2-json php7.2-mbstring \
php7.2-mysql php7.2-opcache php7.2-readline php7.2-xml libapache2-mod-php7.2
Diese Paketliste ist mit Sicherheit nicht für alle Systeme gültig, daher gilt wie immer: erst denken, dann abschreiben! Ich habe danach die alten php7.0-Pakete mit apt entfernt.
Top! Vielen Dank für den Artikel.
Es fehlt jedoch das FPM / Proxy Modul für PHP 7.2 hier ist leider nur die klassische „mod_php“ Variante dokumentiert.
Einige Pakete konnten nicht installiert werden. Das kann bedeuten, dass
Sie eine unmögliche Situation angefordert haben oder, wenn Sie die
Unstable-Distribution verwenden, dass einige erforderliche Pakete noch
nicht erstellt wurden oder Incoming noch nicht verlassen haben.
Die folgenden Informationen helfen Ihnen vielleicht, die Situation zu lösen:
Die folgenden Pakete haben unerfüllte Abhängigkeiten:
libapache2-mod-php7.2 : Hängt ab von: apache2-bin (>= 2.4.16) aber 2.4.10-10+deb8u12 soll installiert werden
Hängt ab von: libssl1.1 (>= 1.1.0) ist aber nicht installierbar
php7.2-cli : Hängt ab von: libssl1.1 (>= 1.1.0) ist aber nicht installierbar
php7.2-common : Hängt ab von: libssl1.1 (>= 1.1.0) ist aber nicht installierbar
php7.2-curl : Hängt ab von: libcurl3 (>= 7.44.0) aber 7.38.0-4+deb8u11 soll installiert werden
php7.2-gd : Hängt ab von: libgd3 (>= 2.1.1) aber 2.1.0-5+deb8u11 soll installiert werden
Hängt ab von: libpng16-16 (>= 1.6.2-1) ist aber nicht installierbar
Hängt ab von: libwebp6 (>= 0.5.1) ist aber nicht installierbar
php7.2-readline : Hängt ab von: libncurses5 (>= 6) aber 5.9+20140913-1+deb8u3 soll installiert werden
Hängt ab von: libtinfo5 (>= 6) aber 5.9+20140913-1+deb8u3 soll installiert werden
E: Probleme können nicht korrigiert werden, Sie haben zurückgehaltene defekte Pakete.
root@v8456:/tmp#
Die Anleitung ist nicht für Debian 8 Jessie, sondern für Debian 9 Stretch.
Funktioniert leider nich
Reading package lists… Done
E: The method driver /usr/lib/apt/methods/https could not be found.
N: Is the package apt-transport-https installed?
E: Failed to fetch https://packages.sury.org/php/dists/stretch/InRelease
E: Some index files failed to download. They have been ignored, or old ones used instead.
Die Lösung zu dem Problem steht sogar in der Fehlermeldung…
„Is the package apt-transport-https installed?“
Funktioniert wunderbar, und ist auch der Weg, wie man es machen sollte.