PHP 7.4 auf Debian Stretch

Debian Stretch beinhaltet out-of-the-box leider nur das veraltete PHP 7.0. Selbst mit dem Backports-Repository ändert sich daran nichts. Obwohl Debian sich durch eigene Backports um bekannte Sicherheitslücken kümmert, gibt es inzwischen einige Software, die unter PHP 7.0 nicht mehr lauffähig ist.

Selbstverständlich ist ein Upgrade auf Debian Buster denkbar. Das kann aber unter Umständen viele weitere Probleme mit sich bringen. Glücklicherweise ist es relativ einfach, mithilfe der PPA von Sury PHP 7.4 zu installieren.

1. System auf aktuellen Stand bringen

# apt update
# apt -y upgrade

2. PPA installieren

# apt -y install lsb-release apt-transport-https ca-certificates
# wget -O - https://packages.sury.org/php/apt.gpg | apt-key add -
# echo "deb https://packages.sury.org/php/ $(lsb_release -sc) main" > /etc/apt/sources.list.d/php.list

3. Alte PHP-Version deinstallieren

Dieser Schritt ist nur erforderlich, falls auf dem System bereits eine alte PHP-Version installiert ist. Streng genommen können beide Versionen parallel installiert bleiben; das macht aber wenig Sinn.

# apt -y remove --purge php*

4. PHP 7.4 installieren

# apt update
# apt -y install php7.4-cli php7.4-fpm
# php -v

Der letzte Befehl ist nicht wirklich erforderlich. Er dient lediglich dazu, die installierte Version zu prüfen.

5. Libraries installieren

Natürlich sind auch für PHP 7.4 Libraries erforderlich, um den Funktionsumfang zu ergänzen. Eine Liste der verfügbaren Libraries erhält man so:

# apt-cache search php7.4-

Anschließend werden die benötigten Libraries installiert. Die Installation der üblichen, für viele Anwendungen erforderlichen Libraries sieht wie folgt aus:

# apt install php7.4-cli php7.4-fpm php7.4-bcmath php7.4-bz2 php7.4-curl php7.4-dev php7.4-gd php7.4-intl php7.4-json php7.4-mbstring php7.4-mysql php7.4-opcache php7.4-pspell php7.4-readline php7.4-recode php7.4-sqlite3 php7.4-xml php7.4-xmlrpc php7.4-zip php-pear pkg-php-tools

6. PHP konfigurieren

PHP erfordert eine kleine Konfigurationsänderung. Es funktioniert zwar auch ou-of-the-box, schreibt aber bei jedem Aufruf der Funktion date() eine Fehlermeldung ins Logbuch. Das lässt sich durch statische Konfiguration der Server-Zeitzone ändern.

Dazu bearbeiten wir die beiden Dateien /etc/php/7.4/cli/php.ini und /etc/php/7.4/fpm/php.ini. In Zeile 961 steht aktuell:

;date.timezone =

Hier entfernen wir das Kommentarzeichen und tragen die lokale Zeitzone ein (in meinem Fall Europe/Berlin):

date.timezone = Europe/Berlin

7. PHP im Webserver registrieren

Dieser Schritt ist optional und je nach eingesetztem Webserver verschieden. Hier wird exemplarisch die Installation mit Apache2 gezeigt, da dieser Webserver am weitesten verbreitet ist.

Zuvor haben wir bereits PHP-FPM installiert, was deutlich leistungsstärker als die CGI- oder Modul-Variante ist. Dabei läuft im Hintergrund ein eigener Daemon, an den Apache die zu verarbeitende PHP-Datei übergibt. Das hat den Vorteil, dass PHP nicht ständig bei Bedarf gestartet und beendet wird, sondern ständig läuft und sofort arbeitsbereit ist.

# apt install libapache2-mod-fcgid
# a2enmod actions proxy_fcgi alias
# a2enconf php
# system restart apache2

Aufrufe: 149

Ähnliche Artikel

Comments

Leave a Comment