Upgrade von nextcloud-php73 auf nextcloud-php74 oder nextcloud-php8x

zzz

man zzz
Hi,

pkg upgrade möchte mein installiertes nextcloud-php73 deinstallieren, vermutlich da PHP 7.3 nicht mehr supported wird. Hat jemand einen Tipp wie der (paketbasierte) Migrationspfad aussieht? Ein direktes Upgrade scheint ja ohne weiteres nicht möglich zu sein.
 

peterle

Forenkasper
Code:
# pkg search nextcloud-php
nextcloud-php74-23.0.3         Personal cloud which runs on your own server
nextcloud-php80-23.0.3         Personal cloud which runs on your own server
nextcloud-php81-23.0.3         Personal cloud which runs on your own server

Ist doch alles da für ein Update?
Mit php80 und fpm habe ich an anderer Stelle allerdings doofe Erfahrungen = leere weiße Seiten, statt Inhalt gemacht. War aber wie gesagt nicht nextcloud.

Ich würde PHP updaten und dann Nextcloud.
 

Columbo0815

Kaffeemann
Teammitglied
Merke dir einfach, welche php-Pakete (und sonstige Abhängigkeiten) installiert waren, weil nicht alle erforderlichen per "pkg install nextcloud-php80" installiert werden und dann Nextcloud nicht mehr läuft. Ich habe das Upgrade kürzlich ebenfalls per "pkg install" durchgeführt und bin darüber gestolpert.

Im Zweifel hilft das Logfile vom Webserver und von Nextcloud. Ich habe php80 gewählt, weil es aktuell die Defaultversion von php in FreeBSD ist.

HTH
 

gadean

Well-Known Member
7.4 nähert sich seinem EOL (2022-11-29), 8.0 wird noch ca. 1y6m Security Updates erhalten - ich würde direkt auf 8.1 updaten.
 

marmorkuchen

Well-Known Member
Ich hatte "damals"
  • mir meine Paketliste (auf der Kiste war vorher nichts draus) und den Output von phpinfo() gesichert
  • ein Bootenvironment erstellt
  • das obligatorisches DB-Pre-Upgrade Backup gezogen
  • das ZFS mit den Assets gesichert, sprich Snapshot
  • PHP 7.3 inkl. Module entfernt
  • Netxcloud entfernt
  • PHP 7.4 inkl. aller Module installiert
  • Indianer-Check mit der berühmten phpinfo() und dem Vergleich der alten mit der neuen Ausgabe
  • Nextcloud php 7.4 installiert
  • die Migration der DB durchführen lassen
  • Upgrade der Module/Apps laufen lassen

Das war es eigentlich schon, lief eigentlich geschmeidig durch. Demnächst steht dann das Upgrade auf 8.X an, mal schauen...
 

peterle

Forenkasper
Gibt es für diese blödsinnigen PHP-Upgrade-Orgien nicht eine brauchbare Möglichkeit, die installierten Pakte als Liste zu sichern und aus der Liste heraus diese in gewünschter Version mit einer Pipe zu installieren?
Irgendwie konnte ich pkg damals nicht überzeugen aus der Datei heraus zu installieren.
 

marmorkuchen

Well-Known Member
Gibt es für diese blödsinnigen PHP-Upgrade-Orgien nicht eine brauchbare Möglichkeit, die installierten Pakte als Liste zu sichern und aus der Liste heraus diese in gewünschter Version mit einer Pipe zu installieren?
Irgendwie konnte ich pkg damals nicht überzeugen aus der Datei heraus zu installieren.
Ist schon etwas länger her, aber ich hatte das damals mit nem bash-Skript erledigt. Ich hatte nämlich auch keine Lust das ganze zu Fuß zu erledigen. Natürlich habe ich das Skript damals nicht eingecheckt und darf es für 8.X neu schreiben...
 

midnight

OpenBSD & FreeBSD
Code:
# pkg prime-list | grep php

Zeigt dir die aktuell installierten PHP-Pakete an, die nicht als Depends installiert wurden. Dann einfach schauen, ob es diese Pakete auch in der Version 8.x gibt und dann entsprechend installieren.
 

Columbo0815

Kaffeemann
Teammitglied
Gibt es für diese blödsinnigen PHP-Upgrade-Orgien nicht eine brauchbare Möglichkeit, die installierten Pakte als Liste zu sichern und aus der Liste heraus diese in gewünschter Version mit einer Pipe zu installieren?
Irgendwie konnte ich pkg damals nicht überzeugen aus der Datei heraus zu installieren.
Würde ich (!) nicht machen. Hintergrund ist ganz einfach: Wenn Pakete über Abhängigkeiten installiert werden, kannst du sie per "pkg autoremove" löschen, sobald das (die) Paket(e), welches die Abhängigkeit hat, gelöscht wurde. So hast du ein sauberes System. Installierst du aber das Paket und dessen Abhängigkeit manuell per pkg (zB "pkg install nextcloud php" usw) bleibt php installiert, obwohl du es gar nicht mehr brauchst.
 

zzz

man zzz
Wahrscheinlich war meine Frage zu trivial, im Kern ging es mir erstmal darum wie ich pkg upgrade dazu bekomme, netxcloud-php73 durch nextcloud-php74 oder eines der anderen verfügbaren Pakete upzugraden. Ein simples pkg upgrade deinstalliert ja lediglich. Die Antwort wäre gewesen: pkg upgrade netxcloud-php73.
Danach erhält man eine Auswahlmöglichkeit, welches Paket man für das Upgrade nehmen will. Leider geht es an dieser Stelle nicht weiter, egal was ich auswähle, pkg segfaultet. OK, ist eh eine virtuelle Maschine, also Snapshot angelegt, netxcloud-php73 deinstalliert, mit pkg autoremove die ganzen obsoleten PHP-Pakete weggehauen und netxcloud-php80 installiert.

Leider das nächste Problem: Die zuvor installierte Nextcloud-Version war 19.x (bitte fragt nicht warum, ich musste nach einem kompletten Desaster ein 1,5 Jahre altes Backup der Kiste zurückspielen weil nichts anderes mehr verfügbar war). occ upgrade sagt mir dann, dass ein Upgrade über mehrer Major Versionen nicht möglich ist. Ich habe probiert, über den Nextcloud-eigenen Updater bis auf 22.x zu gehen und danach netxcloud-php80 zu installieren. Wenn ich die Nextcloud Apps vorher lösche läuft occ upgrade auch sogar durch, ich bekomme aber nur eine leere Seite präsentiert.

Am einfachsten wäre wahrscheinlich, wenn ich die alten netxcloud-php73-20.x, netxcloud-php73-21.x, netxcloud-php73-22.x für die Interim-Updates irgendwo herbekommen könnte, gibt es irgendwo ein Archiv?
 

CommanderZed

OpenBSD User
Teammitglied
Hmm solche Sachen sind einer der Gründe warum ich nextcloud, bei mir unter OpenBSD nicht aus den packages/ports nutze sondern es einfach manuell herunterlgeladen hab.

Vielleicht als idee: Nur PHP installieren und dann NC 19 manuell installieren, dann über den eingebauten updater (Oder manuell!) bis auf 22 ziehen, danach auf die package-version wechseln?
 

zzz

man zzz
Das war mit den Packages eigentlich immer sehr bequem. PHP Upgrade ist halt immer undankbar (und Desaster Recovery erst recht).

Nextcloud läuft inzwischen grundsätzlich, also nach dem beschriebenen Weg, mit dem Nextcloud-eigenen Updater bis auf 22.x zu gehen und danach netxcloud-php80 zu installieren. Die weiße Seite lag daran, dass das mod_php80 noch nicht aktiv war. Der Integritätscheck von Nextcloud beschwert sich noch, hauptsächlich dass tonnenweise Files im Verzeichnisbaum vorhanden sind die da nicht hingehören. Ich hoffe dass ich das auch noch geradegebügelt kriege. Neeneenee
 

midnight

OpenBSD & FreeBSD
Ich persoenlich wuerde so vorgehen:

1. Index der installierten PHP-Pakete speichern: # pkg prime-list | grep php >> ~/packages.txt
2. Webserver stoppen
3. Nextcloud directory sichern: # mv /usr/local/www/nextcloud{,.backup}
4. Datenbank sichern / dumpen
5. Nextcloud und sonstige unter ~/packages.txt angezeigte Pakete deinstallieren
6. ~/packages.txt mit einem Texteditor bearbeiten und die PHP-Version auf 8.x anpassen.
7. Pakete aus ~packages.txt mit der neuen PHP-Version installieren
8. Die config.php aus nextcloud und nextcloud{,.backup} von Hand mergen, user files zurueck kopieren...
9. Per occ die Datenbank aktualisieren
10. Webserver starten

Falls dir das alles zu heiss ist, kannst du ja auch eine Jail mit aktuellem PHP und Nextcloud installieren und das dort mit einer Datenbankkopie testen.
 

zzz

man zzz
Wie einen Beitrag zuvor gesagt läuft Nextcloud 23 jetzt. Auch die Warnungen konnte ich inzwischen beseitigen, mit Ausnahme davon dass MySQL 5.7 mit Nextcloud 21 nicht mehr unterstützt wird. :rolleyes: Das hebe ich mir aber für morgen auf, heute habe ich keine Lust mehr.
 

midnight

OpenBSD & FreeBSD
Wie einen Beitrag zuvor gesagt läuft Nextcloud 23 jetzt. Auch die Warnungen konnte ich inzwischen beseitigen, mit Ausnahme davon dass MySQL 5.7 mit Nextcloud 21 nicht mehr unterstützt wird. :rolleyes: Das hebe ich mir aber für morgen auf, heute habe ich keine Lust mehr.
Ich habe deinen Beitrag erst hinterher gesehen, da ich beim Schreiben des Posts durch "Arbeit" unterbrochen wurde. ;-) Gut, dass es nun soweit funktioniert.
 
Oben