Kategorie: Debian Ubuntu
Erstellt: 26.05.2015
Aktualisiert: 26.11.2024
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.
Für alle aktuellen Debian- und Ubuntu-Versionen stellt LiveConfig eine Reihe fertiger PHP-Pakete zur Verfügung. Die verfügbaren Versionen sind:
Debian 11 | Debian 12 | Ubuntu 18 | Ubuntu 20 | Ubuntu 22 | Ubuntu 24 |
---|---|---|---|---|---|
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.1.33 | PHP 7.1.33 | PHP 7.1.33 | PHP 7.1.33 | ||
PHP 7.2.34 | PHP 7.2.34 | PHP 7.2.34 | PHP 7.2.34 | PHP 7.2.34 | PHP 7.2.34 |
PHP 7.3.33 | PHP 7.3.33 | PHP 7.3.33 | PHP 7.3.33 | PHP 7.3.33 | PHP 7.3.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.30 | PHP 8.0.30 | PHP 8.0.30 | PHP 8.0.30 | PHP 8.0.30 | PHP 8.0.30 |
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 | PHP 8.2.x | PHP 8.2.x | PHP 8.2.x | PHP 8.2.x |
PHP 8.3.x | PHP 8.3.x | PHP 8.3.x | PHP 8.3.x | PHP 8.3.x | PHP 8.3.x |
PHP 8.4.x | PHP 8.4.x | PHP 8.4.x | PHP 8.4.x | PHP 8.4.x | PHP 8.4.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 11 (“Bullseye”):
deb http://repo.liveconfig.com/debian/ bullseye php
Debian 12 (“Bookworm”):
deb http://repo.liveconfig.com/debian/ Bookworm 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
Ubuntu 24.04 LTS (“Noble Numbat”):
deb http://repo.liveconfig.com/debian/ noble 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
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")
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.
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.
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.
Um veraltete PHP-Versionen zu löschen gehen Sie am besten so vor:
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.
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
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.
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