Installation im Webhosting mit Plesk
owncloud.online lässt sich auch in einem Hosting-Paket mit dem Kundenmenü Plesk installieren. Sie brauchen weder Root-Zugang noch Kommandozeile: Sie laden eine ZIP-Datei hoch, legen eine Datenbank an und schließen die Einrichtung im Browser ab. Andere Kundenmenüs wie cPanel funktionieren nach demselben Muster, nur heißen die Menüpunkte anders.
Am Ende liegen im Heimatverzeichnis Ihres Hosting-Pakets, neben httpdocs,
zwei neue Ordner:
| Ordner | Inhalt |
|---|---|
owncloud |
das Programm. Die Domain zeigt auf diesen Ordner. |
oco-data |
das Datenverzeichnis mit allen hochgeladenen Dateien. Es liegt außerhalb der Website und ist aus dem Internet nicht erreichbar. |
In den Beispielen heißt die Domain cloud.example.com. Setzen Sie Ihre eigene
ein.
Voraussetzungen prüfen
Prüfen Sie diese Punkte, bevor Sie anfangen. An jedem davon scheitert die Installation sonst später.
| Anforderung | Warum | Wo Sie es sehen |
|---|---|---|
| PHP 8.4 | Ältere Versionen starten nicht, PHP 8.5 wird nicht unterstützt | PHP-Einstellungen der Domain |
| Linux-Server | Hosting auf Windows lehnt owncloud.online ab | Angabe des Hosters |
| MySQL oder MariaDB | Datenbank für Konten, Freigaben und Dateiliste | Datenbanken |
| PHP darf 512 MB Arbeitsspeicher nutzen | Vorschaubilder und Aktualisierungen brauchen ihn | PHP-Einstellungen, Wert memory_limit |
| Ordner außerhalb der Website | für das Datenverzeichnis | Dateimanager: Heimatverzeichnis mit httpdocs darin |
| Geplante Aufgaben | für die Hintergrund-Jobs | Menüpunkt im Kundenmenü |
| Let's Encrypt | für HTTPS | SSL/TLS-Zertifikate |
| ausgehende HTTPS-Verbindungen | für Apps aus dem Marketplace, nicht zwingend | beim Hoster erfragen |
owncloud.online prüft beim Start außerdem diese PHP-Erweiterungen: zip, dom, XMLWriter, XMLReader, intl, libxml, mbstring, ctype, JSON, GD, zlib, iconv, SimpleXML, hash, cURL und PDO mit dem Treiber für MySQL. In Plesk sind sie üblicherweise vorhanden.
Grenzen des Webhostings
Im Webhosting fehlen meist die Kommandozeile mit dem Befehl occ und Redis.
Damit gelten diese Grenzen:
| Grenze | Folge |
|---|---|
| mehr als 50 Konten | Die Aktualisierung im Browser verweigert den Dienst und verlangt den Befehl occ upgrade. |
App user_ldap oder user_shibboleth installiert |
dieselbe Sperre, unabhängig von der Zahl der Konten |
| kein Redis | Dateisperren laufen über die Datenbank. Die Einstellungsseite zeigt dazu dauerhaft eine Warnung. |
| Wartungsaufgaben | Dateibestand neu einlesen, Dateien zwischen Konten übertragen und Reparaturschritte gehen nur mit occ. |
Für mehr als 50 Konten oder eine Anbindung an LDAP planen Sie von Anfang an einen Linux-Server oder ein Paket mit SSH-Zugang ein, siehe Mit SSH-Zugang.
1. Domain und HTTPS vorbereiten
- Legen Sie in Plesk unter Websites & Domains die Domain oder Subdomain
cloud.example.coman, falls es sie noch nicht gibt. - Stellen Sie unter SSL/TLS-Zertifikate ein kostenloses Zertifikat von Let's Encrypt für die Domain aus.
- Schalten Sie in den Hosting-Einstellungen der Domain die dauerhafte Weiterleitung von HTTP auf HTTPS ein.
Rufen Sie https://cloud.example.com auf. Der Browser zeigt die Seite ohne
Warnung zum Zertifikat an.
2. PHP einstellen
Öffnen Sie die PHP-Einstellungen der Domain:
| Einstellung | Wert |
|---|---|
| PHP-Version | 8.4, als FPM-Anwendung über Apache. Bei der Variante über nginx greift die mitgelieferte .htaccess nicht. |
memory_limit |
512M oder mehr |
max_execution_time |
3600 |
open_basedir |
muss das ganze Heimatverzeichnis umfassen. Die Vorgabe von Plesk {WEBSPACEROOT}{/}{:}{TMP}{/} tut das. |
Speichern Sie die Einstellungen.
Hintergrund: Werte aus der .user.ini
Das Release bringt eine Datei .user.ini mit, die PHP als FPM-Anwendung
bei jeder Anfrage liest. Sie setzt upload_max_filesize und
post_max_size auf 513M, memory_limit auf 512M, default_charset
auf UTF-8 und output_buffering auf 0. Diese Werte haben Vorrang vor
den PHP-Einstellungen in Plesk, solange der Hoster sie nicht ausdrücklich
sperrt.
Die Grenze von 513 MB gilt für eine einzelne Anfrage. Die Weboberfläche und der Desktop-Client laden große Dateien in Teilen hoch und sind davon nicht betroffen.
3. Herunterladen und prüfen
Laden Sie von https://github.com/BWTECH-github/owncloud.online/releases auf Ihren eigenen Rechner:
owncloud-online-11.0.25.zip, rund 65 MB, oder die neuere Version, die dort angeboten wird,SHA256SUMS.txtmit den Prüfsummen.
Prüfen Sie, ob die ZIP-Datei unverändert angekommen ist. Unter Windows öffnen Sie PowerShell im Download-Ordner und geben ein:
(Get-FileHash .\owncloud-online-11.0.25.zip -Algorithm SHA256).Hash -eq ((Select-String 'owncloud-online-11.0.25.zip' .\SHA256SUMS.txt).Line -split '\s+')[0]
Die Antwort lautet True. Unter Linux lautet der Befehl
sha256sum --ignore-missing -c SHA256SUMS.txt, die Antwort
owncloud-online-11.0.25.zip: OK. Unter macOS zeigt
shasum -a 256 owncloud-online-11.0.25.zip die Prüfsumme an. Vergleichen Sie
sie mit der Zeile für die ZIP-Datei in SHA256SUMS.txt.
Lautet die Antwort False oder weicht die Prüfsumme ab, ist die Datei
beschädigt oder verändert. Laden Sie sie neu herunter und laden Sie sie nicht
hoch.
4. Hochladen und auspacken
- Öffnen Sie in Plesk den Dateimanager. Er zeigt das Heimatverzeichnis mit
dem Ordner
httpdocs. - Laden Sie die ZIP-Datei in dieses Heimatverzeichnis hoch, nicht in
httpdocs. Laden Sie die ZIP-Datei hoch, nicht die ausgepackten Dateien. Das Programm besteht aus über 11 000 Dateien, einzeln hochgeladen dauert das Stunden. - Entpacken Sie die ZIP-Datei über ihr Menü im Dateimanager. Es entsteht der
Ordner
owncloud. - Legen Sie daneben einen leeren Ordner
oco-dataan. - Löschen Sie die ZIP-Datei.
Öffnen Sie den Ordner owncloud. Darin liegen unter anderem die Ordner apps,
config und core sowie die Dateien .htaccess und .user.ini.
5. Datenbank anlegen
Legen Sie unter Datenbanken mit Datenbank hinzufügen eine neue, leere
Datenbank an, zum Beispiel owncloud_online, dazu einen Datenbankbenutzer mit
einem eigenen, zufälligen Passwort. Notieren Sie vier Angaben:
| Angabe | Hinweis |
|---|---|
| Datenbankname | manchmal mit einem festen Präfix, etwa p123_owncloud_online |
| Datenbankbenutzer | |
| Passwort | |
| Datenbankserver | meist localhost. Zeigt Plesk einen anderen Namen oder einen Port wie localhost:3306, notieren Sie ihn genau so. |
Die Datenbank muss leer sein. Tabellen einer anderen Anwendung führen zu Fehlern bei der Einrichtung.
6. Domain auf den Programmordner richten
Stellen Sie in den Hosting-Einstellungen von cloud.example.com das
Verzeichnis, aus dem die Website ausgeliefert wird (Document Root), auf den
Ordner owncloud. Speichern Sie.
Rufen Sie https://cloud.example.com auf. Es erscheint der
Einrichtungsassistent von owncloud.online.
Einrichtung sofort abschließen
Bis Sie den nächsten Schritt abgeschlossen haben, kann jeder, der die Adresse aufruft, die Installation übernehmen. Machen Sie ohne Pause weiter.
7. Einrichtung im Browser
Füllen Sie das Formular aus:
| Feld | Eingabe |
|---|---|
| Administrator-Konto anlegen: Benutzername und Passwort | Ihr künftiges Administratorkonto. Ein eigenes, langes Passwort, das Sie sonst nirgends verwenden. |
| Speicher & Datenbank | Zum Aufklappen anklicken. |
| Datenverzeichnis | Vorgeschlagen ist ein Ordner data im Programmordner, etwa /var/www/vhosts/example.com/owncloud/data. Ersetzen Sie owncloud/data durch oco-data, im Beispiel also /var/www/vhosts/example.com/oco-data. |
| Datenbank einrichten | Stehen mehrere Datenbanken zur Wahl, wählen Sie MySQL/MariaDB. |
| Datenbank-Benutzer, Datenbank-Passwort, Datenbank-Name, Datenbank-Host | die vier Angaben aus Schritt 5 |
Klicken Sie auf Installation abschließen. Die Einrichtung dauert je nach Hoster bis zu zwei Minuten. Brechen Sie sie nicht ab. Danach erscheint die Dateiansicht oder die Anmeldeseite.
Hintergrund: was der Assistent einträgt
Der Assistent schreibt config/config.php. Dafür muss der Ordner config
beschreibbar sein, was in Plesk der Fall ist.
| Schlüssel | Wert |
|---|---|
datadirectory |
der Pfad zu oco-data |
dbtype, dbname, dbuser, dbpassword, dbhost |
Ihre Datenbankangaben |
trusted_domains |
die Adresse, unter der Sie den Assistenten aufgerufen haben |
overwrite.cli.url |
dieselbe Adresse mit https:// |
passwordsalt, secret |
zufällig erzeugt |
apps_paths |
apps/ (fest) und apps-external/ (für Apps aus dem Marketplace) |
Im Programmordner bleibt ein fast leerer Ordner data zurück. Der
Assistent legt ihn an, um den Schutz durch die .htaccess zu prüfen.
8. Hintergrund-Jobs einrichten
owncloud.online erledigt alle 15 Minuten Arbeiten im Hintergrund: Papierkorb und alte Versionen aufräumen, abgelaufene Freigaben entfernen, Benachrichtigungen und Mails verschicken. Legen Sie dafür unter Geplante Aufgaben eine neue Aufgabe an:
| Feld | Eingabe |
|---|---|
| Aufgabentyp | PHP-Skript ausführen |
| Skriptpfad | owncloud/cron.php, über das Ordnersymbol auswählen |
| PHP-Version | 8.4 |
| Ausführen | alle 15 Minuten, im Cron-Format */15 * * * * |
Stellen Sie danach in owncloud.online unter Einstellungen → Administration → Allgemein im Abschnitt Cron die Option Cron ein.

Die Option Cron passt zu einer geplanten Aufgabe, die cron.php mit PHP
ausführt. Nach spätestens 15 Minuten steht dort „Letzte Cron-Job-Ausführung: …“ mit
einem grünen Punkt.
Wenn Ihr Hoster nur Adressen aufrufen kann
Manche Pakete bieten nur Aufgaben vom Typ URL abrufen. Tragen Sie dann diese Adresse ein, möglichst alle 5 Minuten:
https://cloud.example.com/index.php/cron
Stellen Sie in owncloud.online die Option Webcron ein. Bei der Option
Cron antwortet die Adresse nur mit Background jobs are using system cron! und erledigt nichts. Jeder Aufruf arbeitet genau einen Job ab.
Deshalb ist der kurze Abstand wichtig.
Die Einstellungsseite nennt die Datei cron.php. Über das Web leitet sie
nur auf die Adresse oben weiter.
Wenn es nicht klappt
| Was Sie sehen | Ursache | Lösung |
|---|---|---|
| „Cron wurde bis jetzt noch nicht ausgeführt!“ bleibt stehen | Aufgabe fehlt, läuft mit einer anderen PHP-Version oder die Option passt nicht zur Aufgabe | Aufgabe und PHP-Version prüfen; PHP-Skript ausführen gehört zu Cron, URL abrufen zu Webcron |
| Die Aufgabe läuft, aber es passiert nichts | Der Hoster sperrt die PHP-Funktion system(), über die cron.php den eigentlichen Lauf startet |
auf URL abrufen und Webcron wechseln |
| Die Liste der Jobs wird nicht kürzer | Webcron arbeitet nur einen Job je Aufruf ab | Abstand verkürzen oder PHP-Skript ausführen nutzen |
9. Anmelden und prüfen
Rufen Sie https://cloud.example.com/status.php auf. Die Antwort enthält
"installed":true und "maintenance":false.
Melden Sie sich an und öffnen Sie Einstellungen → Administration → Allgemein. Die Seite prüft beim Öffnen die Einrichtung und zeigt Probleme im Abschnitt Sicherheits- & Einrichtungswarnungen. Erscheint dort
Dein Datenverzeichnis und deine Dateien sind wahrscheinlich vom Internet aus erreichbar. Die .htaccess-Datei funktioniert nicht.
liegt das Datenverzeichnis im Programmordner, und die .htaccess schützt es
nicht. Diese Warnung darf nicht stehen bleiben. Bei einer frischen Installation
ohne Daten beginnen Sie neu: Löschen Sie owncloud/config/config.php, legen Sie
die Datenbank in Plesk neu an und wiederholen Sie Schritt 7 mit oco-data. Was die übrigen Meldungen bedeuten, steht unter
Sicherheit und Setup-Warnungen.
Richten Sie danach den E-Mail-Versand ein. Tragen Sie dort den SMTP-Zugang Ihres Postfachs ein. Ohne ihn kommen keine Mails zum Zurücksetzen von Passwörtern und keine Einladungen an.
Zwischenspeicher
Ohne Zwischenspeicher liest owncloud.online bei jeder Anfrage alle Sprach- und
App-Dateien neu ein. Bietet Ihr Hoster die PHP-Erweiterung APCu an, schalten
Sie sie als Zwischenspeicher ein. Öffnen Sie dazu owncloud/config/config.php
im Dateimanager und fügen Sie vor der letzten Zeile ); diese Zeile ein:
'memcache.local' => '\OC\Memcache\APCu',
Erscheint danach die Fehlerseite Memcache \OC\Memcache\APCu not available for local cache, fehlt APCu. Entfernen Sie die Zeile wieder.
config.php vorsichtig bearbeiten
Ein Tippfehler in config/config.php macht die Instanz unerreichbar.
Laden Sie die Datei vor jeder Änderung herunter, damit Sie sie
zurückspielen können.
Mit SSH-Zugang
Erlaubt Ihr Paket einen SSH-Zugang mit vollständiger Shell, steht auch occ
zur Verfügung. Melden Sie sich an und rufen Sie es mit dem PHP von Plesk auf:
/opt/plesk/php/8.4/bin/php owncloud/occ status
Damit entfallen die Grenzen des Webhostings, die an occ hängen.
Die Befehle aus den
übrigen Seiten dieser Dokumentation schreiben Sie dann ohne sudo -u www-data
und mit /opt/plesk/php/8.4/bin/php owncloud/occ statt php8.4 occ.
Was ohne Kommandozeile anders läuft
| Aufgabe | Mit occ |
Ersatz im Webhosting |
|---|---|---|
| Zustand abfragen | occ status |
status.php im Browser |
| Aktualisieren | occ upgrade |
Aktualisierung im Browser, bis 50 Konten |
| Wartungsmodus schalten | occ maintenance:mode --on |
'maintenance' => true, in config/config.php |
| Einstellungen setzen | occ config:system:set … |
Eintrag in config/config.php, siehe Konfiguration (config.php) |
| Apps ein- und ausschalten | occ app:enable <app> |
Einstellungen → Administration → Apps |
| Apps installieren | occ market:install <app> |
App „Market“ in der Weboberfläche |
| Dateibestand neu einlesen | occ files:scan --all |
kein Ersatz |
| Dateien eines Kontos übertragen | occ files:transfer-ownership … |
kein Ersatz |
| Reparaturschritte | occ maintenance:repair |
kein Ersatz |
Apps nachinstallieren
Das Release enthält den Server mit den Grundfunktionen und die App „Market“. Weitere Apps wie Aktivität, Galerie, Texteditor oder Gäste installieren Sie aus dem Marketplace. Für Administratorkonten erscheint dazu im App-Menü oben links der Eintrag Market. Zwei Voraussetzungen:
- Der Server darf
https://marketplace.owncloud.onlineerreichen. Sperrt der Hoster ausgehende Verbindungen, bleibt die Liste leer. - Der Ordner
owncloud/apps-externalist beschreibbar, was in Plesk der Fall ist.
Ohne Marketplace geht es von Hand: App-Paket herunterladen, auf dem eigenen
Rechner entpacken, den Ordner nach owncloud/apps-external hochladen und die
App unter Einstellungen → Administration → Apps einschalten. Einzelheiten
unter Apps und Marketplace.
Aktualisieren
Für ein Update tauschen Sie den Programmordner gegen den des neuen Release. Datenverzeichnis und Datenbank bleiben, wo sie sind.
- Sichern. Exportieren Sie die Datenbank unter Datenbanken und laden Sie
owncloud/config/config.phpund den Ordneroco-dataherunter. - Wartungsmodus einschalten. Ändern Sie in
owncloud/config/config.phpdie Zeile'maintenance' => false,in'maintenance' => true,. Fehlt die Zeile, fügen Sie sie vor der letzten Zeile);ein. - Neues Release hochladen. Laden Sie die ZIP-Datei der neuen Version
herunter, prüfen Sie sie wie in Schritt 3 und benennen Sie in Plesk den
alten Ordner
owncloudinowncloud-altum. Laden Sie die ZIP-Datei über den Dateimanager oder per FTP ins Heimatverzeichnis hoch und entpacken Sie sie im Dateimanager. Es entsteht ein neuer Ordnerowncloud. - Eigene Dateien übernehmen. Kopieren Sie
owncloud-alt/config/config.phpnachowncloud/config/. Kopieren Sie ausowncloud-alt/apps-externalalle Ordner außermarketnachowncloud/apps-external. - Wartungsmodus ausschalten. Ändern Sie in der übernommenen
config.phpdie Zeile wieder in'maintenance' => false,. - Aktualisierung starten. Rufen Sie
https://cloud.example.comauf. Die Seite meldet, dass owncloud.online auf die neue Version aktualisiert wird. Klicken Sie auf Aktualisierung starten.
Läuft alles, löschen Sie owncloud-alt. Klappt die Aktualisierung nicht,
benennen Sie die Ordner zurück und spielen Sie die gesicherte Datenbank ein.
Mehr zu Sicherungen unter
Backups und Updates.
Fehlersuche
Die meisten Fehler stehen mit Ursache im Protokoll oco-data/owncloud.log.
Die Anfragekennung von der Fehlerseite führt zum passenden Eintrag, siehe
Serverprotokoll und Fehlermeldungen.
| Was Sie sehen | Ursache | Lösung |
|---|---|---|
This version of owncloud.online requires at least PHP 8.4.0 |
PHP-Version zu alt oder für eine andere Domain eingestellt | PHP 8.4 in den PHP-Einstellungen dieser Domain wählen |
| „PHP-Modul … nicht installiert.“ | Eine Erweiterung fehlt | Erweiterung beim Hoster einschalten lassen |
Das Schreiben in das „config“-Verzeichnis ist nicht möglich |
config gehört einem anderen Benutzer als PHP |
Rechte im Dateimanager prüfen |
| „Das Datenverzeichnis … kann nicht erstellt oder es kann darin nicht geschrieben werden.“ | Pfad falsch oder außerhalb von open_basedir |
Pfad aus dem Dateimanager übernehmen, open_basedir prüfen |
| „Dein Datenverzeichnis muss ein absoluter Pfad sein“ | Pfad beginnt nicht mit / |
vollständigen Pfad eintragen |
| „Dein Daten-Verzeichnis ist ungültig“ | Die Datei .ocdata im Datenverzeichnis fehlt, etwa nach einem Verschieben |
leere Datei .ocdata in oco-data anlegen |
| „Du greifst auf den Server über eine nicht vertrauenswürdige Domain zu.“ | Aufruf über eine Adresse, die nicht in trusted_domains steht, etwa eine Vorschau-Adresse des Hosters |
Adresse in config/config.php unter trusted_domains ergänzen |
| Weiße Seite oder Fehler 500 ohne Meldung | PHP-Fehler | Protokoll lesen, siehe oben |
| Die App „Market“ zeigt keine Apps | Keine ausgehende Verbindung zum Marketplace | Hoster fragen, ob ausgehendes HTTPS erlaubt ist |
Die Aktualisierung im Browser verlangt occ upgrade |
mehr als 50 Konten oder user_ldap installiert |
SSH-Zugang nutzen oder auf einen Linux-Server umziehen |
Nach dem Update fehlen .htaccess oder .user.ini |
Dateien mit Punkt am Anfang wurden nicht mitkopiert | ZIP-Datei auf dem Server entpacken statt einzelne Dateien hochzuladen |