Nach einem Server-Upgrade auf PHP 8.1 funktionierte mein OwnCloud plötzlich nicht mehr – dieser Artikel beschreibt mein vollständiges OwnCloud Upgrade auf PHP 8.1, inklusive aller Fehler, Logs und Lösungen.
Ausgangslage
Ich betreibe auf meinem Server mehrere Webanwendungen, darunter WordPress-Seiten, Mail‑Services – und OwnCloud. Wie so oft im Alltag eines Admins lief der Server über längere Zeit stabil und wurde nur minimal gewartet. Irgendwann kommt jedoch der Punkt, an dem größere Major Updates unumgänglich werden – Spoiler, bevor die Dienste demnächst Containerisiert werden.
In meinem Fall bedeutete das:
- Upgrade des Systems (CentOS 7.9)
- Update der PHP-Versionen
- Konsolidierung der PHP-FPM-Setups
Nach dem erfolgreichen Update auf PHP 8.1 liefen zunächst alle WordPress‑Instanzen sauber weiter – OwnCloud jedoch nicht mehr.
Die Ausgangssituation war dabei:
- OwnCloud lief ursprünglich unter
www.hsww.de/owncloud - PHP 7.3 war historisch im Einsatz
- Nach dem System‑Upgrade war PHP 7.3 nicht mehr verfügbar
Die Fehlermeldung im Browser:
This version of ownCloud is not compatible with PHP 7.5 / PHP 8.0
Damit war klar: Jetzt wird es ein strukturiertes Upgrade.
1. Erste Analyse: Warum OwnCloud plötzlich nicht mehr startet
Ein schneller Check über die Kommandozeile zeigte:
php -v
Ergebnis:
PHP 8.1.29
OwnCloud 10.7 kann jedoch kein PHP ≥ 8.0. Das erklärt die Blockade.
Auch der Cronjob meldete sich deutlich:
This version of ownCloud is not compatible with PHP 7.5
You are currently running PHP 8.1.29
👉 Learning:
- CLI‑PHP und Web‑PHP können voneinander abweichen
- OwnCloud prüft die PHP‑Version beim Web‑Entry strikt
2. Strategie für das OwnCloud Upgrade
Bevor ich weitergemacht habe, musste eine Entscheidung her:
- PHP 8.1 wieder entfernen? → Nein, für andere Anwendungen zwingend notwendig
- OwnCloud sauber upgraden und PHP trennen? → ✔️
Die Lösung:
➡️ Parallelbetrieb mehrerer PHP‑Versionen über PHP‑FPM (Remi Repository)
3. PHP 7.4 über Remi installieren und isoliert betreiben
Da PHP 7.3 nicht mehr verfügbar war, habe ich PHP 7.4 installiert.
rpm -qa | grep php74
Wichtig war:
- eigener PHP‑FPM‑Service (
php74-php-fpm) - eigener Socket / Port
Statuscheck:
systemctl status php74-php-fpm
Port‑Check:
ss -ltnp | grep php-fpm
Ergebnis (gekürzt):
127.0.0.1:9001 php81-fpm
127.0.0.1:9002 php74-fpm
Damit war klar:
- 9002 → PHP 7.4
- 9001 → PHP 8.1
4. OwnCloud CLI wieder lauffähig machen
Nun konnte ich OwnCloud erstmals wieder per CLI ansprechen:
sudo -u apache /opt/remi/php74/root/usr/bin/php /var/www/html/owncloud/occ status
Ergebnis:
- version: 10.7.0
- edition: Community
Damit war der Weg frei für das eigentliche Upgrade.
5. Wartungsmodus & (eingeschränktes) Backup
Zuerst OwnCloud in den Wartungsmodus versetzen:
sudo -u apache php occ maintenance:mode --on
Ein vollständiges Daten‑Backup war wegen fehlendem Speicherplatz nicht möglich.
Daher habe ich:
- Datenverzeichnis bewusst ausgeschlossen
- DB‑Dump separat erstellt
mysqldump owncloud > owncloud.sql
👉 Nicht ideal – aber realistisch. Man arbeitet mit dem, was da ist.
6. Schrittweises OwnCloud‑Upgrade (10.7 → 10.12)
Saubere Aktualisierung von Version zu Version und keinen Versionssprung, um Fehler frühzeitig zu erkennen und zu fixen, bevor sie sich summieren:
- 10.7 → 10.8
- 10.8 → 10.9
- 10.9 → 10.10
- 10.10 → 10.11
- 10.11 → 10.12
Beispiel für ein Upgrade:
curl -LO https://download.owncloud.com/server/stable/owncloud-10.10.0.tar.bz2
tar xjf owncloud-10.10.0.tar.bz2
rsync -Aax --delete \
--exclude='config/' \
--exclude='data/' \
--exclude='apps/' \
owncloud/ /var/www/html/owncloud/
chown -R apache:apache /var/www/html/owncloud
sudo -u apache /opt/remi/php74/root/usr/bin/php /var/www/html/owncloud/occ upgrade
Die Logausgaben waren lang – aber entscheidend war immer:
Update successful
7. Typische Stolpersteine während des Upgrades
„App not known at the marketplace“
Kein Fehler.
- Core‑Apps gehören nicht zum Marketplace
- Die Meldung ist harmlos
Integritätswarnungen
Nach dem Upgrade meldete OwnCloud:
- Integritätsprüfung fehlgeschlagen
Grund:
- Historisch installierte Apps
- Manuelle Updates
👉 In meinem Fall ignorierbar, da die Funktionalität gegeben war.
8. Umzug auf Subdomain: cloud.hsww.de
Im Zuge des Upgrades habe ich OwnCloud sauber aus dem Unterverzeichnis gelöst:
- vorher:
www.hsww.de/owncloud - jetzt:
cloud.hsww.de
DNS‑Check:
dig cloud.hsww.de +short
Apache‑vHost (relevant):
<VirtualHost *:443>
ServerName cloud.hsww.de
DocumentRoot /var/www/html/owncloud
<FilesMatch \.php$>
SetHandler "proxy:fcgi://127.0.0.1:9002"
</FilesMatch>
</VirtualHost>
Zusätzlich musste in config.php ergänzt werden:
'trusted_domains' => [
'cloud.hsww.de',
],
9. Warum OwnCloud nicht mit PHP 8.1 laufen darf
Ein wichtiger Punkt zum Abschluss:
OwnCloud 10.12 unterstützt offiziell nur PHP 7.4
Auch wenn occ unter PHP 8.1 teilweise läuft:
- der Web‑Entry blockiert bewusst
- eigene Checks verhindern den Start
👉 Das ist kein Bug, sondern eine Designentscheidung.
PHP 8.1 bleibt daher global Standardfür alle mein Webseiten,
OwnCloud wird gezielt über PHP 7.4 betrieben, bis PHP 8.x unterstützt wird.
Fazit
Was zunächst wie ein kleines PHP‑Update aussah, entwickelte sich zu:
- einer sauberen PHP‑Trennung
- einem vollständigen OwnCloud‑Major‑Upgrade
- einer strukturellen Verbesserung (Subdomain und klare Zuständigkeiten)
Mein wichtigstes Learning:
Genug Zeit für die Major Updates einplanen! – Sie zahlen massiv auf Stabilität, Sicherheit und Wartbarkeit ein.
Wenn du einen ähnlichen Weg vor dir hast: Plane ihn bewusst, Schritt für Schritt – dann gibt es keine spontane Nachtschicht zum Bugfixing.
Referenzen
OwnCloud Docs: https://doc.owncloud.com/server/latest/admin_manual/
PHP Compatibility: https://doc.owncloud.com/server/latest/admin_manual/installation/system_requirements.html
ANEX 1 – Vollständige Logausgaben:
Log Update 10.11 → 10.12 von Owncloud
sudo -u apache /opt/remi/php74/root/usr/bin/php /var/www/html/owncloud/occ upgrade
ownCloud or one of the apps require upgrade - only a limited number of commands are available
You may use your browser or the occ upgrade command to do the upgrade
2026-01-19T09:56:21+00:00 Set log level to debug
2026-01-19T09:56:21+00:00 Repair step: Upgrade app code from the marketplace
2026-01-19T09:56:21+00:00 Repair info: Using market to update existing apps
2026-01-19T09:56:21+00:00 Repair info: Attempting to update the following existing compatible apps from market: comments, dav, federatedfilesharing, files, files_external, files_mediaviewer, files_sharing, files_trashbin, files_versions, firstrunwizard, market, provisioning_api, updatenotification
2026-01-19T09:56:21+00:00 Repair info: Fetching app from market: comments
2026-01-19T09:56:22+00:00 Repair info: App (comments) is not known at the marketplace.
2026-01-19T09:56:22+00:00 Repair info: Fetching app from market: dav
2026-01-19T09:56:22+00:00 Repair info: App (dav) is not known at the marketplace.
2026-01-19T09:56:22+00:00 Repair info: Fetching app from market: federatedfilesharing
2026-01-19T09:56:22+00:00 Repair info: App (federatedfilesharing) is not known at the marketplace.
2026-01-19T09:56:22+00:00 Repair info: Fetching app from market: files
2026-01-19T09:56:22+00:00 Repair info: App (files) is not known at the marketplace.
2026-01-19T09:56:22+00:00 Repair info: Fetching app from market: files_external
2026-01-19T09:56:22+00:00 Repair info: App (files_external) is not known at the marketplace.
2026-01-19T09:56:22+00:00 Repair info: Fetching app from market: files_mediaviewer
2026-01-19T09:56:22+00:00 Repair info:
2026-01-19T09:56:22+00:00 Repair info: Fetching app from market: files_sharing
2026-01-19T09:56:22+00:00 Repair info: App (files_sharing) is not known at the marketplace.
2026-01-19T09:56:22+00:00 Repair info: Fetching app from market: files_trashbin
2026-01-19T09:56:22+00:00 Repair info: App (files_trashbin) is not known at the marketplace.
2026-01-19T09:56:22+00:00 Repair info: Fetching app from market: files_versions
2026-01-19T09:56:22+00:00 Repair info: App (files_versions) is not known at the marketplace.
2026-01-19T09:56:22+00:00 Repair info: Fetching app from market: firstrunwizard
2026-01-19T09:56:22+00:00 Repair info: App (firstrunwizard) is not known at the marketplace.
2026-01-19T09:56:22+00:00 Repair info: Fetching app from market: market
2026-01-19T09:56:22+00:00 Repair warning: Exception
2026-01-19T09:56:22+00:00 Repair warning: Archives of type application/x-empty are not supported
2026-01-19T09:56:22+00:00 Repair info: Fetching app from market: provisioning_api
2026-01-19T09:56:22+00:00 Repair info: App (provisioning_api) is not known at the marketplace.
2026-01-19T09:56:22+00:00 Repair info: Fetching app from market: updatenotification
2026-01-19T09:56:22+00:00 Repair info: App (updatenotification) is not known at the marketplace.
2026-01-19T09:56:22+00:00 Repair info: App was not updated: comments
2026-01-19T09:56:22+00:00 Repair info: App was not updated: dav
2026-01-19T09:56:22+00:00 Repair info: App was not updated: federatedfilesharing
2026-01-19T09:56:22+00:00 Repair info: App was not updated: files
2026-01-19T09:56:22+00:00 Repair info: App was not updated: files_external
2026-01-19T09:56:22+00:00 Repair info: App was not updated: files_mediaviewer
2026-01-19T09:56:22+00:00 Repair info: App was not updated: files_sharing
2026-01-19T09:56:22+00:00 Repair info: App was not updated: files_trashbin
2026-01-19T09:56:22+00:00 Repair info: App was not updated: files_versions
2026-01-19T09:56:22+00:00 Repair info: App was not updated: firstrunwizard
2026-01-19T09:56:22+00:00 Repair info: App was not updated: market
2026-01-19T09:56:22+00:00 Repair info: App was not updated: provisioning_api
2026-01-19T09:56:22+00:00 Repair info: App was not updated: updatenotification
2026-01-19T09:56:22+00:00 Repair step: Repair MySQL database engine
2026-01-19T09:56:22+00:00 Repair step: Repair MySQL collation
2026-01-19T09:56:22+00:00 Repair info: Change collation for oc_mounts ...
2026-01-19T09:56:22+00:00 Repair info: Change collation for oc_cards ...
2026-01-19T09:56:22+00:00 Repair info: Change collation for oc_migrations ...
2026-01-19T09:56:22+00:00 Repair info: Change collation for oc_cards_properties ...
2026-01-19T09:56:22+00:00 Repair info: Change collation for oc_group_user ...
2026-01-19T09:56:22+00:00 Repair info: Change collation for oc_appconfig ...
2026-01-19T09:56:22+00:00 Repair info: Change collation for oc_files_trash ...
2026-01-19T09:56:22+00:00 Repair info: Change collation for oc_account_terms ...
2026-01-19T09:56:22+00:00 Repair info: Change collation for oc_filecache ...
2026-01-19T09:56:22+00:00 Repair info: Change collation for oc_external_mounts ...
2026-01-19T09:56:22+00:00 Repair info: Change collation for oc_dav_properties ...
2026-01-19T09:56:22+00:00 Repair info: Change collation for oc_share_external ...
2026-01-19T09:56:22+00:00 Repair info: Change collation for oc_preferences ...
2026-01-19T09:56:22+00:00 Repair info: Change collation for oc_calendars ...
2026-01-19T09:56:22+00:00 Repair info: Change collation for oc_vcategory_to_object ...
2026-01-19T09:56:22+00:00 Repair info: Change collation for oc_authtoken ...
2026-01-19T09:56:22+00:00 Repair info: Change collation for oc_comments ...
2026-01-19T09:56:22+00:00 Repair info: Change collation for oc_groups ...
2026-01-19T09:56:22+00:00 Repair info: Change collation for oc_external_applicable ...
2026-01-19T09:56:22+00:00 Repair info: Change collation for oc_storages ...
2026-01-19T09:56:22+00:00 Repair info: Change collation for oc_dav_job_status ...
2026-01-19T09:56:22+00:00 Repair info: Change collation for oc_mimetypes ...
2026-01-19T09:56:22+00:00 Repair info: Change collation for oc_external_options ...
2026-01-19T09:56:22+00:00 Repair info: Change collation for oc_share ...
2026-01-19T09:56:22+00:00 Repair info: Change collation for oc_users ...
2026-01-19T09:56:22+00:00 Repair info: Change collation for oc_calendarsubscriptions ...
2026-01-19T09:56:22+00:00 Repair info: Change collation for oc_jobs ...
2026-01-19T09:56:22+00:00 Repair info: Change collation for oc_persistent_locks ...
2026-01-19T09:56:22+00:00 Repair info: Change collation for oc_vcategory ...
2026-01-19T09:56:22+00:00 Repair info: Change collation for oc_external_config ...
2026-01-19T09:56:22+00:00 Repair info: Change collation for oc_systemtag ...
2026-01-19T09:56:22+00:00 Repair info: Change collation for oc_group_admin ...
2026-01-19T09:56:22+00:00 Repair info: Change collation for oc_calendarobjects ...
2026-01-19T09:56:22+00:00 Repair info: Change collation for oc_comments_read_markers ...
2026-01-19T09:56:22+00:00 Repair info: Change collation for oc_addressbooks ...
2026-01-19T09:56:22+00:00 Repair info: Change collation for oc_addressbookchanges ...
2026-01-19T09:56:22+00:00 Repair info: Change collation for oc_credentials ...
2026-01-19T09:56:22+00:00 Repair info: Change collation for oc_dav_shares ...
2026-01-19T09:56:22+00:00 Repair info: Change collation for oc_schedulingobjects ...
2026-01-19T09:56:22+00:00 Repair info: Change collation for oc_privatedata ...
2026-01-19T09:56:22+00:00 Repair info: Change collation for oc_systemtag_group ...
2026-01-19T09:56:22+00:00 Repair info: Change collation for oc_federated_reshares ...
2026-01-19T09:56:22+00:00 Repair info: Change collation for oc_calendarchanges ...
2026-01-19T09:56:22+00:00 Repair info: Change collation for oc_file_locks ...
2026-01-19T09:56:22+00:00 Repair info: Change collation for oc_properties ...
2026-01-19T09:56:22+00:00 Repair info: Change collation for oc_systemtag_object_mapping ...
2026-01-19T09:56:22+00:00 Repair info: Change collation for oc_accounts ...
2026-01-19T09:56:22+00:00 Repair step: Repair SQLite autoincrement
2026-01-19T09:56:22+00:00 Repair step: Repair orphaned reshare
2026-01-19T09:56:22+00:00 Repair step: Repair duplicate entries in oc_lucene_status
2026-01-19T09:56:22+00:00 Repair info: lucene_status table does not exist -> nothing to do
2026-01-19T09:56:22+00:00 Updating database schema
2026-01-19T09:56:23+00:00 Updated database
2026-01-19T09:56:23+00:00 Repair step: Repair mime types
2026-01-19T09:56:23+00:00 Repair step: Detect file cache entries with path that does not match parent-child relationships
2026-01-19T09:56:23+00:00 Repair step: Generate ETags for file where no ETag is present.
2026-01-19T09:56:23+00:00 Repair info: ETags have been fixed for 0 files/folders.
2026-01-19T09:56:23+00:00 Repair step: Clean tags and favorites
2026-01-19T09:56:23+00:00 Repair info: 0 tags of deleted users have been removed.
2026-01-19T09:56:23+00:00 Repair info: 0 tags for delete files have been removed.
2026-01-19T09:56:23+00:00 Repair info: 0 tag entries for deleted tags have been removed.
2026-01-19T09:56:23+00:00 Repair info: 0 tags with no entries have been removed.
2026-01-19T09:56:23+00:00 Repair step: Drop old database tables
2026-01-19T09:56:23+00:00 Repair step: Drop old background jobs
2026-01-19T09:56:23+00:00 Repair step: Remove getetag entries in properties table
<VirtualHost *:443>
2026-01-19T09:56:23+00:00 Repair info: Removed 0 unneeded "{DAV:}getetag" entries from properties table.
2026-01-19T09:56:23+00:00 Repair step: Repair invalid shares
2026-01-19T09:56:23+00:00 Repair step: Repair sub shares
2026-01-19T09:56:23+00:00 Repair step: Remove old share propagation app entries
2026-01-19T09:56:23+00:00 Repair step: Move user avatars outside the homes to the new location
2026-01-19T09:56:23+00:00 Repair info: No action required
SHELL=/bin/bash
2026-01-19T09:56:23+00:00 Repair step: Fix user avatars location
2026-01-19T09:56:23+00:00 Repair info: No action required
2026-01-19T09:56:23+00:00 Repair step: Remove shares of a users root folder
2026-01-19T09:56:23+00:00 Repair step: Repair unmerged shares
2026-01-19T09:56:23+00:00 Repair step: Disable extra themes
2026-01-19T09:56:23+00:00 Starting code integrity check...
2026-01-19T09:56:25+00:00 Finished code integrity check
2026-01-19T09:56:25+00:00 Update successful
2026-01-19T09:56:25+00:00 Maintenance mode is kept active
2026-01-19T09:56:25+00:00 Reset log level
OwnCloud Status nach dem letzten Update
sudo -u apache /opt/remi/php74/root/usr/bin/php /var/www/html/owncloud/occ status
ownCloud is in maintenance mode - no app have been loaded
- installed: true
- first_install_version: unknown
- version: 10.12.0.6
- versionstring: 10.12.0
- edition: Community