In einem älteren Raspberry Pi Tutorial habe ich euch bereits gezeigt wie Ihr OwnCloud 7 mit dem leichtgewichtigen Webserver und Datenbank-Gespann lighttpd und SQLite auf eurem Raspberry Pi installieren und einrichten könnt. Mittlerweile wurde OwnCloud auf Version 8 bzw. 8.1 aktualisiert und der Raspberry Pi 2 Modell B ist erschienen, daher möchte ich euch zeigen wie ihr OwnCloud 8 auf einem Raspberry Pi 2 einrichten könnt.
[UPDATE 12.07.2015]
Da viele User Probleme mit lighttpd haben gibt es nun ein neues OwnCloud Einrichtungs-Tutorial welches den offiziell unterstützten Apache Webserver verwendet. Linux Anfänger sollten das neue Tutorial definitiv bevorzugen.
Neuerungen in OwnCloud 8
In der neueren OwnCloud 8 bzw. 8.1 Version hat sich einiges getan:
- Neuer Desktop Client erschienen
- Apps sind wieder möglich
- Verbesserte Geschwindigkeit
- Viele kleine Verbesserungen in der Oberfläche
- Einige Bugfixes
Voraussetzungen
Folgende Dinge Benötigen wir um OwnCloud auf dem Raspberry Pi 1 oder 2 zu installieren
- Raspberry Pi mit Raspbian, aktualisiert und eingerichtet (Tutorials Teil1, Teil2 und Teil3)
- Den Webserver lighttpd mit der Datenbank SQLite eingerichtet (Kapitel RasPi vorbereiten aus dem OwnCloud 7 Tutorial)
- Optional: Eine externe USB-Festplatte zum Speichern der Daten (Daten auf der SD-Karte wird nicht empfohlen)
- Optional: Eine Portweiterleitung einrichten mit DynDNS einrichten um OwnCloud aus dem Internet verfügbar zu machen
- Optional: Falls OwnCloud über das Internet erreichbar ist solltet ihr euren Raspberry Pi absichern
OwnCloud 8 am Raspberry Pi 2 einrichten
Sobald ihr die Voraussetzungen erfüllt könnt ihr mit der Installation von OwnCloud starten, wir laden erst das aktuelle Paket ins Home von Pi:
1 2 3 |
cd ~ wget https://download.owncloud.org/community/owncloud-8.0.2.tar.bz2 tar -jxvf owncloud-8.0.2.tar.bz2 |
Danach können wir die entpackten OwnCloud Files in unser Webserver Root kopieren
1 2 3 |
cd ~ sudo rm -f /var/www/index.lighttpd.html sudo cp -r owncloud /var/www |
Wir müssen noch zwei wichtige Sicherheitseinstellungen am lighttpd vornehmen, wir deaktivieren den direkten Zugriff auf das Datenverzeichnis und das Directory Listing. Das erledigen wir in der Konfigurationsdatei mit dem Editor Nano.
1 2 |
sudo service lighttpd stop sudo nano /etc/lighttpd/lighttpd.conf |
Folgende Zeilen fügt ihr ans Ende der Konfigurationsdatei an
1 2 3 4 5 6 7 8 |
$HTTP["url"] =~ "^/owncloud/data/" { url.access-deny = ("") } $HTTP["url"] =~ "^/owncloud($|/)" { dir-listing.activate = "disable" } |
Dann ändern wir das Document Root für HTTP von „/var/www“ in „/var/www/owncloud“, den Eintrag findet ihr am Anfang der Konfiguration.
1 |
server.document-root = "/var/www/owncloud" |
Gespeichert wir mit STRG+X, Y und ENTER. Wir setzen nun noch die Verzeichnisrechte für OwnCloud, das wird von OwnCloud auch so empfohlen (Strong Directory Permissions).
1 2 3 4 5 6 7 8 9 10 11 12 13 |
sudo find /var/www/owncloud/ -type f -print0 | sudo xargs -0 chmod 0640 sudo find /var/www/owncloud/ -type d -print0 | sudo xargs -0 chmod 0750 sudo chown -R root:www-data /var/www/owncloud/ sudo chown -R www-data:www-data /var/www/owncloud/apps/ sudo chown -R www-data:www-data /var/www/owncloud/config/ sudo chown -R www-data:www-data /var/www/owncloud/data/ sudo chown root:www-data /var/www/owncloud/.htaccess sudo chmod 0644 /var/www/owncloud/.htaccess sudo mkdir -p /var/www/owncloud/data sudo chown www-data:www-data /var/www/owncloud/data/ |
Danach können wir die OwnCloud Webseite im Browser aufrufen und einen neuen Benutzer anlegen, eventuell muss der Webserver Dienst wieder gestartet werden (sudo service lighttpd start). Am Besten tun wir das direkt via HTTPs um unsere SSL Verschlüsselung zu testen. Wir werden einen Fehler erhalten da es sich beim dem eingerichteten Zertifikat um ein selbst erstelltes und kein offizielles handelt, ignoriert daher die SSL Fehlermeldungen im Browser.
- https://<IP-Adresse>/ oder
- https://raspberrypi/
Wichtig ist noch, um bestimmte Zeichen in Dateinamen zu unterstützen, das Default Charset auf UTF-8 umzustellen. Hierzu editieren wir die Datei php.ini mit dem Editor Nano
1 |
sudo nano /etc/php5/cgi/php.ini |
Ändert die Zeile ;default_charset = „UTF-8“ in unten stehende um (ohne ;). Suchen könnt ihr in nano übrigens mit STRG+W.
1 2 |
default_charset = "UTF-8" |
Gespeichert wird wie immer mit STRG+X, Y und ENTER. Die Einstellung wird erst nach dem nächsten Reboot aktiv.
OwnCloud Datenverzeichnis ändern
Die Daten welche in der Cloud gespeichert werden landen nun noch unter /var/www/owncloud/data/, das ist unschön, wichtige Daten sollten nicht auf einer SD-Karte liegen, bei der Verwendung von lighttpd müssen diese aus Sicherheitsgründen sogar zwingend verschoben werden. Daher zeige ich euch noch wie ihr die Daten auf eine via USB am Raspberry Pi angeschlossenen Festplatte verschieben könnt.
Meine externe Festplatte habe ich vorher an meinem Windows Rechner mit dem Dateisystem NTFS formatiert, das gewährleistet das ich die Platte später ohne Probleme an meinem Desktop Rechner anstecken kann falls der RasPi mal den Geist aufgibt. Wer das nicht kann, hierfür gibt es bei Microsoft eine schöne Anleitung zum Einbinden und Formatieren von USB Datenträgern unter Windows Vista / 7 – https://support.microsoft.com/de-de/help/2442658
Wir benötigen auf unserem RasPi als erstes noch die passende Software für einen Datenträger mit NTFS.
1 |
sudo apt-get install ntfsprogs |
Wir legen nun einen neuen Ordner im Verzeichnis /media an. In diesen wird später das USB-Gerät gemountet, ich nenne den Ordner “usb-hdd” . Es dürfen keine Sonder und/oder Leerzeichen enthalten sein.
1 |
sudo mkdir /media/usb-hdd |
Bevor wir den Stick oder die Platte anschließen, schalten wir die Ausgabe des Systemlogs mit dem folgendem Kommando ein (“-f” bewirkt dass alle weiteren Meldungen ausgegeben werden, ohne tail zu beenden):
1 |
tail –f /var/log/messages |
Wenn wir nun ein USB-Medium anschließen werden passende Log Einträge dazu angezeigt z.B.:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
Apr 6 10:46:13 raspberrypi2 kernel: [ 1336.041221] usb 1-1.2: new high-speed USB device number 8 using dwc_otg Apr 6 10:46:13 raspberrypi2 kernel: [ 1336.148822] usb 1-1.2: New USB device found, idVendor=058f, idProduct=6387 Apr 6 10:46:13 raspberrypi2 kernel: [ 1336.148847] usb 1-1.2: New USB device strings: Mfr=1, Product=2, SerialNumber=3 Apr 6 10:46:13 raspberrypi2 kernel: [ 1336.148864] usb 1-1.2: Product: Mass Storage Apr 6 10:46:13 raspberrypi2 kernel: [ 1336.148881] usb 1-1.2: Manufacturer: Generic Apr 6 10:46:13 raspberrypi2 kernel: [ 1336.148897] usb 1-1.2: SerialNumber: 8989A979 Apr 6 10:46:13 raspberrypi2 kernel: [ 1336.150717] usb-storage 1-1.2:1.0: USB Mass Storage device detected Apr 6 10:46:13 raspberrypi2 kernel: [ 1336.152381] scsi host4: usb-storage 1-1.2:1.0 Apr 6 10:46:14 raspberrypi2 kernel: [ 1337.153248] scsi 4:0:0:0: Direct-Access Generic Flash Disk 8.07 PQ: 0 ANSI: 2 Apr 6 10:46:14 raspberrypi2 kernel: [ 1337.156253] sd 4:0:0:0: [sda] 16236544 512-byte logical blocks: (8.31 GB/7.74 GiB) Apr 6 10:46:14 raspberrypi2 kernel: [ 1337.156753] sd 4:0:0:0: [sda] Write Protect is off Apr 6 10:46:14 raspberrypi2 kernel: [ 1337.160676] sd 4:0:0:0: Attached scsi generic sg0 type 0 Apr 6 10:46:14 raspberrypi2 kernel: [ 1337.248186] sda: sda1 Apr 6 10:46:14 raspberrypi2 kernel: [ 1337.250913] sd 4:0:0:0: [sda] Attached SCSI removable disk |
Die vorletzte Zeile “sda: sda1″ zeigt welchem Gerät das USB-Medium zugeordnet wurde. Diese Angabe benötigen wir später für das Einhängen des neuen Gerätes. Mit [Strg]-[C] kann tail beendet werden.
Da wir die Festplatte bei jedem Start automatisch einbinden wollen lassen wir uns nun die UUID des Geräts anzeigen. Ihr müsst sda1, falls die Platte bei euch anders zugeordnet wurde, mit dem Pfad ersetzen.
1 |
sudo blkid /dev/sda1 |
Notiert euch die angezeigte UUID, bei mir ist es: UUID=“8AD08510D08503A3„.
Zum automatischen Einbinden genau dieser Festplatte beim Start des RasPi editieren wir nun die fstab Datei mit Nano
1 |
sudo nano /etc/fstab |
Fügt am Ende der Datei folgendes ein, ersetzt die UUID mit eurer ID.
1 2 |
UUID=8AD08510D08503A3 /media/usb-hdd/ ntfs-3g permissions,defaults,auto |
Speichert wieder mit STRG+X, Y und Enter. Führt am besten nun einen Neustart durch (sudo reboot) und prüft danach ob die Festplatte unter /media/usb-hdd/ auch wirklich zugreifbar ist. Zum Beispiel mit „ls -al /media/usb-hdd/“
Danach editieren wir die OwnCloud Config auf den neuen Speicherort für Daten
1 |
sudo nano /var/www/owncloud/config/config.php |
Dort ändern wir den Pfad zum Data Directory ‚datadirectory‘ => ‚/var/www/owncloud/data‘ in einen Pfad der auf unseren USB Drive zeigt.
1 |
'datadirectory' => '/media/usb-hdd/owncloud/data', |
Nun erstellen wir noch das neue Datenverzeichnis auf unserem Speicher, passen die Rechte an und verschieben dann das vorhandene Datenverzeichnis von der SD-Karte auf das USB-Laufwerk:
1 2 3 |
sudo mkdir -p /media/usb-hdd/owncloud sudo chown www-data:www-data /media/usb-hdd/owncloud sudo mv /var/www/owncloud/data /media/usb-hdd/owncloud |
Wichtig ist das wir aus Sicherheitsgründen noch den Eigentümer der Dateien und die Rechte das Verzeichnis festlegen.
1 2 3 4 5 |
sudo chown -R www-data:www-data /media/usb-hdd/owncloud sudo find /media/usb-hdd/owncloud -type d -exec chmod 750 {} ; sudo find /media/usb-hdd/owncloud -type f -exec chmod 640 {} ; sudo chown root:www-data /media/usb-hdd/owncloud/data/.htaccess sudo chmod 0644 /media/usb-hdd/owncloud/data/.htaccess |
Danach müssen wir Webserver neu starten um die Änderungen zu aktivieren
1 |
sudo service lighttpd restart |
Das war schon die Grundeinrichtung. Wer weitere Infos benötigt findet viele hilfreiche Informationen in der OwnCloud Dokumentation oder im OwnCloud Forum.
Smartphone und Desktop Client Apps
Es gibt verschiedene Möglichkeiten um auf die eigene Cloud zuzugreifen, das Smartphone via iOS oder Android App, den Desktop Rechner via Desktop Client oder das Bekannte Webinterface von einem beliebigen Browser.
- Download des Desktop Client für Windows
- Smartphone App für iOS im AppStore
- Smartphone App für Android im Play Store
Kalender und Adressbuch synchronisieren
Ihr könnt eure Geräte über das integrierte CalDAV oder CardDAV mit OwnCloud zu synchronisieren. Anleitungen hierzu gibts im Dokumentationsbereich.