Zusätzliche PHP-Versionen mit Debian-/Ubuntu-Linux

Kategorie: Debian Ubuntu
Erstellt: 26.05.2015
Aktualisiert: 28.06.2023

Wenn auf einem Server mehrere PHP-Versionen zur Verfügung stehen, erlaubt LiveConfig die Auswahl der PHP-Version pro Subdomain.

Die nachfolgende Anleitung zeigt, wie man unter Debian- bzw. Ubuntu-Linux zusätzliche PHP-Versionen installiert und diese in LiveConfig registriert.

LiveConfig PHP-Repository hinzufügen

Für alle aktuellen Debian- und Ubuntu-Versionen stellt LiveConfig eine Reihe fertiger PHP-Pakete zur Verfügung. Die verfügbaren Versionen sind:

Debian 10 Debian 11 Debian 12 Ubuntu 16 Ubuntu 18 Ubuntu 20 Ubuntu 22
PHP 5.6.40 PHP 5.6.40 PHP 5.6.40 PHP 5.6.40 PHP 5.6.40 PHP 5.6.40 PHP 5.6.40
PHP 7.0.33 PHP 7.0.33 PHP 7.0.33 PHP 7.0.33 PHP 7.0.33
PHP 7.1.33 PHP 7.1.33 PHP 7.1.33 (in Arbeit)
PHP 7.2.34 PHP 7.2.34 (in Arbeit) PHP 7.2.34 PHP 7.2.34 PHP 7.2.34 PHP 7.2.34
PHP 7.3.33 PHP 7.3.33 (in Arbeit) PHP 7.3.33 PHP 7.3.33 PHP 7.3.33 (in Arbeit)
PHP 7.4.33 PHP 7.4.33 PHP 7.4.33 PHP 7.4.33 PHP 7.4.33 PHP 7.4.33 PHP 7.4.33
PHP 8.0.x PHP 8.0.x PHP 8.0.x PHP 8.0.x PHP 8.0.x PHP 8.0.x PHP 8.0.x
PHP 8.1.x PHP 8.1.x PHP 8.1.x PHP 8.1.x PHP 8.1.x PHP 8.1.x PHP 8.1.x
PHP 8.2.x PHP 8.2.x (in Arbeit) PHP 8.2.x PHP 8.2.x PHP 8.2.x PHP 8.2.x

Die mit “.x” endenden Nummern beziehen sich immer auf die jeweils aktuellste Version (diese werden noch aktiv durch PHP gepflegt).

Um das LiveConfig-PHP-Repository zu aktivieren, bearbeiten Sie die Datei /etc/apt/sources.list.d/liveconfig.list und fügen dort folgende Zeile hinzu:

  • Debian 10 (“Buster”):

    deb http://repo.liveconfig.com/debian/ buster php
    
  • Debian 11 (“Bullseye”):

    deb http://repo.liveconfig.com/debian/ bullseye php
    
  • Debian 12 (“Bookworm”):

    deb http://repo.liveconfig.com/debian/ Bookworm php
    
  • Ubuntu 16.04 LTS (“Xenial Xerus”):

    deb http://repo.liveconfig.com/debian/ xenial php
    
  • Ubuntu 18.04 LTS (“Bionic Beaver”):

    deb http://repo.liveconfig.com/debian/ bionic php
    
  • Ubuntu 20.04 LTS (“Focal Fossa”):

    deb http://repo.liveconfig.com/debian/ focal php
    
  • Ubuntu 22.04 LTS (“Jammy Jellyfish”):

    deb http://repo.liveconfig.com/debian/ jammy php
    

Anschließend aktualisieren Sie die Repository-Daten:

apt update

Danach können Sie die gewünschte PHP-Version installieren, z.B.:

apt install php-7.3-opt

Alle von LiveConfig bereitgestellten Pakete tragen den Namen php- + Version + -opt. Um alle verfügbaren Erweiterungen z.B. für PHP 7.3 anzuzeigen, führen Sie folgenden Befehl aus:

apt search php-7.3-opt

PHP-Versionen registrieren

Nur falls Sie PHP manuell oder aus einem anderen Repository installiert haben: erstellen Sie für jede zusätzliche PHP-Version eine zugehörige Lua-Datei im Verzeichnis /etc/liveconfig/lua.d/. Für beispielsweise PHP 7.3 benennen Sie diese Datei php73.lua.

Die im LiveConfig-PHP-Repository bereitgestellten Pakete enthalten diese Datei bereits, da können Sie diesen Schritt überspringen.

-- zusaetzlichen PHP-Interpreter bei LiveConfig registrieren
LC.web.addPHP( {
  ['id']  = 'php73',
  ['cli'] = '/opt/php-7.3/bin/php',
  ['cgi'] = '/opt/php-7.3/bin/php-cgi',
  ['fpm'] = {
    ['bin']     = '/opt/php-7.3/sbin/php-fpm',
    ['start']   = 'service php73-fpm start',
    ['stop']    = 'service php73-fpm stop',
    ['reload']  = 'service php73-fpm reload',
    ['pool']    = '/etc/php-fpm/php73-fpm.d',
    ['sockets'] = '/var/run/php73-fpm'
  }
} )

Alternativ zum Anlegen einer Datei in /etc/liveconfig/lua.d/ können Sie PHP auch über den vereinfachten Aufruf von LC.web.addPHP() in /usr/lib/liveconfig/lua/custom.lua anlegen - dieses Vorgehen ist jedoch veraltet und wird nicht mehr empfohlen:

LC.web.addPHP("php55", "/opt/php-5.5/bin/php-cgi")
LC.web.addPHP("php56", "/opt/php-5.6/bin/php-cgi")

Test

Führen Sie liveconfig --diag aus (oder auf einem Client-System: lcclient --diag) und prüfen Sie den PHP-Abschnitt der Ausgabe:

root@srv:~# liveconfig --diag
[...]
 - PHP 7.3.20 (code='php73', eol='2021-12-06')
   CGI/FastCGI: /opt/php-7.3/bin/php-cgi
   FPM: /opt/php-7.3/sbin/php-fpm
        pool config: /etc/php-fpm/php73-fpm.d
   default php.ini: '/opt/php-7.3/etc/php.ini'
[...]

Nur falls Sie PHP manuell oder aus einem anderen Repository installiert haben: starten Sie schließlich LiveConfig neu (systemctl restart liveconfig) um den/die neuen PHP-Interpreter zu aktivieren.

Standard-PHP-Version ändern

LiveConfig verwendet als “Standard-Version” die von der jeweiligen Linux-Distribution bereitgestellte PHP-Version.

Wenn Sie einen anderen PHP-Interpreter als Standard-Version nutzen möchten, legen Sie eine Datei /etc/liveconfig/lua.d/php-default.lua an und tragen dort folgende Zeile ein:

-- PHP-Standardversion ändern:
LC.web.PHPDEFAULT = 'php73'

Statt php73 geben Sie den Code der gewünschten PHP-Version an (siehe Auflistung beim Aufruf von liveconfig --diag).

Wenn Sie erneut liveconfig --diag ausführen, sollte die gewählte Version entsprechend mit [DEFAULT] markiert sein. Starten Sie LiveConfig anschließend neu, damit die Änderungen übernommen werden.

ionCube-Loader installieren

Für die PHP-Versionen 5.6 bis 7.4 und 8.1 stehen auch fertige Pakete des ionCube-Loaders bereit. Die Pakete tragen den Namen php-x.y-opt-ioncube. Installieren Sie einfach das gewünschte Paket via apt (z.B. apt install php-7.4-opt-ioncube), der ionCube-Loader wird dabei automatisch in der jeweiligen php.ini registriert.

Alte PHP-Versionen entfernen

Um veraltete PHP-Versionen zu löschen gehen Sie am besten so vor:

  1. Gehen Sie in LiveConfig auf Serververwaltung -> Web. In der Box PHP-Versionen sehen Sie die verfügbaren PHP-Versionen auf dem Server und von wie vielen Subdomains diese verwendet werden.

    Um die Verwendung schrittweise abzuschalten, können Sie ab LiveConfig 2.11 die Eingeschränkt-Option setzen - die betroffene PHP-Version kann dann mit den bislang so konfigurierten Subdomains weiter genutzt, aber für neue Konfigurationen/Subdomains nicht mehr ausgewählt werden.

  2. Wenn eine bestimmte PHP-Version dann letztendlich nicht mehr genutzt wird (Anzahl der Subdomains in Spalte Verwendung = 0), dann löschen Sie den entsprechenden PHP-Interpreter vom Server, z.B.:

    apt purge php-5.6-opt
    
  3. Prüfen Sie anschließend im LiveConfig, dass die eben gelöschte PHP-Version auch nicht mehr in der Liste der verfügbaren PHP-Versionen auftaucht. Alte bzw. nicht von LiveConfig bereitgestellte PHP-Pakete müssen ggf. manuell aus der custom.lua entfernt werden, außerdem muss LiveConfig bzw. lcclient auf dem betroffenen Server eventuell neu gestartet werden.

  4. Zuletzt können Sie noch die nicht mehr benötigten Konfigurationsdateien vom Server löschen, z.B.:

    root@srv:~# cd /var/www
    root@srv:/var/www# chattr -R -i web*/conf/php56
    root@srv:/var/www# rm -rf web*/conf/php56