Wie man alte PHP-Anwendungen ausführt

23. Februar 2022

Lang: cs en de es

Die Entwicklung schreitet schnell voran. PHP wurde schließlich zu einer Programmiersprache, die von vielen ernsthaften Projekten verwendet wurde. Und auch durch die rasante Entwicklung der PHP-Sprache sind aus wartungsfreien Projekten sogenannte "Legacy-Projekte" geworden. Ein Legacy-Projekt ist ein technologisch veraltetes Projekt, für das die weitere Wartung und vor allem die Weiterentwicklung ein Problem darstellt. Und mit der Zeit wird auch der Betrieb solcher Legacy-Anwendungen zum Problem. In diesem Artikel beschreibe ich die Möglichkeiten der Bereitstellung einer Umgebung für den Betrieb von Legacy-Projekten in der Programmiersprache PHP.

Technologischer Wandel

Mit dem Aufkommen von PHP7 und PHP8 wurde die Unterstützung für alte PHP-Versionen eingestellt und ist schon lange nicht mehr auf Linux-Distributionen verfügbar. Mit der neuen Version von PHP kamen viele Änderungen, aber es gibt einige Projekte, die diesen Wechsel nicht mitgemacht haben. Die Besitzer dieser Projekte fragen sich, wo und wie man die alten Projekte betreiben kann?.

Videobetrieb von alten PHP-Anwendungen

Eine Zusammenfassung des Artikelinhalts können Sie sich auch im Video anhören:

Ist es sinnvoll, in PHP zu programmieren?

Am Anfang fragen sich manche Leute, ob es sinnvoll ist, in PHP zu programmieren. Ist es sinnvoll, in PHP zu programmieren?

Altes PHP

Zunächst einmal muss gesagt werden, dass der Betrieb alter Anwendungen mit altem PHP eine Ausweichmöglichkeit darstellt, da er in Bezug auf Sicherheit und Wartungskosten ineffizient ist. Und wenn die betreffende Anwendung weiterentwickelt werden soll, ist das oft nicht tragbar, sowohl was die Einstellung von Personal als auch die Kosten für die aufwändige Wartung angeht. Außerdem gibt es dann mehr Probleme mit der Ausführung und Änderung der alten Anwendung.

Es hängt davon ab, wie viel altes PHP Sie benötigen. PHP älter als Version 5.6 zum Laufen zu bringen, wird auf aktuellen Servern ein sehr großes Problem sein.

Betrieb von PHP5.6

Wenn Sie einen passenden Linux-Admin haben, kann er Ihren Server mit dem aktuellen Betriebssystem und den Versionen PHP 5.6, 7.0 bis 7.4 und 8.0 oder 8.1 (Januar 2022) einrichten. Es gibt viele Möglichkeiten, dies zu bewerkstelligen, aber bitte überspringen Sie die eigentliche Kompilierung! Ich persönlich ziehe es vor, die Debian-Distribution auf dem Server zu verwenden, um PHP aus den sury repositories zu installieren. und PHP auf FPM laufen zu lassen. Das liegt vor allem daran, dass man einen Webserver mit mehreren PHP-Versionen gleichzeitig auf dem Server betreiben kann und PHP einfach aktualisieren kann.

Wie man alte PHP-Versionen zum Laufen bringt, sehen Sie in diesem Video-Tutorial, wo ich beschreibe, wie man verschiedene PHP-Versionen zum Laufen bringt, egal ob sie neuer oder älter sind als die, die Ihre Linux-Distribution bereitstellt.

ISP-Konfiguration und alte PHP-Versionen

Wenn Sie das ISP Config-Tool auf dem Bericht Ihres Webhosts verwenden, dann ist das Hinzufügen anderer PHP-Versionen ähnlich. Und mit ISP Config selbst können Sie PHP-Versionen wechseln und vorübergehende PHP-Versionen für einzelne Projekte einrichten.
Ich empfehle ISP Config für Benutzer, die ein benutzerfreundliches Tool zum Einrichten ihres eigenen Hostings suchen.

Video-Tutorial zum Einrichten anderer PHP-Versionen in ISP Config

Vorzeitliches PHP

VPS

Die Installation und Kompilierung von PHP älter als 5.6 wird auf aktuellen Linux-Distributionen ein Problem darstellen. Die einfachste Lösung ist also, einen separaten VPS für diese alten Projekte zu reservieren und dort eine alte Version einer Linux-Distribution vorzuhalten, mit der benötigten Version von PHP.

Docker

Eine interessante Option könnte Docker sein, damit kann man einen leichtgewichtigen Linux-Container mit einer bestimmten Betriebssystemversion und Bibliotheken betreiben. Dies bietet die Möglichkeit, einen Container mit einer bestimmten alten Version von PHP vorzubereiten und eine prähistorische Anwendung in diesem Container laufen zu lassen. Der Container ist vom Betriebssystem isoliert, so dass das Sicherheitsrisiko geringer ist und kein Eingreifen des Betriebssystems erforderlich ist. Das Betriebssystem kann also auf dem neuesten Stand sein, ebenso wie andere Komponenten der Anwendung, wie z. B. Datenbanken und andere.

Staging der Anwendung

Selbst wenn Sie eine neue Anwendung haben, müssen Sie damit rechnen, dass sie irgendwann veraltet sein wird. Alte Technologien werden nicht mehr unterstützt, und die Nutzer werden neue Anforderungen an den Betrieb und die Funktionen stellen. Früher oder später wird Ihnen nichts anderes übrig bleiben, als die Anwendung zu aktualisieren und aufzurüsten oder, wenn Sie im Rückstand sind, das Ganze neu zu schreiben - und das ist ein sehr schwieriger und riskanter Prozess.
Die einzige andere Möglichkeit ist, dass der Betrieb und die Wartung der Anwendung immer teurer werden, so dass es wahrscheinlicher ist, dass Sie die Anwendung einfach stilllegen.
Für eine veraltete Anwendung wird es außerdem schwer sein, einen Programmierer zu finden, geschweige denn einen guten.

Leider habe ich schon einige Projekte gesehen, bei denen man die Anwendung veralten ließ, und am Ende fehlte immer die Motivation, in ein Upgrade zu investieren.

Vorwärts bewegen

Man muss einfach vorsichtig sein, und das gilt auch für Projekte in anderen Programmiersprachen, um sicherzustellen, dass die Arbeit an einem Projekt nicht zum Reiten eines toten Pferdes wird.

Wenn Sie an einer Anwendung arbeiten, empfehle ich Ihnen, so bald wie möglich damit zu beginnen Kontaktieren Sie den Entwickler. Lassen Sie ihn zumindest eine kleine Analyse machen, in welchem Zustand sich die App befindet und wie er die Möglichkeiten sieht, sie zu verbessern und umzuschreiben.

Artikel zu einem ähnlichen Thema

Programmiersprache Go
Python-Programm zur Steuerung von Docker über die API
Wie man MailCatcher zum Testen von E-Mails verwendet
Python OpenAI API
Erstellen einer WebSocket-Webanwendung und Einrichten eines Proxys
Projektmanagement: agile Softwareentwicklung
Was ein guter Programmierer wissen sollte
Programmiersprache Rust
NodeJS: Entwicklung, Serverkonfiguration
Nette Sicherheitslücke CVE-2020-15227
REST API: Plattform-API
Kundenspezifisches Web- und E-Mail-Hosting mit ISP Config-Software
Programmierung in SQL: PostgreSQL, MySQL/MariaDB
HTTPS: sicheres Web
NoSQL-Datenbank Mongo DB
Herstellen einer Verbindung zu Microsoft SQL Server unter Linux
Was ist die Stellenbeschreibung eines Programmierers?
Lokalisierung von Python-Anwendungen
Welches Mail- und Webhosting Sie wählen sollten
Digispark - Atmel ATtiny Mikrocontroller mit Arduino IDE programmieren
Entwicklung für ARM-Prozessoren mit Arduino IDE
Wie programmiere ich den ESP8266 WiFi-Prozessor?
Offenes Smartphone mit Linux - Openmoko Neo FreeRunner

Newsletter

Wenn Sie daran interessiert sind, gelegentlich Neuigkeiten per E-Mail zu erhalten.
Sie können sich registrieren, indem Sie Ihre E-Mail-Adresse eingeben News-Abonnement.


+