(Geschätzte Lesezeit: 10 - 20 Minuten)

Du hast bestimmt gehört, dass PHP 7 am 28. November 2022 eingestellt worden ist. Wahrscheinlich hast du auch gehört, dass dies eine schreckliche Nachricht für die Sicherheit deiner Webseite ist und / oder dass ein Upgrade der Webseite auf PHP 8 eine langweilige und mühsame Aufgabe ist.

Obwohl keine der beiden Behauptungen der absoluten Wahrheit entspricht, gibt es immer ein paar Körnchen Wahrheit, wie in jeder plausiblen Lüge. Sehen wir uns an, was das Ende der Lebensdauer von PHP 7 für deine Webseite bedeutet und was du in pragmatischer, praktischer Hinsicht dagegen tun kannst.

Dies ist die Übersetzung des Artikels Upgrading your site to PHP 8 aus dem Joomla Community Magazine 12/22 von Nicholas K. Dionysopoulos

Was bedeutet das Ende der Lebensdauer für PHP?

PHP verwendet eine zeitlich begrenzte Versionsveröffentlichungsstrategie, ähnlich wie Joomla selbst. Jedes Jahr wird eine neue Version veröffentlicht, die zwei Jahre lang aktiven Support (Fehlerkorrekturen und Sicherheitskorrekturen) und ein Jahr lang Sicherheitssupport (nur Sicherheitskorrekturen) erhält. Die unterstützten Versionen werden auf der PHP-Webseite zusammen mit einer praktischen Zeitleiste aufgelistet, die angibt, wann PHP in die jeweilige Support-Phase eintritt - und wann sie End of Life (EOL) werden.

Die Verwendung einer EOL-Version von PHP macht deine Webseite nicht sofort unsicher. In der Regel vergeht einige Zeit zwischen dem Auslaufen einer PHP-Version und der Entdeckung eines Sicherheitsproblems für diese PHP-Version. Es gibt keine Möglichkeit zu sagen, wie lange das sein wird. Darüber hinaus wird die Linux-Distribution, die deine Hosting-Unternehmen für ihre Server verwendet, einige der Sicherheitskorrekturen für ältere, auslaufende PHP-Versionen zurückportieren. Es gibt jedoch keine Möglichkeit zu sagen, welche und wann.

Im Grunde bedeutet die Verwendung einer EOL-PHP-Version ein Sicherheitsrisiko für dich. Du kannst nicht wissen, ob deine Webseite sicher ist oder nicht, oder ob und wann sie ein Sicherheitsupdate für die EOL-PHP-Version erhalten wird. Daher ist es für deine Entscheidungsfindung am besten, jede PHP-EOL-Version als unsicher zu betrachten und daher so schnell wie möglich ein Upgrade vorzunehmen.

Wichtigste Schlussfolgerung: Plane immer ein Upgrade von PHP auf deiner Webseite, wenn die derzeit verwendete Version in die Phase der Sicherheitsunterstützung eintritt. Du hast also ein Jahr Zeit dafür. Wenn du eine auslaufende PHP-Version verwendest, solltest du sofort handeln.

 

Was sind die Vorbehalte gegen ein Upgrade von PHP?

PHP ist eine lebendige Sprache. Sie entwickelt sich mit der Zeit weiter. Das ist notwendig, da sich die Art und Weise, wie wir Software entwickeln, und der Kontext, in dem sie verwendet wird, im Laufe der Zeit ebenfalls ändern. Infolgedessen werden einige Funktionen, die wir in der Vergangenheit verwendet haben, veraltet (deprecated) und schliesslich ganz entfernt, wodurch Software, die sie noch verwendet, unbrauchbar wird. Es werden neue Funktionen implementiert, die möglicherweise Code zerstören, der sie nichts damit anfangen kann. Das ist der Grund, warum manche Leute dir sagen, dass ein Upgrade deiner Webseite schwierig ist - sie verwendet veraltete Software, die in der Regel älter ist als die PHP-Version, auf die du sie aktualisieren willst.

Letztlich ist die Schwierigkeit eines PHP-Upgrades eine Frage der Bereitschaft deines Softwareanbieters, Zeit und Mühe aufzubringen, um mit der Zeit zu gehen. Als Anbieter von Software, die üblicherweise zur Erleichterung des PHP-Upgrade-Prozesses verwendet wird, unterstütze ich immer die neueste und beste PHP-Version, bevor sie veröffentlicht wird. Das ist nicht unbedingt normal, und ich kann unmöglich von anderen Entwicklern die gleichen Standards verlangen. Es ist sicher machbar, aber es ist wirklich schwer und sehr zeitaufwendig. Nach all den Jahren kann ich nicht behaupten, dass ich es immer richtig mache, besonders bei einigen PHP-Änderungen, die entweder sehr schwer im Code zu finden sind, oder mit dem Kerncode von Joomla kollidieren, der noch nicht für sie bereit ist.

Es ist vernünftiger und wahrscheinlicher, dass die Entwickler von Dritthersteller-Erweiterungen mit der Arbeit an der Unterstützung einer neuen PHP-Version beginnen, sobald Joomla selbst diese vollständig unterstützt, normalerweise 1-2 Monate nach der ersten Veröffentlichung der neuen PHP-Version. Diese Arbeit wird zwischen einem und vier Monaten dauern, abhängig von den Ressourcen des Erweiterungsentwicklers. Das bedeutet, dass die neueste und beste PHP-Version erst 6 bis 9 Monate nach ihrer ursprünglichen Veröffentlichung für Joomla-Seiten praktisch nutzbar wird. Da neue PHP-Versionen jedes Jahr um den Dezember herum veröffentlicht werden, wäre das zwischen Mai und August des nächsten Kalenderjahres der Fall.

Das Wichtigste zum Mitnehmen: Du solltest nicht versuchen, auf die neueste und beste PHP-Version zu aktualisieren, sondern nur auf die unmittelbar vorhergehende Version. Gegen August oder September, je nach deinen Urlaubsplänen, solltet du mit der Planung und dem Testen deiner Migration auf die nächste PHP-Version beginnen.

 

Aber ich will nicht upgraden!

Das ist natürlich deine Entscheidung, aber beachte die folgenden Punkte.

Eine EOL-Version von PHP wird irgendwann unsicher, unabhängig davon, ob die Betreuer der Linux-Distribution zu einem unbestimmten Zeitpunkt einige der Sicherheitskorrekturen aus neueren Versionen auf sie anwenden oder nicht. Deine PHP-Version funktioniert gut und ist sicher, bis sie es nicht mehr ist. Wenn du diese Art des russischen Roulettes spielen willst, kann dich niemand aufhalten.

Neuere PHP-Versionen sind schneller, was zu kürzeren Seitenladezeiten führt, die sich positiv auf deine Suchmaschinenergebnisse auswirkt. Das Festhalten an einer alten PHP-Version wirkt sich nachteilig auf die Suchmaschinenoptimierung deiner Webseite aus.

Neuere Versionen von Joomla und seinen Erweiterungen bieten keine Unterstützung mehr für ältere PHP-Versionen. Dies kann dazu führen, dass du keine Möglichkeit hast, deine Webseite zu aktualisieren. Denke daran, dass nur weil deine Joomla-Version selbst eine breite Palette von PHP-Versionen unterstützt, dies nicht für Erweiterungen von Drittanbietern gilt. Meine Firma stellt zum Beispiel die Unterstützung für ältere PHP-Versionen ein, wenn wir feststellen, dass nicht genügend Nutzer unsere Software damit verwenden, wenn die Kosten für die Unterstützung bei weitem die kommerziellen Vorteile übersteigen (oder es schlichtweg unmöglich wird), oder wenn wir dies tun müssen, um die Kompatibilität mit neueren PHP-Versionen zu gewährleisten.

Letzten Endes ist der Unterhalt deiner Webseite eine Betriebsausgabe und keine Investitionsausgabe. Die Wartungskosten sind ein wesentlicher Bestandteil der TCO (Total Cost of Ownership) einer Webseite. Wenn du nicht bist sind, diese Kosten zu tragen, gibt es statische Webseites mit geringeren Betriebskosten (und weniger Funktionen) sowie Plattformen zur Webseite-Erstellung, die restriktiver und teurer sind (aber dir die Zeit ersparen, die du für die Wartung der Webseite benötigst). Kurz gesagt, man kann nicht alles haben und auch noch davon essen. So ist das Leben.

Erstelle einen Plan für kontinuierliche PHP-Upgrades

Auf der Grundlage der beiden obigen Kernaussagen hat sich ein PHP-Migrationsplan entwickelt:

  • Mache jeden Januar eine Bestandsaufnahme der PHP-Versionen, die du auf jeder deiner Webseiten verwendest, und vergleiche sie mit den aktiven PHP-Versionen.
  • Wenn eine Webseite eine Version verwendet, die älter ist als die, die als Sicherheitsunterstützung aufgeführt ist, solltest du so schnell wie möglich einen Upgrade durchführen.
  • Wenn eine Webseite eine Version verwendet, die als Security Support aufgeführt ist, plane einen Upgrade bis September auf die mittlere der beiden PHP-Versionen, die in der vorgenannten Tabelle aufgeführt sind.
  • Wenn eine Webseite diese mittlere Version verwendet, komme im August oder September darauf zurück und prüfe, ob es möglich ist, sie auf die neueste PHP-Version zu aktualisieren. Wenn das nicht möglich ist, komme im Januar wieder darauf zurück.

Wenn du mehrere Webseites hast, solltest du den Plan vielleicht staffeln. Aber du sollst immer einen Plan haben.

Bist du ein Webseiten-Integrator, erkläre deinen Kunden deinen Plan sowie alle Vorbehalte (z. B. musst du ihm ein Angebot für einen teilweisen Neuaufbau machen, wenn eine von der verwendete Erweiterung keine neueren Joomla- und PHP-Versionen unterstützt), wenn du ihm einen Support-Vertrag verkaufst. Du verkaufst doch hoffentlich deinen Kunden doch einen Supportvertrag, oder...?

Updaten deiner Webseite

Auch wenn das Folgende nach viel aussieht, ist es das nicht. Das meiste, was du lesen wirst, handelt davon, warum du tust, was du tust, und von der Fehlersuche.

Dein Joomla-Upgrade-Plan sieht wie folgt aus:

  • Aktualisiere Joomla und alle Erweiterungen, einschliesslich des Templates.
  • Stelle sicher, dass deine Erweiterungen die neue PHP-Version unterstützen.
  • Stelle sicher, dass die PHP-Einstellungen zwischen der aktuellen und der neuen PHP-Version gleich sind.
  • Aktualisiere die PHP Version.
  • Wenn die Webseite nicht mehr funktioniert, setze die Fehlerberichterstattung auf Maximum, um herauszufinden, was und warum der Fehler aufgetreten ist.

Bevor du einen Upgrade durchführst

Bevor du über einen Upgrade der PHP-Version nachdenkst, musst du sicherstellen, dass deine gesamte Software mit der neuen Version kompatibel ist: Joomla selbst, alle Erweiterungen und das Template (besonders wenn es auf einem Template-Framework eines Drittanbieters basiert).

Denke daran, dass Software, die vor dem Erscheinen einer bestimmten PHP-Version veröffentlicht wurde, diese PHP-Version mit Sicherheit nicht unterstützt! Entwickler sind keine Hellseher. Wir können eine zukünftige Version von PHP oder Joomla nicht unterstützen, bevor wir nicht wissen, was sich, und wie es sich ändert. Für neuere Versionen, erkundige dich beim Entwickler deiner Erweiterung oder deines Templates, welche Versionen von Joomla und PHP jede Version der Software unterstützt. Vor mehr als einem Jahrzehnt habe ich die Idee einer Versionskompatibilitätsmatrix für meine Software von Desktop-Softwareherstellern übernommen. Viele Entwickler haben diese Idee ebenfalls kopiert oder bieten Kompatibilitätsinformationen in ihrer Dokumentation oder im Downloadbereich an. Bitte überprüfe diesbezüglich die Webseite eines Entwicklers, bevor du eine Anfrage bei ihm einreichst.

Leider listet auch Joomla selbst nicht die genauen Versionen von PHP auf, mit denen jede seiner Versionen kompatibel ist. Wähle immer die neueste veröffentlichte Version. Zum Zeitpunkt der Erstellung dieses Artikels ist dies Joomla 4.2.6, das hervorragend mit PHP 8.1 funktioniert und vorläufige Unterstützung für PHP 8.2 bietet (einige deprecated-Hinweise sind Probleme, aber es wird aktiv daran gearbeitet).

Beachte jedoch, dass Joomla 3.10 derzeit in der Sicherheitswartung ist. Als solches wird es NICHT korrekt auf allen neueren als PHP 8.1 funktionieren. Wenn du eine Joomla 3.10-Webseite hast, ist nun die Zeit, die du für einen Upgrade einplanen solltest, bereits vorbei. Bis Dezember 2024 wirst du eine Webseite haben, auf der eine End-of-Life-Joomla-Version auf einer End-of-Life-PHP-Version läuft - und es wird keinen Upgrade-Pfad für dich geben, was einen Neuaufbau von Grund auf erforderlich macht.

Konfiguriere die PHP-Version, bevor du auf diese aktualisierst

Jede PHP-Version auf deinem Server hat ihre eigene Konfiguration, die unabhängig verwaltet wird. Ich habe noch nicht ein einziges Mal in meinem Leben einen Hoster gesehen, der eine konsistente Konfiguration über verschiedene PHP-Versionen hinweg anbietet, geschweige denn einen, der die Konfiguration einer früheren PHP-Version auf eine neue überträgt.

Es gibt ein paar Konfigurationseinstellungen, die du aus der Konfiguration der aktuellen PHP-Version in die Konfiguration der neuen PHP-Version kopieren musst (und wenn wir schon dabei sind, lasse uns auch sehen, was zu tun ist):

  • Die aktivierten Erweiterungen. Viele PHP-Funktionen, die von Joomla und seinen Erweiterungen verwendet werden - wie z.B. Datenbankunterstützung (MySQL oder PostgreSQL), JSON-Unterstützung, XML-Unterstützung, ZIP/Komprimierungsunterstützung, Bildbearbeitungsunterstützung, mb_string (Unicode)-Unterstützung usw. - sind nicht Teil der eigentlichen PHP-Sprache. Sie sind Erweiterungen der PHP-Sprache. Erweiterungen sind optional und müssen explizit aktiviert werden. Standardmässig kann PHP nicht verwendet werden, um eine Webseite zu betreiben; jemand muss es anweisen, die erforderlichen Erweiterungen zu aktivieren. Schockierend, ich weiss!
  • Die maximale Ausführungszeit. Sie bestimmt die maximale Zeit, die eine PHP-Anwendung, wie z.B. Joomla, benötigen kann, bevor sie etwas an den Browser zurückgibt. Einige Server haben einen sehr niedrigen Standardwert von 5 bis 10 Sekunden, der für längere Operationen wie das Versenden von Newslettern, das Ändern der Bildgrösse oder das Erstellen von Backups nicht ausreicht. Ein Wert zwischen 30 und 60 Sekunden ist in der Regel das, was du brauchst.
  • Der maximal zulässige Speicher. Jedes Mal, wenn jemand Ihre Webseite besucht, muss Joomla sich selbst, die relevanten Joomla-Erweiterungen und die relevanten Datenbankdaten in den Speicher laden, die HTML-Seite im Speicher aufbauen und sie an den Webserver zurückgeben, der sie an den Browser sendet. Standardmässig verwenden die meisten Server einen niedrigen Wert von etwa 32 MiB, was für eine sehr leichtgewichtige Seite kaum ausreicht. Realistischere Speichergrössen liegen bei etwa 128 MiB.
  • Die maximale Grösse der hochgeladenen Datei. Der Standardwert in neuen PHP-Versionen ist 2 MiB, was nicht ausreicht, wenn du grössere Dateien hochladen musst, wie z. B. Fotos, die mit einem modernen Smartphone oder einer DSLR-Kamera aufgenommen wurden, oder sogar die meisten nicht-trivialen Joomla-Erweiterungen, wenn du die Upload- und Installationsmethode verwenden. Du brauchst etwas um die 10 MiB, um sicher zu sein. Wenn du die Upload- und Update-Methode in Joomla Update verwenden willst, musst du Sie diesen Wert auf 32 MiB setzen - er muss gross genug sein, damit das grösste Joomla-Upgrade-Paket hochgeladen werden kann.
  • Die maximale POST-Grösse. Dies bezieht sich auch auf Uploads, sowie auf die Bearbeitung langer Artikel. Sie sollte mindestens so gross sein wie die maximale Grösse der hochgeladenen Datei. Wenn du mehrere Datei-Uploads zulassen möchtest, z. B. in einem Forum oder einer Helpdesk-Komponente, solltest du diesen Wert auf die maximale Anzahl von Dateien, die du auf einmal hochladen möchtest, multipliziert mit der maximalen Grösse der hochgeladenen Datei festlegen. Wenn du beispielsweise eine maximale Upload-Grösse von 10 MiB habst und bis zu 5 Dateien auf einmal hochladen möchtest, musst du Sie diesen Wert auf 10 x 5 = 50 MiB einstellen.
  • Der temporäre PHP-Pfad. Dies ist NICHT dasselbe wie der temporäre Ordner von Joomla. Dieser wird intern von PHP verwendet, um hochgeladene Dateien zu verarbeiten, sowie einige andere tertiäre Funktionen. Dies sollte ein Pfad sein, in den deine Webseite schreiben kann.
  • Der PHP-Sitzungspfad. Dies muss ein Pfad sein, in den deine Webseite schreiben kann, wenn du die 'PHP'-Methode für die Sitzungsbehandlung in der Globalen Konfiguration von Joomla verwenden willst.

Die meisten Hoster bieten in ihrem Hosting-Kontrollzentrum eine Schnittstelle an, über die du diese Einstellungen selbst vornehmen kannst. Prüfe die Einstellungen in deiner aktuellen PHP-Version und notiere sie. Gehe dann zu den Einstellungen der neuen PHP-Version, auf die du upgraden willt, und kopiere diese Einstellungen rüber.

Wenn du nicht weisst, wie das geht, oder dein Hoster eine solche Schnittstelle nicht zur Verfügung stellt, bitte den Hoster, dies für dich zu erledigen. Das ist buchstäblich ein Teil dessen, wofür du ihn bezahlst.

PHP aktualisieren

Jetzt ist es an der Zeit, PHP zu aktualisieren! Bei den meisten Hostern kann dies über die Oberfläche des Hosting-Kontrollpanels durchgeführt werden. Wenn du dir nicht sicher bist, wie das geht, frage deinen Hoster. Er hat mit Sicherheit eine Dokumentation dazu und kann dich darauf verweisen, wenn du sie nicht selbst finden kannst.

Huch! Es ist kaputt!

Wie im ’Anhalter durch die Galaxis’ auf dem Titelbild zu lesen ist:

DON’T PANIC!

Du kannst jederzeit auf die vorherige PHP-Version zurückwechseln. Wenn deine Webseite online sein muss, tue folgendes: Erstelle eine Kopie der Webseite - z. B. mit der Funktion "Entwicklungsseite" deines Hosters oder, falls es diese Funktion nicht gibt, mit einem Tool eines Drittanbieters wie z.B. Akeeba Backup -, damit du die nächsten Schritte mit der nicht kritischen Kopie deiner Seite durchführen kannst.

Als erstes musst du herausfinden, was hier mit "es ist kaputt" gemeint ist.

Wenn du eine Menge beängstigend aussehenden Text mit Wörtern wie "veraltet", "Hinweis" und "Warnung" siehst, ist es sehr wahrscheinlich, dass du deine Einstellung für Fehlerberichte in der globalen Konfiguration auf etwas anderes als "Keine" gesetzt hast. Wenn du dich in das Backend deiner Webseite einloggen kannst, tue das: gehe zu System, Globale Konfiguration, Registerkarte Server, und setzen die Fehlerberichterstattung auf Keine und klicke auf Speichern & Schliessen. Besuche das Frontend der Webseite erneut. Funktioniert sie? Wenn ja, bist du schon fertig.

Wenn du keinen Zugriff auf das Backend der Webseite hast, bearbeite Sie die Datei configuration.php der Webseite. Suche die Zeile, in der $error_reporting steht, und ändere sie wie folgt

public $error_reporting = 'keine';

Rufe das Frontend der Webseite erneut auf. Funktioniert es? Wenn ja, dann bist du fertig.

Wenn du eine Meldung siehst, dass Joomla die Sitzung nicht starten kann oder dass die Datenbankverbindung nicht hergestellt werden kann, überprüfe die PHP-Konfiguration der neuen PHP-Version. Wir haben das ein paar Abschnitte vorher besprochen. Die erste Meldung bedeutet, dass der PHP-Sitzungspfad von deiner Webseite nicht beschreibbar ist, oder dass PHP die Erweiterung für die Datenbankunterstützung (typischerweise mysqlnd für MySQL genannt) in seiner Konfiguration nicht aktiviert hat. Die zweite Fehlermeldung bedeutet, dass die PHP-Erweiterung für die Datenbankunterstützung definitiv nicht aktiviert ist.

Siehst du eine unheimliche rote Seite mit einem Geist und viel Text? Das ist eigentlich eine gute Sache. Es bedeutet, dass du einen detaillierten Fehlerbericht sehen kannst. Wir werden darauf zurückkommen. Wenn du nur eine weisse Seite oder eine Serverseite mit der Meldung 500 Internal Server Error siehst, musst du Site Debug aktivieren. Wenn du dich in das Backend der Webseite einloggen kannst, gehe zu System, Globale Konfiguration, Registerkarte System und setze Debug System auf Ja. Klicke auf die Registerkarte Server und setze dort Fehlerberichterstattung auf Maximum. Wenn du keinen Zugriff auf das Backend der Webseite hast, bearbeite die Datei configuration.php der Webseite. Suche die Zeilen mit den Einträgen $error_reporting und $debug und ändern Sie sie jeweils in:

public $error_reporting = 'maximal';
public $debug = true;

Aber Vorsicht! Damit gibst du potenziell privilegierte Informationen über die Konfiguration deiner Webseite für jeden preis, der diese Seiten sehen kann. Es wird empfohlen, dass du dies nur auf einer Kopie der Webseite tust.

Wenn du die Seite neu lädst, wirst du eine beängstigende rote Seite mit einem Geist und viel Text sehen. Dies ist die detaillierte Joomla-Fehlerberichtsseite, die zur Fehlersuche verwendet wird. Sie sagt den Entwicklern, was kaputt ist.

Wenn du oben eine Meldung siest, dass eine Funktion nicht gefunden wurde / nicht definiert ist, liegt das Problem darin, dass eine von Joomla selbst verwendete PHP-Erweiterung oder eine der Erweiterungen von Drittanbietern in der PHP-Konfiguration nicht aktiviert wurde. Wirf einen Blick auf den früheren Abschnitt über das Kopieren der PHP-Konfiguration von der alten auf die neue PHP-Version; möglicherweise musst du deinen Hoster um Hilfe bitten, wenn du das Problem nicht selbst erkennen kannst.

Wenn es einen Parse-Fehler oder eine Meldung über inkompatible Deklarationen gibt, bedeutet dies, dass entweder Joomla oder eine seiner Erweiterungen mit der neuen PHP-Version, die du zu benutzen versuchst, inkompatibel ist. Die letzte zu ladende Datei, bei der der Fehler aufgetreten ist, befindet sich oben auf der Seite. Daran kannst du erkennen, ob es sich um Joomla selbst oder um eine Erweiterung handelt. In beiden Fällen musst du zur vorherigen PHP-Version zurückkehren und Joomla oder die Drittanbieter-Erweiterung aktualisieren. Wenn du bereits alle Erweiterungen aktualisiert hast, einschliesslich deines Templates und aller Template-Frameworks, die es verwendet, musst du den Entwickler der Erweiterung kontaktieren. Schicke ihm den vollständigen Fehlerbericht, den du erhalten hast, und frage, was sie vorhaben, um die neue PHP-Version zu unterstützen. Der Fehlerbericht wird ihm helfen zu verstehen, ob ihre Erweiterung wirklich das Problem ist, und wenn ja, was das Problem ist, und wie es zu beheben ist. Bitte denke daran, dass ein nicht gemeldeter Fehler auch ein nicht behobener Fehler ist.

Nebenbei bemerkt: Wenn du versucht hast, auf die allerneueste PHP-Version umzusteigen, ist es sehr wahrscheinlich, dass dein Leben in den ersten 6 bis 9 Monaten nach der Veröffentlichung beschissen sein wird, da weder Joomla noch Erweiterungen von Drittanbietern eine realistische Unterstützung dafür bieten werden. In diesem Fall solltest du versuchen, die unmittelbar vorhergehende PHP-Version zu verwenden. Erinnere dich, was wir vorher gesagt haben? Entscheide dich immer für die mittlere Version auf der Seite der aktiv unterstützten PHP-Versionen.

Feinschliff

Wenn deine Webseite CRON-Aufträge über CLI-Skripte verwendet (z. B. über die Joomla CLI-Anwendung cli/joomla.php), musst du Sie deine CRON-Aufträge ebenfalls bearbeiten. Denke daran, dass der erste Teil der Befehlszeile Ihres CRON-Auftrags den Pfad zur ausführbaren PHP-CLI-Datei der PHP-Version angibt, die du für Ihren CRON-Auftrag verwenden möchten. Da du nun die PHP-Version deiner Webseite aktualisiert hast, musst du auch die PHP-Version der CRON-Aufträge aktualisieren, indem du diesen Pfad änderst. Wohin soll er geändert werden? Normalerweise folgen diese Pfade einem Muster, z. B. /usr/bin/ea-php80 für PHP 8.0, /usr/bin/ea-php81 für PHP 8.1 usw. Wenn du unsicher bist, frage deinen Hoster.

Wenn du etwas wie den htaccess-Maker von Admin Tools verwendest, denke daran, dass deine Webseite zur vorherigen oder zur Standard-PHP-Version des Servers zurückkehrt, sobald du die htaccess-Datei neu generierst. Auf den meisten Servern bewirkt die PHP-Versionsänderung nämlich nichts anderes als die Änderung einiger Zeilen am Ende deiner htaccess-Datei. So sieht es in meinem Blog aus, nachdem ich auf PHP 8.1 umgestellt habe:

# php -- BEGIN cPanel-generated handler, do not edit
# Set the <E2><80><9C>ea-php81<E2><80><9D> package as the default <E2><80><9C>PHP<E2><80><9D> programming language.
<IfModule mime_module>
AddHandler application/x-httpd-ea-php81 .php .php8 .phtml
</IfModule>
# php -- END cPanel-generated handler, do not edit

Du musst die AddHandler-Zeile application/x-httpd-ea-php81 .php .php8 .phtml in die Seite htaccess Maker von Admin Tools gemäss deren Dokumentation kopieren. Wenn du eine andere Erweiterung oder ein anderes Tool zur Verwaltung deiner htaccess-Datei verwenden, musst du etwas Ähnliches tun. Bitte siehe in der Dokumentation deines Tools nach.

Es sieht für mich immer noch schwierig aus

Ungewohnt ist schwer. Keinen Plan zu haben, ist schwer. Der Versuch, sich an alles Mögliche zu erinnern, ist schwer.

Weiss du, was es leicht macht?

Checklisten, Dokumentation und Übung.

Trotz gegenteiliger Gerüchte bin ich weder ein Roboter noch ein Übermensch. Ich bin nicht nur ein Mensch wie jeder andere, sondern leide obendrein an ADHS, was es noch schwieriger macht, sich Dinge zu merken und sich zu konzentrieren. Deshalb schreibe ich Dokumentationen und mache Checklisten.

Dokumentiere, was auf jeder deiner Webseiten läuft und welche Versionen von Joomla und PHP sie unterstützen. So weisst du, was du aktualisieren musst, bevor du mit der Aktualisierung von PHP beginnst.

Benutze eine unkritische Seite auf jedem anderen Host, um dich mit dem PHP-Upgrade-Prozess vertraut zu machen. Mache dir Notizen und erstelle daraus eine Checkliste. Wenn du PHP aktualisieren willst, kannst du deiner Checkliste wie einem Pilot folgen. Acht darauf, dass du auch für die offensichtlichsten Schritte eine Checkliste erstellst. Danke mir später.

Falls du nun im Zuge deiner Migrationen auf ein Problem stösst, nutze die Informationen zur Fehlersuche in diesem Artikel, um eine Lösung zu finden. Dokumentiere das Problem und seine Lösung, damit du dich beim nächsten Mal nicht daran erinnern musst, was du vor ein oder zwei Jahren getan hast. Wenn das Problem im Nachhinein gesehen vermeidbar war, passe deine Checkliste an.

Hier sind die groben Züge einer Checkliste, um dir den Einstieg zu erleichtern:

  • Überprüfung der Informationen
    • Finde die Versionen deiner Erweiterungen
    • Prüfen, welche Erweiterungen welche Joomla- und PHP-Versionen unterstützen
  • PHP vorbereiten
    • Kopiere die PHP-Einstellungen von der aktuellen auf die neue PHP-Version
  • Joomla aktualisieren
  • Erweiterungen aktualisieren (einschliesslich der Template)
    • Joomla's Erweiterungen aktualisieren verwenden
    • So aktualisierst du Erweiterungen, die nicht mit Joomla's Erweiterungen aktualisieren
  • PHP aktualisieren.
    • Schritt-für-Schritt-Verfahren für die Aktualisierung von PHP in deiner Hosting-Umgebung
  • Post-Upgrade
    • CRON-Jobs aktualisieren
    • Kopieren der htaccess-Einstellungen in die Admin Tools oder andere Tools von Drittanbietern

    Die Elemente der obersten Ebene sind Überschriften oder Unterchecklisten, wenn man so will. Die Punkte der zweiten Ebene müssen mit Schritt-für-Schritt-Anweisungen erweitert werden. Gehe so weit ins Detail wie nötig

    Bleibet sicher, aktualisiert eure Webseiten, und seid freundlich zueinander.

     


    Über den Autor dieses Artikels

    brendan hedgesDieser Beitag wurde im Original von Nicholas Dionysopoulos verfasst. Nicholas ist der Entwickler von Akeeba Backup. Ursprünglich war er Maschinenbauingenieur, wurde aber, als er Mambo - den Vorläufer von Joomla - im Jahr 2004 entdeckte, zum Webentwickler.

    Er ist der Autor von mehreren beliebten Erweiterungen für Joomla und ein häufiger Mitwirkender am Joomla-Kern. Er lebt derzeit an der Küste von Athen, Griechenland mit seiner Frau, seiner Tochter und zwei Katzen. Er dankt der Joomla-Gemeinschaft dafür, dass sie ihm ein Geschäft und eine Familie gegeben hat - er hat seine Frau Crystal (sie schreibt auch für das Joomla Magazin) auf einer Joomla-Konferenz kennengelernt, immerhin!

    Wenn er nicht gerade Code, Dokumentation oder Artikel für Joomla und seine Erweiterungen schreibt, bastelt er gerne an mechanischen Tastaturen, spielt D&D und schaut Sci-Fi-Serien.