Die eigene Cloud auf dem Raspberry PI (Teil 2: ownCloud Installation)

Im ersten Teil meines Protokolls zum Thema Die eigene Cloud bin ich auf die Installation und Absicherung des Servers eingegangen. In diesem Teil geht es um die eigentliche Installation von ownCloud. Ziel ist es, Kalender- und Kontaktdaten weltweit im Zugriff zu haben, wobei sie dennoch auf eigener Hardware bleiben.

Dazu wurde die Web-Server-Software lighttpd installiert und die Kommunikation via Transport Layer Security (TLS) abgesichert. Mein (fiktiver) Web-Server ist nun ausschließlich unter https://owncloud.dahlen.org/ erreichbar.

Installation von ownCloud

Wegen der begrenzten Ressourcen des Raspberry PI wurde nicht auf das ownCloud-Paket der Distribution (Raspian) zurückgegriffen, da hier eine Abhängigkeit zum Apache 2 http-Server besteht. Dennoch kann das Gros der notwendigen Software aus den Paketquellen der Distribution genommen werden, z.B. PHP5 mit seinen Modulen:
$ sudo apt-get install php5-gd php5-curl php5-sqlite php5-cgi

PHP5

Nach der Installation von PHP5 sind bei Bedarf zwei Einstellungen anzupassen, welche Auswirkung auf den gleichen Aspekt haben: Die maximale Größe für Uploads nach ownCloud. Es handelt sich um folgende Parameter, die sich in der Datei /etc/php5/cgi/php.ini befinden:

  • upload_max_filesize
  • post_max_size

Ich habe beide Werte auf 16M gesetzt. In erster Linie möchte ich ownCloud für Kalender- und Kontaktdaten nutzen, aber mit 16MB sind auch mal ein Bild oder ein größeres Dokument drin.

Vor dem Beginn der eigentlichen Installation von ownCloud muß PHP5 noch via FastCGI angebunden werden. Dazu ist auch ein Neustart des Web-Servers notwendig:
$ sudo lighttpd-enable-mod fastcgi-php
$ sudo service lighttpd force-reload

ownCloud

Jetzt kann das ownCloud-Setup-Skript direkt vom Anbieter gezogen werden. Abgelegt wird es im Document-Root des Web-Servers /var/www/:
$ sudo wget -O /var/www/setup-owncloud.php \
https://download.owncloud.com/download/community/setup-owncloud.php

Außerdem sind noch Berechtigungen anzupassen, damit ownCloud Daten nachladen und installieren kann:
$ sudo chown www-data:www-data /var/www /var/www/setup-owncloud.php

Schließlich wird das Skript im Browser aufgerufen, gemäß Beispiel lautet die URL zum Setup https://owncloud.dahlen.org/setup-owncloud.php.

Es erscheint der Begrüßungsbildschirm der Installation. Dieser kann ohne Änderungen per Next bestätigt werden.

Screenshot ownCloud Web-Interface 1

Der Startbildschirm der OwnCloud Installation

Im folgenden Dialog kann man das Zielverzeichnis der Installation auswählen, relativ zum Document Root. Auch hier reicht ein Klick auf Next, auch wenn man mit owncloud nicht einverstanden ist (dazu später mehr):

Screenshot ownCloud Web-Interface 2

Auswahl des Zielverzeichnisses der Installation

Im Hintergrund lädt ownCloud nun die aktuelle Version vom ownCloud-Server und entpackt sie im vorhin gewählten Zielverzeichnis. Je nach Internet-Anbindung kann dieser Schritt etwas dauern. Sein Abschluß wird durch den dritten Dialog berichtet, den man wieder über Next bestätigt.

Screenshot ownCloud Web-Interface 3

OwnCloud meldet den Vollzug der Installation

Schließlich wird nach den Anmeldedaten des ersten Benutzers gefragt. Dieser wird automatisch zum Administrator. Nachdem man Benutzernamen und Passwort eingetragen hat, kann die Installation über die entsprechende Schaltfläche abgeschlossen werden.

Screenshot ownCloud Web-Interface 4

OwnCloud verlangt nach den Daten des Administrators

Im letzten Dialog war ein roter Textabschnitt zu sehen. Sinngemäß wird dadrin darauf hingewiesen, daß alle Daten, die man ownCloud anvertraut ohne jede Zugangskontrolle abrufbar sind. Darum wird lighttpd (und damit ownCloud) jetzt erstmal runtergefahren:
$ sudo service lighttpd stop

Nun zu Ursache und Beseitigung der Warnung: ownCloud speichert die meisten seiner Daten in einem Unterverzeichnis namens data. Dieses Verzeichnis wird in der Regel über eine Datei namens .htaccess vor direkten Zugriffen aus dem Internet geschützt. Nur indirekt, über die ownCloud-Software und das dort integrierte Rechtemanagement soll der Zugriff erfolgen.

lighttpd bietet aber keine Unterstützung für die Anweisungen in der .htaccess-Datei, darum besteht auch kein Zugriffsschutz. Zwar bietet auch lighttpd ähnliche Mechanismen, aber ich wähle einen anderen Weg.

Als erstes ersetze ich /var/www/owncloud durch /var/www, weil ich keine weitere Anwendung auf dem Raspberry PI laufen lassen werde.
$ sudo mv /var/www /var/www.off
$ sudo mv /var/www.off/owncloud /var/www
$ sudo rm -r /var/www.off

Dann verschiebe ich das data-Verzeichnis aus dem Bereich des Webservers.
$ sudo mkdir -p /srv/owncloud
$ sudo chown www-data:www-data /srv/owncloud
$ sudo mv /var/www/data /srv/owncloud

Den neuen Ort des data-Verzeichnisses müssen wir ownCloud bekannt machen, dazu wird der alte Wert in der Konfigurationsdatei /var/www/config/config.php geändert.

Aus
'datadirectory' => '/var/www/owncloud/data',
wird also
'datadirectory' => '/srv/owncloud/data',

Zeit lighttpd (und damit owncloud) neu zu starten.
$ sudo service lighttpd start

Damit ist die Installation von ownCloud abgeschlossen. Sie steht (nur lt. meinem Beispiel) jetzt direkt unter https://owncloud.dahlen.org/ zur Verfügung.

Im nächsten Teil gehe ich auf die Anbindung von Kontakten und Kalender via iOS und anderen Clients ein.

  1. Krstn sagt:

    Habe auf meinem rpi, dank deiner anleitung, erfolgreich die owncloud installieren können.

    allerdings stehe ich nun vor dem PRoblem dass sich MP3 Dateien nicht über den Menüpunkt Musik abspielen lassen, da sie hier nicht aufgelistet werden.

    Funktioniert das bei dir? Was muss dafür angepasst werden?
    Danke &lg

  2. Christoph sagt:

    Hallo,

    ich kann Dir das leider nicht (mehr) beantworten, denn zum einen hab ich auf ownCloud 5 migriert und zum anderen auf einen virtuellen, externen Server. Meine ursprüngliche Idee LAN-Gastzugang und Portfreigabe der Fritz!Box zu kombinieren, um einen isolierten Server zu Hause betrieben zu können, hat sich leider nicht umsetzen lassen.

    Mit ownCloud 5 taucht ein Test-MP3 zwar unter Musik auf, lässt sich auch der Wiedergabeliste hinzufügen, aber abgespielt wird nix.

    Gruß

    Christoph

  3. David sagt:

    Super Anleitung, hat auf Anhieb funktioniert.
    Danke!

  4. David sagt:

    Zur Frage von Krstn:
    Die media App hat in der Version 5 noch Fehler.
    Ich habe mir die aktuellste Version der App heruntergeladen und die alten Dateien ersetzt.

    Hier gibts die aktuelle App:
    https://github.com/owncloud/apps/tree/master/media

    Einfach auf den Button ZIP klicken und runterladen.

    Gruß, David

  5. Christoph sagt:

    Hallo David,

    danke für die Rückmeldung und den Tipp bzgl. der Media App. Tatsächlich scheint die Version 5.0.0 noch die ein oder andere Macke aufzuweisen. Besonders die Synchronisation mit Windows 7 ist äußerst wackelig.

    Auf einem Rechner werden die Dateien zwar fleissig runtergeladen, können dann aber nicht von ihrem temporären zu ihrem endgültigen Namen umbenannt werden – und verschwinden lokal.

    Auf einem anderen Rechner werden Dateien, welche auf den Server (via Web) hochgeladen wurden nur sehr unzuverlässig lokal repliziert. Die Misserfolgsquote liegt hier bei rund 25%.

    Ich rechne mit einer baldigen Version 5.0.1

    Gruß

    Christoph

  6. Ronny sagt:

    moin,

    eine frage und zwar wie machen ich ein update von 5.0.0 auf 5.0.1 ???
    –> http://owncloud.org/releases/Changelog
    danke im voraus

    gruß

    R.H.

  7. Christoph sagt:

    Hi,

    in der Regel entpackt man den Archiv-Inhalt einfach in das bestehende Verzeichnis, wodurch existierende Dateien ersetzt werden. Da im Archiv kein „data“ Verzeichnis und keine config/config.php vorhanden ist, sollten Daten und Konfiguration erhalten bleiben.

    Natürlich wird empfohlen, vorher einen Backup inkl. der Datenbank zu machen, aber das bleibt jedem freigestellt.

    Bei mir hat gereicht:

    $ wget http://download.owncloud.org/community/owncloud-5.0.1.tar.bz2
    $ tar xvfj owncloud-5.0.1.tar.bz2
    $ sudo cp -r owncloud/* /var/www/
    $ sudo cp owncloud/.htaccess /var/www/
    $ sudo chown -R www-data:nogroup /var/www/

    Allerdings: Auch nach der Installation meldet sich ownCloud beim Aufruf der status.php als version 5.0.0. Die Media-App und die Antivirus-App funktionieren immer noch nicht. Wg. diverser Sicherheitskorrekturen würde ich das Update dennoch einspielen.

    Gruß

    Christoph

  8. Christoph sagt:

    Die Ereignisse überschlagen sich gerade. 5.0.1 war kurz öffentlich angekündigt, dann zurückgezogen und in Kürze soll 5.0.2 kommen. Es bleibt spannend.

  9. Christoph sagt:

    So, inzwischen ist 5.0.2 auch offiziell verfügbar und lässt sich nach obigem Verfahren upgraden. Es findet auch ein Update der Datenbank statt und die Version meldet sich anschliessend als 5.0.2.

  10. Ronny sagt:

    hallo,

    ich habe geupdate auf 5.0.2 nach diese anleitung

    $ wget http://download.owncloud.org/community/owncloud-5.0.2.tar.bz2
    $ tar xvfj owncloud-5.0.2.tar.bz2
    $ sudo cp -r owncloud/* /var/www/
    $ sudo cp owncloud/.htaccess /var/www/
    $ sudo chown -R www-data:nogroup /var/www/

    und wollte wissen ob das hier „ownCloud is in maintenance mode“ normal ist ???

  11. Christoph sagt:

    Ob das „normal“ ist, weiß ich nicht – aber ich hatte das auch beim Upgrade von 4.5.x auf 5.0.0. Der Maintenance Mode wird durch eine Variable in der config/config.php Datei aktiviert. Dort müsste sich jetzt folgender Eintrag finden:

    'maintenance' => true,

    Bei mir war es ausreichend, aus dem „true“ ein „false“ zu machen um OC aus dem Maintenance Mode zu holen.

    Gruß

    Christoph

  12. dan sagt:

    Vielen Dank für die super Anleitung!
    Würde dies gerne genauso umsetzen und froh, über solch ein fundiertes Tutorial „gespolpert“
    zu sein 🙂

    Würde gerne eine kleine Wolke einrichten für circa 5-10 User als Dropbox-Ersatz.
    Aber diese Last würde der pi wohl nicht vertragen, oder?

    Habe auch anderswo gelesen, dass die Performance unter sqlite sehr schleppend, unter MySQL dagegen deutlich besser sei. Allerdings wurde dort kein lighttpd, sondern Apache genommen…

    Was raten Sie mir?

    Danke schonmal,
    Gruß dan

  13. Christoph sagt:

    Hallo Dan,

    ich kann dazu leider keine belastbare Aussage treffen. Inzwischen habe ich die ownCloud-Installation auf einen externen Rechner verschoben und auf MySQL und Apache umgestellt.

    Jetzt ist sie deutlich schneller, allerdings hat der externe Rechner auch deutlich mehr Leistung.

    Gruss

    Christoph

  14. St3f1n sagt:

    Salü!

    Danke für dieser wahnsinnig gut geschriebene und ausführliche Anleitung. Die hat mich wirklich einen grossen Sprung nach Vorne gebracht. Ich habe sie Schritt für Schritt befolgt und bin mit Version 5.0.5 von Owncloud auf meiner RPI schon soweit gekommen dass es läuft. DasZertifikat und alles hat super funktioniert. Es hat zwar noch einen Fehler wegen der locale, aber das kann ich ja noch umstellen. Was mir mehr sorgen bereitet ist die Meldung: „Dein Web-Server ist noch nicht für Datei-Synchronisation bereit, weil die WebDAV-Schnittstelle vermutlich defekt ist.“
    Ich ha vom lighttpd allerdings nichts gefunden wie man WebDav flickt. Hattet ihr diese FM auch und wenn ja, was kann ich tun?
    viele Grüsse,
    Stafen

  15. Christoph sagt:

    Hallo St3f1n,

    ich hatte diese Fehlermeldung nicht, ich bin aber der Meinung, daß die WebDAV-Schnittstelle durch ownCloud realisiert ist und nicht vom Webserver abhängt.

    Gruß

    Christoph

  16. Wolfgang sagt:

    Hallo,
    hat bisher alles toll geklappt.
    Im Teil2 komme ich hier nicht weiter.

    …Schließlich wird das Skript im Browser aufgerufen, gemäß Beispiel lautet die URL zum Setup https://owncloud.dahlen.org/setup-owncloud.php.

    Muss ich auf dem RPi jetzt einen Browser aufrufen?
    Wie starte ich den?
    Habe midori probiert, startx zeigt nichts an, ich arbeite mit SSH (ubuntu) oder Putty (W7, mit SSH/X11 enabled). In beiden Fällen hats bisher nicht geklappt.

    Vielen Dank für einen Tipp.

    Gruß

    Wolfgang

  17. Christoph sagt:

    Hallo Wolfgang,

    Du mußt im Browser die ownCloud-Installation auf dem Raspberry aufrufen. Natürlich geht das auch mit einem auf dem Raspberry gestarteten Browser, aber einfacher und vermutlich schneller ist ein Browser auf einem anderen Rechner.

    Gruß

    Christoph

  18. Mike sagt:

    Hallo,

    zunächst einmal: Klasse Anleitung, vielen Dank.

    Mir geht es (wohl) genauso wie Wolfgang…

    Bislang hat alles prima geklappt…

    Aber wie wird denn der Raspi aus dem Netz erreicht ? Ich habe eine DOMAIN gewählt, die besteht; jedoch eine SUBDOMAIN und einen Benutzer der nicht (tatsächlich) existiert. Das Erstellen des Formulares war auch erfolgreich.

    Alles bestens, bis zu:

    ZITAT

    „Schließlich wird das Skript im Browser aufgerufen, gemäß Beispiel lautet die URL zum Setup https://owncloud.dahlen.org/setup-owncloud.php. “

    ZITATENDE

    Da erhalte ich beim Aufruf der entsprechenden „https://subdomain.domain.de/setup-owncloud.php“ nur „Seite nicht gefunden“ „Not Found“ usw…

    …selbst wenn ich den Browseerr auf dem Raspi verwende… Die Verbindung ‚ins Netz‘ besteht natürlich…

    Kannst Du vielleicht noch etwas dazu (Routing) ausführen, (Web-)Tipps geben oder auf evtl. fatale Fehler hinweisen ?

    Ich verbleibe mit herzlichem Dank.

    Mike

  19. Christoph sagt:

    Es ist schon notwendig, daß die gewählte Domäne auf die IP-Adresse des Raspberry aufgelöst werden kann. Ich würde euch empfehlen, daß ihr einen entsprechenden Eintrag in der „hosts“ Datei eures Client-Systems erstellt, also dem System von welchem ihr die owncloud-Oberfläche aufrufen wollt.

    Und Linux ist das z.B. die Datei /etc/hosts unter Windows 7 ist das die Datei C:\Windows\System32\drivers\etc\hosts . Das jeweilige Betriebssystem schaut zunächst in dieser Datei nach, bevor es eine Namensauflösung via DNS versucht.

  20. Mike sagt:

    Hallo Christoph,

    vielen Dank für den richtigen Hinweis ! 🙂 Genau das war der ’springende Punkt‘ … Der Eintarg in der hosts-Datei…

    Danke.

    Mike

  21. Markus sagt:

    Ich bekomme bei dem Befehl
    service lighttpd force-reload
    die Meldung
    * Reloading web server configuration lighttpd [fail]
    woran kann das liegenß

  22. Christoph sagt:

    Guck mal in die Logfiles von Lighttpd, da finden sich sicherlich Hinweise.

    Gruß

    Christoph

  23. Markus sagt:

    Kannst du mir noch sagen wo ich die finde? Danke

  24. Markus sagt:

    habs gefunden
    nano /var/log/lighttpd/error.log

    da steht nichts drin

  25. Markus sagt:

    es geht lag wohl daran weil ich den Teil 1 nicht zuende gemacht hatte und auf antwort gewachtet habe.

  26. Markus sagt:

    Nachdem ich das data Verzeichnis nun verschoben habe kommt die Nachricht im Browser

    An exception occurred while executing ‚SELECT „appid“ FROM „oc_appconfig“ WHERE „configkey“ = ‚enabled‘ AND „configvalue“=’yes“: SQLSTATE[HY000]: General error: 1 no such table: oc_appconfig

  27. Lars sagt:

    Hallo, Owncloud läuft seit gestern auf meinem Raspberry-pi B+. Alles funktioniert bis auf webdav /caldav /carddav. Über den Browser wird es korrekt dar gestellt aber über nen client geht’s nicht.

  28. webmaster sagt:

    Das ist schlecht, aber ein bisschen mehr Infos dürften es schon sein …

Kommentar hinterlassen