Backups und Updates
Backups müssen vor jedem Core- oder Plugin-Update erstellt werden.
Backup
systemctl stop apache2
systemctl stop php8.4-fpm
tar -czf /root/owncloud-online-code-$(date +%F).tar.gz /var/www/owncloud.online
tar -czf /root/owncloud-online-data-$(date +%F).tar.gz /var/owncloud-online-data
mysqldump -u root -p owncloud_online > /root/owncloud-online-db-$(date +%F).sql
systemctl start php8.4-fpm
systemctl start apache2
Update Ablauf
cd /root/owncloud-online-server-bundle
sudo bash bootstrap-empty-linux-server.sh --domain cloud.example.com --ref 11.0.1
Danach:
sudo -u www-data php8.4 /var/www/owncloud.online/occ upgrade
sudo -u www-data php8.4 /var/www/owncloud.online/occ maintenance:repair
sudo -u www-data php8.4 /var/www/owncloud.online/occ app:list
Wartungsmodus vor dem Austausch von Theme-Apps
Apps vom Typ theme (etwa theme-owncloudonline) werden bereits beim Start
jedes Requests geladen — auch beim Start von occ selbst. Wird das
App-Verzeichnis durch eine neuere Version ersetzt, bricht jeder
occ-Aufruf mit OC\NeedsUpdateException ab, also auch das occ upgrade,
das die Situation auflösen soll:
An unhandled exception has been thrown:
OC\NeedsUpdateException in lib/private/legacy/app.php:194
Der Ausweg ist der Wartungsmodus: OC_App::loadApps() überspringt in diesem
Zustand das Laden der Apps, occ startet wieder. Beim automatisierten Ausrollen
gehört der Wartungsmodus deshalb vor den Verzeichnistausch:
sudo -u www-data php8.4 occ maintenance:mode --on
# jetzt erst das neue App-Verzeichnis einspielen
sudo -u www-data php8.4 occ upgrade
sudo -u www-data php8.4 occ maintenance:mode --off
Ist der Wartungsmodus nicht mehr über occ erreichbar, weil das Verzeichnis
bereits getauscht wurde, hilft der direkte Eintrag in config/config.php:
'maintenance' => true,
Bricht ein App-Update ab, weil die Datenbank eine neuere Version meldet als der ausgerollte Code, ist ein falsches oder älteres Paket ausgeliefert worden. Die Meldung nennt beide Versionen; die in der Datenbank vermerkte Version bleibt dabei unverändert. Richtiges Paket nachliefern und erneut aktualisieren.
Rollback
- Wartungsmodus aktivieren.
- Code-Backup zurückspielen.
- Datenbankdump zurückspielen.
- Data-Verzeichnis zurückspielen.
occ maintenance:repairausführen.- Wartungsmodus deaktivieren.
sudo -u www-data php8.4 occ maintenance:mode --on
sudo -u www-data php8.4 occ maintenance:mode --off