Runbook: PHP-Upgrade
Für Systemadministratoren, die Kunden-Websites auf eine neuere PHP-Version umstellen, eine Website nach der anderen oder einen ganzen Server. Ein PHP-Upgrade ist geplante Arbeit, kein Vorfall, aber es ist die Änderung, die am ehesten den eigenen Code eines Kunden kaputtmacht; behandeln Sie es mit einem Runbook.
Inhalt
Was unterstützt wird
| PHP | Exponential 6.0 | Quelle |
|---|---|---|
| 8.0 | die älteste unterstützte; Velocity läuft darauf ab seinem Release 0.0.4.54 | Kapitel 2 |
| 8.1 bis 8.4 | unterstützt, einschließlich Velocity | Kapitel 2 |
| 8.5 | unterstützt | Kapitel 2 |
Die CI des Projekts führt die Testsuite auf PHP 8.1 bis 8.5 aus und prüft, dass 8.0 noch startet (Wer ist die Exponential Foundation?). Aktualisieren Sie Exponential vor einem PHP-Upgrade auf das neueste 6.0.x, damit bereits gemachte Korrekturen für PHP vorhanden sind.
Vorher: auf einer Staging-Kopie
Kopieren Sie die Website auf eine Staging-Installation, die das neue PHP ausführt (Eine Website zwischen Hostern umziehen).
Installieren Sie die PHP-Erweiterungen, die die Website für die neue Version braucht; die Systemprüfung des Setup-Assistenten oder der Schritt
SystemCheckvonexp:installlistet fehlende auf (PHP-Versionen und Erweiterungen). Für Velocity:php bin/php/console exp:velocity ext check --allow-root-userÜbernehmen Sie die
php.ini-Einstellungen:memory_limit,max_execution_time,date.timezone, Upload-Grenzen, OPcache (PHP-Einstellungen für Exponential, OPcache).Lassen Sie die Website laufen, klicken Sie sich durch die wichtigsten Seiten und die Administration, veröffentlichen, laden hoch, suchen. Beobachten Sie
var/log/error.logundwarning.logauf Deprecations aus den eigenen Erweiterungen des Kunden.Führen Sie davor und danach einen Benchmark aus, wenn die Leistung für den Tarif zählt (Benchmark einer gehosteten Website).
Sagen Sie dem Kunden, was Sie in seinem eigenen Code gefunden haben; es zu beheben, ist meist sein Teil (Support-Stufen).
Die Umstellung
Kündigen Sie das Fenster an.
Stellen Sie das Web-PHP der Website um:
- PHP-FPM: Richten Sie die Website auf den Pool der neuen Version (in einem Panel: die Einstellung der PHP-Version der Website) und laden
Sie den PHP-FPM-Dienst dieser Version neu. Auf Plesk ist der Dienst
plesk-php<XY>-fpm, nichtphp-fpm(11.6). - Velocity: Der Server läuft auf dem PHP der Kommandozeile, das ihn startet; starten Sie ihn mit der neuen Binärdatei (siehe Velocity für Hoster).
- PHP-FPM: Richten Sie die Website auf den Pool der neuen Version (in einem Panel: die Einstellung der PHP-Version der Website) und laden
Sie den PHP-FPM-Dienst dieser Version neu. Auf Plesk ist der Dienst
Stellen Sie das PHP der Kommandozeile um, das die Cronjobs und Skripte der Website nutzen. Verwenden Sie dieselbe PHP-Binärdatei, die der Webserver nutzt (
/opt/.../phpauf Hosts mit mehreren PHP-Versionen);php -vin der Cron-Umgebung kann sich von dem Ihrer Shell unterscheiden (10.3).Leeren Sie die Caches und erzeugen Sie die Autoloads neu, dann starten Sie neu:
php bin/php/ezpgenerateautoloads.php -e php bin/php/ezcache.php --clear-all --allow-root-user php bin/php/console exp:velocity deploy --allow-root-user # under Velocity: every step in order
Prüfen
- To do:
php -vals Benutzer der Website, in der Cron-Umgebung und im Web (Setup > Systeminformationen zeigt das PHP, das die Administration ausliefert). - To do: Startseite, Administration, Anmeldung, Veröffentlichen, Hochladen, Suchen.
- To do: Keine neuen Einträge in
error.log:./console exp:logs --tail=var/log/error.log --lines=50. - To do: Die Cronjobs liefen mit dem neuen PHP (ihre Logs).
- To do: OPcache aktiv:
php bin/php/cache.php opcache status --allow-root-user.
Rückfall
Behalten Sie die alte PHP-Version installiert, bis die Website für den vereinbarten Zeitraum auf der neuen gelaufen ist. Der Rückfall ist die Umstellung in umgekehrter Richtung: die PHP-Einstellung der Website zurück, das alte PHP-FPM neu laden oder Velocity mit der alten Binärdatei starten, Cron zurück, Caches geleert. Kompilierte Caches gehören zu dem PHP, das sie geschrieben hat; leeren Sie sie also auch auf dem Rückweg.
Verwandte Seiten
- PHP-Versionen und Erweiterungen
- PHP-Auswahl und FPM-Pools in Panels
- Kunden-Websites aktualisieren
- Freie Dokumentation: Diese Seite darf unter der GNU FDL 1.3 frei kopiert, übersetzt und verbessert werden.
Werden Sie Exponential-Partner
Partner teilen ihre Informationen, stellen Mittel bereit, geben Beiträge zurück und entwickeln die Produkte mit uns, und so wächst Exponential. Eine Partner-Website und ein Dashboard sind für Mitte 2027 geplant: Werden Sie noch heute Partner, damit wir schneller wachsen und neue Funktionen früher liefern.