Inhalte
Jeder Administrator eines Webservers kommt nicht daran vorbei. Ein PHP Update muss mal wieder her. PHP veröffentlicht regelmäßig neue PHP Versionen um z.b. offene Sicherheitslücken zu fixen. Auch wird PHP immer schneller und enue funktionen kommen herbei. Ein Update auf eine neue PHP Version lohnt sich fast immer. In der Regel sollte es für ein Administrator nicht so schwer sein, PHP auf einen linux basiertem System zu aktualisieren. Hier nochmals kurz eine Anleitung.
Voraussetzungen
Installationsschritte
Schritt 1: Update Paketinformationen
Standardmäßig wird bei Debian 9 (Stretch) die PHP Version 7.0 mitgeliefert. Wer jedoch auf eine höhrere Version upgraden möchte, der sollte entweder PHP von der offiziellen Webseite (https://www.php.net/downloads.php) downloaden und eigenständig auf dem RasberryPi deployen (make && make install
) oder man benutzt die Pakekverwaltung APT. Hierzu würde ich gerade Anfängern raten, da die Paketverwaltung vieles bei der Installation eigenständig/selbstständig übernimmt. Um PHP 7.1 oder eine spätere Version zu bekommen, müssen wir erst einmal in der Sources.list (Für die Paketverwaltung APT die Quellliste für Updates) angeben, woher APT, PHP nehmen soll. PHP 7.1 ist in der nächsten Debian Distribution Buster enthalten und kann somit von der Buster Quelle entnommen werden. Und so geht’s:
Editiere die /etc/apt/sources.list
mit einem beliebigen Editor. In unserem Fall verwenden wir nano.
sudo nano /etc/apt/sources.list
Jetzt ändere die Update URL von Stretch zu Buster. Die Datei sollte nun so aussehen:
deb http://raspbian.raspberrypi.org/raspbian/ buster main contrib non-free rpi
Die Datei speichern und Schließen wir mit STR+X und J oder Y als Bestätigung.
Schritt 2: System updaten
Um der Paketverwaltung mitzuteilen, dass neue Pakete zu Verfügung stehen, sollten wir die Sources.list neu einlesen. Dies geschiet mit einem einfachen apt-get update
. Danach führen wir ein Update für die bereits installierten Pakete durch. -> apt-get upgrade
Natürlich kann man diese zwei Befehle zu einem einzelnen Befehl zusammenführen.
sudo apt-get update && sudo apt-get upgrade -y
Das -y am ende der Zeile verhindert das lästige Fragen, ob man auch wirklich sicher ist, ob man das Paket wirklich installieren möchte.
Schritt 3: Vorherige PHP version entfernen
Sollte noch eine andere PHP Version auf dem RaspberryPi befinden, müssen wir sie erst einmal entfernen. Dies werden wir mit der Paketverwaltung erledigen.
Wichtig! Bevor wir PHP komplett deinstallieren, sollten wir ersteinmal herausfinden, welche PHP Module mit der alten Version installiert worden sind.
dpkg -l |grep php
Das Ergebnis sollte nun als Liste ausgegeben werden. Die aufgelisteten PHP Module sollten wir nun uns merken, um später dann bei der Installation, die richtigen Pakete wieder installieren zu können.
Der folgende Befehle deinstalliert nun alle PHP Module:
sudo apt-get remove '^php.*'
Schritt 4: PHP 7.1 Installieren
Nachdem wir die alte Version deinstalliert haben, können wir nun mithilfe der Paketverwaltung die neue PHP Version installieren. Wichtig ist nun, die zuvor gemerkten PHP Module auch wieder zur Installation anzugeben. Hier mein Beispiel:
sudo apt-get install php7.1-cli php7.1-common php7.1-curl php7.1-gd php7.1-json php7.1-mbstring php7.1-mysql php7.1-opcache php7.1-readline php7.1-xml
Ist während der Installation nichts schief gelaufen, sollten wir den Apache Dienst neu starten:
/etc/init.d/apache2 restart
oder
service apache2 restart
Mit php --version
oder php -v
sollten wir nun überprüfen, ob PHP die richtige Versionsnummer ausgibt.
Ausgabe:
PHP 7.3.9-1~deb10u1 (cli) (built: Sep 18 2019 10:33:23) ( NTS )
Copyright (c) 1997-2018 The PHP Group
Zend Engine v3.3.9, Copyright (c) 1998-2018 Zend Technologies
with Zend OPcache v7.3.9-1~deb10u1, Copyright (c) 1999-2018, by Zend Technologies
Viel Erfolg
Pingback:IonCube PHP Loader mit PHP 7.1 installieren – Profoxi
Vielen Dank =)
p.s. beim Befehl „dpgk -l |grep php“ hat sich ein kleiner Buchstabendreher eingeschlichen –> so passt es „dpkg“
VG 🙂
Vielen Dank 😉 Habe ich soeben korrigiert.
Kleiner Hinweis:
Bei deinem Befehl „sudo nano /etc/apt/sources.lis“ fehlt am Ende das „t“ 🙂
Danke @Matthias 🙂 Wurde natürlich sofort behoben.
Sehr fein. Danke! 🙂
Nachtrag: Geht auch mit PHP 7.4. Man muss nur die entsprechenden Module in dem Shell-Befehl anpassen. 😉
Hi Triopsi
würde gerne dein Profiwissen anzapfen 🙂
Betreibe einen Webserver auf einem Raspberry und möchte ungerne durch mein Rookie Fehlverhalten den ganzen Server abschiessen. Dennoch möchte ich auf PHP 7.4 updaten.
Meine aktuelle Situation habe ich durch den Befehl dpkg -l |grep php nachstehend kopiert.
Wäre es dir möglich mir den richtigen Befehl für den Update in meiner Installation zu geben?
Zu 1000 Dank verpflichtet grüsst dich MAME
ii libapache2-mod-php7.0 7.0.33-0+deb9u7 armh f server-side, HTML-embedded scripting language (Apache 2 module)
ii libapache2-mod-php7.3 7.3.31-1~deb10u1 armh f server-side, HTML-embedded scripting language (Apache 2 module)
ii php 2:7.3+69 all server-side, HTML-embedded scripting language (default)
ii php-bz2 2:7.3+69 all bzip2 module for PHP [default]
ii php-common 2:69 all Common files for PHP packages
ii php-curl 2:7.3+69 all CURL module for PHP [default]
ii php-gd 2:7.3+69 all GD module for PHP [default]
ii php-mbstring 2:7.3+69 all MBSTRING module for PHP [default]
ii php-mysql 2:7.3+69 all MySQL module for PHP [default]
ii php-pear 1:1.10.6+submodules+notgz-1.1+deb10u2 all PEAR Base System
ii php-php-gettext 1.0.12-0.1 all read gettext MO files directly, without requiring anything other than P HP
ii php-phpseclib 2.0.14-1 all implementations of an arbitrary-precision integer arithmetic library
ii php-tcpdf 6.2.26+dfsg-1 all PHP class for generating PDF files on-the-fly
ii php-xml 2:7.3+69 all DOM, SimpleXML, WDDX, XML, and XSL module for PHP [default]
ii php-zip 2:7.3+69 all Zip module for PHP [default]
ii php7.0 7.0.33-0+deb9u7 all server-side, HTML-embedded scripting language (metapackage)
ii php7.0-bz2 7.0.33-0+deb9u7 armh f bzip2 module for PHP
ii php7.0-cli 7.0.33-0+deb9u7 armh f command-line interpreter for the PHP scripting language
ii php7.0-common 7.0.33-0+deb9u7 armh f documentation, examples and common module for PHP
rc php7.0-curl 7.0.33-0+deb9u7 armh f CURL module for PHP
ii php7.0-gd 7.0.33-0+deb9u7 armh f GD module for PHP
ii php7.0-json 7.0.33-0+deb9u7 armh f JSON module for PHP
ii php7.0-mbstring 7.0.33-0+deb9u7 armh f MBSTRING module for PHP
ii php7.0-mysql 7.0.33-0+deb9u7 armh f MySQL module for PHP
ii php7.0-opcache 7.0.33-0+deb9u7 armh f Zend OpCache module for PHP
ii php7.0-readline 7.0.33-0+deb9u7 armh f readline module for PHP
ii php7.0-xml 7.0.33-0+deb9u7 armh f DOM, SimpleXML, WDDX, XML, and XSL module for PHP
ii php7.0-zip 7.0.33-0+deb9u7 armh f Zip module for PHP
ii php7.1-common 7.1.20-1+b2 armh f documentation, examples and common module for PHP
ii php7.1-mcrypt 7.1.20-1+b2 armh f libmcrypt module for PHP
ii php7.3 7.3.31-1~deb10u1 all server-side, HTML-embedded scripting language (metapackage)
ii php7.3-bz2 7.3.31-1~deb10u1 armh f bzip2 module for PHP
ii php7.3-cli 7.3.31-1~deb10u1 armh f command-line interpreter for the PHP scripting language
ii php7.3-common 7.3.31-1~deb10u1 armh f documentation, examples and common module for PHP
ii php7.3-curl 7.3.31-1~deb10u1 armh f CURL module for PHP
ii php7.3-gd 7.3.31-1~deb10u1 armh f GD module for PHP
ii php7.3-json 7.3.31-1~deb10u1 armh f JSON module for PHP
ii php7.3-mbstring 7.3.31-1~deb10u1 armh f MBSTRING module for PHP
ii php7.3-mysql 7.3.31-1~deb10u1 armh f MySQL module for PHP
ii php7.3-opcache 7.3.31-1~deb10u1 armh f Zend OpCache module for PHP
ii php7.3-readline 7.3.31-1~deb10u1 armh f readline module for PHP
ii php7.3-xml 7.3.31-1~deb10u1 armh f DOM, SimpleXML, WDDX, XML, and XSL module for PHP
ii php7.3-zip 7.3.31-1~deb10u1 armh f Zip module for PHP
ii phpmyadmin 4:4.6.6-5 all MySQL web administration tool