owncloud auf Raspberry Pi mit nginx und MySQL installieren

In diesem Tutorial zeige ich, wie ich auf meinem Raspberry Pi B (512) die aktuelle Version der owncloud installiert habe.
Inspiration dazu gab mir das sehr gute Tutorial von Jan Karres . Im Unterschied zu ihm, fasse ich hier einige Schritte zusammen. Außerdem verwende ich für meine owncloud MySQL als Datenbank, da sie bei mir besser performt als SQLite.

Grundvoraussetzung ist ein Raspberry Pi mit vorinstalliertem Raspbian. Wie ihr dieses auf eurem Raspberry Pi installiert, erklärt das Tutorial von sweetpi.de

Meine owncloud soll dann später unter „domain.de/owncloud/“ erreichbar sein.

Pakete installieren:

Zuerst müssen alle erforderlichen Pakete installiert werden.

sudo apt-get install nginx php5 php5-fpm php-pear php5-common php5-mcrypt php5-mysql php5-cli php5-gd php-apc mysql-server

Damit der Raspberry Pi nicht überlastet wird, werden die Werte für die maximalen Prozesse angepasst und anschließen nginx und php5 gestartet.

sudo sed -e "s/worker_processes 4;/worker_processes 1;/g" /etc/nginx/nginx.conf > sudo /etc/nginx/nginx.conf
sudo sed -e "s/worker_connections 768;/worker_connections 128;/g" /etc/nginx/nginx.conf > sudo /etc/nginx/nginx.conf
sudo /etc/init.d/nginx start
sudo /etc/init.d/php5-fpm restart

Swap erhöhen

Jetzt erhöhen wir den Swap Speicher. Ich habe meine auf das doppelte des Arbeitsspeichers erhöht, also auf 1024 Mb

sudo su
dphys-swapfile swapon
sudo echo "CONF_SWAPSIZE=1024" > /etc/dphys-swapfile
dphys-swapfile setup
dphys-swapfile swapon
exit

php.ini editieren

Damit wir mit unserer owncloud auch größere Dateien uploaden können, passen wir die php.ini an und legen den Pfad für die temporären Dateien fest.

sudo nano /etc/php5/fpm/php.ini

Jetzt suchen wir die Einträge

upload_max_filesize = 2M
post_max_size = 8M

und ersetzen sie mit diesen

upload_max_filesize = 1024M
post_max_size = 1024M

Am Ende der Datei fügen wir folgenden Code ein.

upload_tmp_dir = /srv/http/owncloud/data
apc.enabled = 1
apc.include_once_override = 0
apc.shm_size = 256M

Bei dem Editor nano wird mit Strg+X gespeicher, anschließend mit Y bzw. J bestätigt und dann die Datei überschrieben.

temporären Ordner anlegen

Den in der php.ini angelegte Ordner für die temporären Dateien legen wir jetzt im Dateisystem an.

sudo mkdir -p /srv/http/owncloud/data
sudo chown www-data:www-data /srv/http/owncloud/data

SSL Zertifikate erstellen

Im nächsten Schritt erstellen wir die SSL Zertifikate, damit die owncloud unter HTTPS erreichbar ist.

Da die Zertifikate nicht signiert sind, wir der Browser eine Warnung diesbezüglich heraus geben. Diese „ignorieren“ wir bzw. genehmigen die Zertifikat.

sudo openssl req $@ -new -x509 -days 365 -nodes -out /etc/nginx/cert.pem -keyout /etc/nginx/cert.key 
sudo openssl req -newkey rsa:4096 -sha512 -x509 -days 3650 -nodes -out /etc/nginx/cert.pem -keyout /etc/nginx/cert.key 
sudo chmod 600 /etc/nginx/cert.pem 
sudo chmod 600 /etc/nginx/cert.key

sites-available/default anpassen

An dieser Stelle poste ich meine komplette sites-available/default Datei. Wenn ihr bisher noch keine Änderungen an euer Datei vorgenommen habt, dann könnt ihr diese übernehmen  und eure damit ersetzen. Vorher bitte nur „domain.de“ auf eure Domain bzw. IP Adresse ändern!

Zum anpassen der Datei

sudo nano /etc/nginx/sites-available/default

Inhalt meiner Datei:

# You may add here your
# server {
#	...
# }
# statements for each of your virtual hosts to this file

##
# You should look at the following URL's in order to grasp a solid understanding
# of Nginx configuration files in order to fully unleash the power of Nginx.
# http://wiki.nginx.org/Pitfalls
# http://wiki.nginx.org/QuickStart
# http://wiki.nginx.org/Configuration
#
# Generally, you will want to move this file somewhere, and start with a clean
# file but keep this around for reference. Or just disable in sites-enabled.
#
# Please see /usr/share/doc/nginx-doc/examples/ for more detailed examples.
##
server {
   listen 80;
    server_name domain.de;
    rewrite ^ https://$server_name$request_uri? permanent; # enforce https
}
server {
    listen 443 ssl;
    server_name domain.de;
    ssl_certificate /etc/nginx/cert.pem;
    ssl_certificate_key /etc/nginx/cert.key;

    root /var/www;
    index index.php;

    client_max_body_size 10G; # set max upload size
    fastcgi_buffers 64 4K;
    rewrite ^/caldav(.*)$ /remote.php/caldav$1 redirect;
    rewrite ^/carddav(.*)$ /remote.php/carddav$1 redirect;
    rewrite ^/webdav(.*)$ /remote.php/webdav$1 redirect;
    error_page 403 = /core/templates/403.php;
    error_page 404 = /core/templates/404.php;
    location = /robots.txt {
        allow all;
        log_not_found off;
        access_log off;
    }
    location ~ ^/owncloud/(data|config|\.ht|db_structure\.xml|README) {
        deny all;
    }
    location / {
        rewrite ^/.well-known/host-meta /public.php?service=host-meta last;
        rewrite ^/.well-known/host-meta.json /public.php?service=host-meta-json last;

        rewrite ^/.well-known/carddav /remote.php/carddav/ redirect;
        rewrite ^/.well-known/caldav /remote.php/caldav/ redirect;

        rewrite ^(/core/doc/[^\/]+/)$ $1/index.html;

        try_files $uri $uri/ index.php;
    }
    location ~ ^(.+?\.php)(/.*)?$ {
        try_files $1 = 404;

        include fastcgi_params;
        fastcgi_param SCRIPT_FILENAME $document_root$1;
        fastcgi_param PATH_INFO $2;
        fastcgi_param HTTPS on;
        fastcgi_pass unix:/var/run/php5-fpm.sock;
    }

    location ~* ^.+\.(jpg|jpeg|gif|bmp|ico|png|css|js|swf)$ {
        expires 30d;
        # Optional: Don't log access to assets
        access_log off;
    }

    location ~ \.php$ {
        try_files $uri =404;
        fastcgi_split_path_info ^(.+\.php)(/.+)$;
        fastcgi_pass unix:/var/run/php5-fpm.sock;
        fastcgi_index index.php;
        include fastcgi_params;
    }

    location ~ /\.ht {
        deny all;
    }
}

Anschließend den Server neu starten

sudo /etc/init.d/nginx start
sudo /etc/init.d/php5-fpm restart

MySQL Datenbank anlegen

Jetzt legen wir eine Datenbank mit dem Namen „owncloud“ und dem Datenbankuser „owncloud“ an. Bei PASSWORT bitte eurer Datenbank Passwort eintragen.

mysql -u root -p 
create database owncloud; 
create user 'owncloud'@'localhost' identified by 'PASSWORT';
grant all privileges on owncloud.* to 'owncloud'@'localhost';
quit

owncloud installieren

Bisher war alles nur Vorgeplänkel. Jetzt kommt die eigentlich Installation der owncloud. Diese wird unter /var/www/owncloud angelegt.

sudo mkdir /var/www
cd /var/www
sudo wget http://download.owncloud.org/community/owncloud-5.0.13.tar.bz2
sudo tar xvf owncloud-5.0.13.tar.bz2
sudo rm owncloud-5.0.13.tar.bz2
sudo chown -R www-data:www-data /var/www

cronjob anlegen

Um die Performance der owncloud zu erhöhen legen wir jetzt einen cronjob an, der alle paar Minuten (in diesem Fall alle 5 Minuten) im Hintergrund ein paar Arbeiten erledigt.

sudo crontab -u www-data -e

Am Ende der Datei fügen wir folgenden Code ein.

*/5 * * * * php -f /var/www/owncloud/cron.php

Im letzten Schritt ändern wir im Backend der owncloud noch eine Einstellung loggen wir uns im Browser in die Weboberfläche der owncloud ( domain.de/owncloud ) ein und ändern dort eine Einstellung. Unter „Dein Benutzername > Administrator > Cron“ ändern wir die Einstellung von AJAX auf Cron.

Unter domain.de/owncloud/ sollte man jetzt den Installer aufrufen und die Cloud installieren können.

Eventuell muss jetzt noch mit der raspi-config das Sprachpaket en_US.UTF-8 nachinstalliert werden.

97 Gedanken zu „owncloud auf Raspberry Pi mit nginx und MySQL installieren

  1. Leider gibt es eine Fehlermeldung bei benutzen der o.g. default datei. Folgende Fehlermeldung erhalte ich: Starting nginx: [ermerg] „location“ directive is not allowed here in /etc/nginx/sites-enabled/default:31
    nginx: configuration file /etc/nginx/nginx.conf test failed

    Ich habe die o.g. Zeilen in diese Datei kopiert. Die vorhandene Sachen hatte ich vorher komplett gelöscht. Woran könnte es liegen?

  2. Danke jetzt funktioniert es wunderbar. Tolle Anleitung. Sowas (nginx+mysql) habe ich lange gesucht. Ist auf jedenfall schneller als owncloud mit apache+sqlite….. Vielen Dank für die Hilfe!

  3. Tolle Anleitung. Hat alles funktioniert.
    Nur kann ich mich nicht bei owncloud anmelden. Immer falsches Kennwort obwohl ich das
    richtig eingegeben habe. Natürlich mit dem Benutzer „owncloud“ Jetzt weiß ich nicht wie ich das reparieren kann, geschweige eine „index.html“ in nginx veröffentlichen kann.

  4. Hi,

    beim swap erhöhen ist dir die Zeile
    „dphys-swapfile swapon“ offensichtlich zuweit nach oben gerutscht, diese kann erst vorm exit ausgeführt werden 🙂

    ansonsten danke fürs Tutorial

  5. Hallo,

    habe leider Fehlermeldungen beim Caldav Sync und Carddav Sync. Sowohl das Android Programm „Davdroid“ als auch mein heißgeliebtes Evolution unter Ubuntu 12.04 geben die Fehlermeldung 405 „Not allowed“ aus. Gibt es da eine Lösung. Ansonsten gutes Howto- weiter so.

    Gruß Bernd

      1. Hallo,

        das Problem ist jetzt entschärft- habe in der Datei sites-available/default domain.de durch meine Domain ersetzt-das hatte ich übersehen. Ansonsten habe ich das Tutorial Schritt für Schritt befolgt. Evolution und das das Android Programm „Caldav Sync Adapter“ funktionieren jetzt . Nur das Programm „DavDroid“ für das ich gerade bezahlt habe und das auch die Synchronisierung der Kontakte per Carddav ermöglicht hätte ,meldet noch den 405 Fehler. Benutze die aktuelle 5er Version von Owncloud. Ist denn die 6er Version für den Produktiv-Einsatz schon verwendbar? Da stand doch etwas von Beta.

        Gruß Bernd

      2. Gut. An deiner Stelle würde ich DavDroid mal deinstallieren und dann erneut installieren. Kann ja nicht sein, dass alle anderen Programme jetzt funktionieren nur das von owncloud vorgeschlagene Programm zicken macht.

        Ich habe daran gedacht auf Version 6 zu updaten, habe dann aber gelesen, dass sie langsamer als die 5er sein soll und werde deshalb bei der 5er bleiben.

  6. Hallo vielen Dank für die Anleitung,

    da ich heute zum ersten mal ein Raspberry Pi in der Hand halte und von der Materie so gut wie gar nichts verstehe bin ich jetzt an zwei schritten gescheitert.

    1. Statt der Domain müsste ich doch die ip Adresse des Raspberry Pi angeben oder?
    Wenn ich die ip/owncloud/ eingebe kommt nur „Welcome to nginx!“

    2. Den letzten Schritt verstehe ich nicht wie bzw. wo (im Terminal Mac) kann ich das Backend öffnen? (Im letzten Schritt ändern wir im Backend der owncloud noch eine Einstellung. Unter “Dein Benutzername > Administrator > Cron” ändern wir die Einstellung von AJAX auf Cron.)

    Grüße TH

    1. Hi TH,

      1. Ich nehme mal an, dass du einen DSL Anschluss mit dynamischer IP Adresse hast und dein Raspberry Pi am Router hängt und eine interne IP Adresse nach dem Schema 192.168.x.x hat. Wenn du nun in der „sites-available/default“ die interne IP Adresse eingibst, sollte es auch funktionieren. Allerdings wirst du deine owncloud dann nur im internen Netzwerk erreichen. Von außen ist sie nicht erreichbar. Dafür benötigst du einen Dienst, der deine, sich wechselnde IP Adresse mit einer Domain verbindet. Ein solcher, kosternloser Dienst ist z.B. http://freedns.no-ip.com . Intern sollte aber auch 192.168.x.x/owncloud funktionieren, wenn du die IP Adresse in der „sites-available/default“ eingetragen hast.

      2. Mit Backend ist die Weboberfläche der owncloud gemeint. Du loggst dich also unter domain.de/owncloud ein und stellst dann im Browser den Wert ein. Die werde ich im Tutorial noch mal etwas genauer beschreiben.

      1. Erst mal vielen Dank, für die viele Mühe, die Du Dir mit dem Tutorial gemacht hast!
        Ich habe auch das Problem, dass bei mir nur die Seite “welcome to nginx” erscheint, egal ob ich 192.168.2.101 oder 192.168.2.101/owncloud/ im Browser aufrufe.
        In der “sites-available/default” habe ich an 2 Stellen domain.de durch 192.168.2.101 ersetzt.
        Hast Du mir nen Tipp?
        lg, chees

      2. Jetzt funktioniert es. Die Lösung war, nach dem Durchlaufen der Tutorialanleitung den Rasberry am Schluss nochmal neu zu starten (sudo shutdown -r now).
        Danke und Gruß
        chees

  7. Moin Moin,

    ich habe vor 3 Tagen mit meinem OwnCloud Projekt begonnen. Zunächst habe ich OC6 auf meinem Pi Modell B 512MB mit Apache2 und SQLite installiert. Die Website war mir nicht so wichtig, da ich eher eine Lösung brauche, mit der ich performant meine Daten syncen kann. Mir ist aber die Kinnlade runtergefallen, als ich gesehen habe, das meine OC pro Datei mindestens 5-6 Sekunden++ braucht, bis die nächste an der Reihe ist. Das Problem war nicht der Upload an sich, der lag wie erwartet bei 3 – 4 MB/sec, nein, es war die Wartezeit dazwischen. Selbst bei Dateien, die unter 1kB groß sind. Ob es das Anlegen der Zeile in der Datenbank ist? Ich weiß nicht.
    Ging mir zumindest auf den Keks, daher habe ich mir ein Image gezogen, und nochmal mit dieser Variante durchgestartet. Vielen Dank für die Anleitung, hat sehr gut funktioniert.

    Jetzt zur Performance: Mein Gott, was für ein Unterschied. Aus 5-6 Sekunden++ pro Eintrag sind es nun 1-3 incl Upload der Datei (bei kleinen zumindest). Hin und wieder gibt es einen Ausrutscher nach oben, aber hey, das ist okay. Für eine so günstige Cloud Lösung ist das absolut verträglich. An eine Performance wie Dropbox kommt diese Cloud leider nicht, aber dafür benötige ich wohl eher eine Synology oder einen kleinen Server mit mehr Leistung.

    Jetzt habe ich aber zwei Fragen:
    1. Ich würde auch gerne direkt über https://meine_url:port/ auf die OC6 gelangen. In wie weit muss ich das jetzt oben anpassen und gibt es was spezielles zu beachten? Ich bin noch nicht ganz so hinter das Script für nginx gekommen und ich muss auch ehrlicherweise sagen, dass Webseiten nicht mein Fachgebiet sind. Kann ich das auch noch machen, wenn meine OC eingerichtet ist?

    2. Ich habe ein Problem mit der Speicheranzeige an zwei Punkten. Einmal Online, dort ist die angezeigte Ordnergröße meines Dokumenten-Ordners bei einer Größe von 2GB einfach stehen geblieben, obwohl im inneren eine Zusammenfassung von 7,9GB steht. Liegt das an irgendwelchen Einstellungen oder ist das ein bekannter Bug?
    Ein ähnliches Problem habe ich in meinem Windows-Client von OC. Dort bleibt er ebenfalls bei 2GB stehen, obwohl selbst direkt drüber in der Upload Zusammenfassung schon 2,3GB of … GB steht. Hängt das vlt direkt mit der Anzeige auf der Website zusammen, weil die Speicherbelegungs-Anzeige einfach den Wert aus der Website erhält?

    Es wäre cool, wenn ich das noch gelöst bekomme – dann wäre ich rundum zufrieden mit der Lösung 😉

    Viele Grüße
    h3nn1ng

    1. Hi Henning,

      1. So weit ich weiß ist dies nicht möglich. Die einzelnen services werden doch über die remote.php angesteuert. Aber mich interessiert mich, wieso du gerne diese Art von Zugriff hättest.

      2. Scheint ein Bug zu sein. Eine Lösung dazu scheint es hier zu geben.

      Du scheinst ja relativ viel Daten syncen zu wollen. Hast du dir schon mal bittorrent sync angeschaut. Läuft auch ganz gut auf dem Raspi.

      1. Vielen Dank für die gute und schnelle Antwort. Ich werde mich mal in einer freien Minute um die Änderungen der Attribute ändern. Das scheint ja einfach nur ein Integer Problem zu sein. Vielen Dank für’s Raussuchen – ich bin da irgendwie dran gescheitert, perfekt 😀

        Nun bin ich aber am grübeln, ob ich nicht gleich Bittorrent Sync testen sollte. Gehe ich auch richtig in der Annahme, dass es wie bei einem normalen Torrent mehrere Clients nutzt, um den Upload Stream zu bündeln?
        Mit dem Pi im Hintergrund würde es dann ja doch quasi wie eine Cloud arbeiten, da dieser ja immer verfügbar ist. Und die Einrichtung hört sich echt einfach an.
        Nur stellen sich mir hier zwei Fragen. Es muss dann doch irgendwo ein externer Server stehen, der diese ganzen Verbindungen herstellt. Also ein dritter hängt da doch irgendwie zwischen, oder?
        Und die nächste Frage bezieht sich auf NAT Loopback. Ich nutze meine Clients oft im Netzwerk des Pi’s. Durch NAT Loopback meiner FritzBox kann ich aber wie gewohnt meine DNS ansprechen, da die FB am NAT checkt, dass dies die eigene URL ist. Somit habe ich keine Probleme mit langsamen Übertragungsraten. Gibt es Infos dazu, ob bittorrent sync mit unterstützt wird? Wie läuft das da?

        Viele Grüße!

      2. 1. Ich würde bittorrent sync mal ausprobieren. Ob die dateien von mehreren clienten übertragen werden weiß ich nicht, müsstest du mal nachschauen. Der Vorteil liegt aber daran, dass man mehrere Ordner synchronisieren kann und jedem Ordner individuelle clienten zuordnen kann. Also, als ob man mehrere owncloud User angelegt hat und diese synchronisiert.

        2. mit dem NAT-Loopback habe ich mich bisher noch nicht auseinander gesetzt, werde es aber aus eigenem Interesse mal machen. Welche Fritzbox hast denn du?

      3. Also zu meinem 2GB Problem: Gefixt durch deine Anleitung, Top, jetzt funktionert alles so wie es soll und die OC ist schnell!!

        Ich habe eine FritzBox 7360, alle Fritzbox’en scheinen NAT Loopback zu können und es macht natürlich wirklich was aus, wenn man im eigenen Netz mit voller Leistung zur OC Syncen kann.

        Und nun zu Bittorrent Sync – danke das du mich darauf aufmerksam gemacht hast – Alter Falter ist das Schnell. Ich habe das mit meinen Kollegen etwas getestet und es funktioniert wirklich unfassbar gut. Einfach nach dem guten alten bittorrent Prinzip. Zum Vergleich, ich habe die Daten, die auf meine OC über 12 Stunden gesynct wurden, in einer Stunde auf mein Tablet gesynct. Die Clients erkennen auch, wenn ein Seeder im eigenen Netz sitzt und baut eine direkte Verbindung auf. Da sind 5MB/s auf ein Tablet via Wlan nix!
        Außerdem werden schon echt viele Plattformen unterstützt. Ich werde mir einen zweiten Pi anschaffen und den nativ nur mit BitTorrent Sync laufen lassen. Der kommt dann bei bekannten ins Netz und dient mir als ortsunabhängige, sofortige Datensicherung. In Verbindung mit dem Speicher meiner OC6 auf dem jetzigen Pi möchte ich das nicht bringen – mir ist nicht so Wohl dabei in die direkte Datenstruktur von OC einzugreifen.
        Momentan dient mein Rechner als Hauptstation. Dieser Sync via BT Sync auf mein Tab und gleichzeitig aus dem gleichen Ordner zur OC. So habe ich meine Daten immer dabei und mit OC ein Versioning und das „gelöschte Daten“ Backup 😉
        In Zukunft plane ich mir eine kleine PI Farm einzurichten, die ich bei Bekannten verteilen werde. Dann habe ich meine Daten weit, aber privat und super günstig verstreut und somit absolut gesichert. Und wenn ich unterwegs Änderungen mache oder Daten laden möchte profitiere ich vom gebündelten Update meiner eigenen Ordner in unterschiedlichen Netzen 😀 Es gibt auch schon Apps Für Synology und Möglichkeiten BT Sync auf anderen NAS Systemen wie eine WS myCloud zu betreiben. Hier muss jedoch noch eine Lösung gefunden werden, dass die Festplatten im Synchronen Zustand wieder in den Ruhezustand fahren. Ist diese Barriere gemeistert ist also auch das denkbar. Nur als kurzen Denkanstoß, eine WD MyBook Live mit 2TB kostet ~130€ und bietet sich dann als monster BT Sync Datengrab an.

        So nun genug geschwafelt, vielen Dank nochmal für die Tipps!

        Viele Grüße

      4. Wow, bei dir läuft das ganze in einer ganz anderen Dimension als bei mir. Ich benutze die OC in erster Linie nur für Kalender, Kontakte, Aufgaben und um meinen Bekannten ein paar Dateien zur Verfügung zu stellen.

        In den OC Dateien würde ich mit btsync auch nicht herumpfuschen, das gibt nur Ärger.

        Die Idee mit der PI Farm ist wirklich gut. Könnte ich für mich auch überlegen. Zur Zeit sichere ich meine Daten nur auf wuala in die Cloud. BTSync hat allerdings den Nachteil, dass du keine Versionierung hast.

        Jetzt mal eine Frage. Wofür brauchst du eine 2TB Platte, wenn du BTSync verwendest? Richtige Backups (verschiedene Zeitpunkte) kannst du damit ja nicht machen.

  8. Hallo,

    erstmal vielen Dank für Dein tolles Tutorial. Ich habe wirklich null Ahnung von Linux und habe Owncloud in meinem lokalen Netz auch mit https zum laufen gebracht – so weit alles prima 🙂 Leider ist der Zugriff von extern nicht möglich und hier wäre ich für Deine Hilfe sehr dankbar.

    Zunächst einige grundsätzliche Infos: ein dyndns-Dienst ist geschaltet und aktualisiert sich auch täglich. Port 443 habe ich in meinem Router freigegeben und wird bei einem Portscan von außen auch als offen angezeigt, aber nur dann, wenn der Raspberry online ist.

    Wenn ich jetzt versuche, meinedomain.selfhost.eu/owncloud von extern aufzurufen vergeht erstmal viel Zeit, dann kommt die Fehlermeldung: „Der Server unter meinedomain.selfhost.eu braucht zu lange, um eine Antwort zu senden“.

    Ich habe auch schon versucht, „https://“ vor die url zu stellen, aber dann gibt es die Meldung: „ssl_error_rx_record_too_long“.

    Bin jetzt echt etwas ratlos….

    Ach ja, zum Schluss noch eine Info, die vielleicht relevant ist: Der raspi mit owncloud hängt nicht direkt an der Fritzbox, die mich mit dem Internet verbindet, sondern hinter einer weiteren, die als Switch konfiguriert ist. Da der Raspi beim Portscan aber zu antworten scheint, gehe ich davon aus, dass er von ausen im prinzipschon erreichbar ist und das Problem eher wonders liegt. Bin für Tipps dankbar…

    Viele Grüße, D.

      1. Danke für den Tipp, habe den raspi direkt an den Router gehängt, aber das Resultat war das gleiche.

        Der Portscan zeigte aber wieder, dass 443 offen ist, für die Zeit, wo der raspi an war. Kann es vielleicht sein, dass raspi zwar lauscht, aber irgendwie nicht antworten kann?

        Gruß, Daniel

      2. Uhh, da kann ich dir leider auch nicht helfen. Ich denke eher, dass es an der Fritzbox liegt.

        Versuche mal
        http://service.avm.de/support/de/SKB/FRITZ-Box-6360/1120:MyFRITZ-nicht-aufrufbar
        und entferne den Haken in der Box unter „Internet > Freigabe > FRITZ!Box-Dienste :: Internetzugriff auf die FRITZ!Box über HTTPS aktiviert“

        Wenn das nicht hilft, würde ich mal an das Raspberry Forum wenden http://www.forum-raspberrypi.de und an das Forum von ubuntuusers http://forum.ubuntuusers.de/forum/internetzugang/

      3. der haken ist raus. das hat aber auch nicht geholfen.

        Bevor ich in dem anderen Forum um Hilfe bitte doch noch eine Frage an Dich. Ich habe nämlich eine Einstellung in der Fritzbox geändert und plötzlich gab es beim externen Zugriff eine Fehlermeldung von nginx – was ja bedeutet, dass der raspberry antwortet, oder? Schließlich läuft nur auf ihm nginx in meinem netzwerk.

        In der Fritzbox hatte ich zuvor die Port-Informationen umgedreht, so dass dort stand:

        von Port: 80
        an Port: 443

        und nicht umgekehrt. nginx meldete daraufhin:bad request, hhttps request on http-port

        lässt sich daraus vielleicht irgendetwas ableiten?

        Gruß, Daniel

  9. Juhu! Es scheint zu gehen!

    Habe jetzt in der Fritzbox beim Port-Forwarding sowohl bei „von Port“ wie auch bei „an port“ 443 angegeben und sehe jetzt bei Zugriff von außen die Startseite von Owncloud.

    Bin gerade etwas verwirrt, denn ich war überzeugt, dass bei „an port“ die 80 stehen muss. Vielleicht habe ich das aber falsch verstanden. Aber so macht natürlich auch die meldung von nginx Sinn (s. letztes Posting).

    Danke für die Hilfe-

    Gruß, Daniel

  10. Ich verstehe ein Sache in der sites-available/default Datei nicht.
    Und zwar diese Zeile:
    root /var/www;
    index index.php;

    Die Owncloud wird aber in root /var/www/Owncloud installiert.

    1. Naja, das ist halt das Stammverzeichnis für den webserver. /var/www = domain.de/
      Wir haben die owncloud in das Verzeichnis „owncloud“ gepackt. Deshalb rufen wir es unter domain.de/owncloud/ auf.

      Würde in der Datei root /var/www/owncloud/ stehen, dann wäre die owncloud unter domain.de/ zu erreichen.

      Hat die Antwort geholfen?

  11. hallo.. dank der tollen anleitung konnte ich owncloud installieren..
    sie ist auch von aussen erreichbar..
    habe den raspi neu gestartet
    und bekomm in der owncloud/administrator diese warnungen

    kann mir jemand dabei helfen..?

    Fatal core SQLSTATE[HY000] [2002] Can’t connect to local MySQL server through socket ‚/var/run/mysqld/mysqld.sock‘ (2) 2014-01-19T15:00:03+00:00
    Warning PHP opendir(/var/www/owncloud/data/andy/cache/): failed to open dir: No such file or directory at /var/www/owncloud/lib/files/storage/local.php#40 2014-01-19T16:58:17+00:00
    Warning PHP opendir(/var/www/owncloud/data/gilla/cache/): failed to open dir: No such file or directory at /var/www/owncloud/lib/files/storage/local.php#40 2014-01-19T17:01:02+00:00
    Warning PHP Cannot modify header information – headers already sent by (output started at /var/www/owncloud/apps/admin_migrate/settings.php:45) at /var/www/owncloud/lib/template.php#189 2014-01-19T17:03:14+00:00
    Warning PHP Cannot modify header information – headers already sent by (output started at /var/www/owncloud/apps/admin_migrate/settings.php:45) at /var/www/owncloud/lib/template.php#208 2014-01-19T17:03:14+00:00
    Warning PHP Cannot modify header information – headers already sent by (output started at /var/www/owncloud/apps/admin_migrate/settings.php:45) at /var/www/owncloud/lib/template.php#195 2014-01-19T17:03:14+00:00
    Warning PHP Cannot modify header information – headers already sent by (output started at /var/www/owncloud/apps/admin_migrate/settings.php:45) at /var/www/owncloud/lib/template.php#190 2014-01-19T17:03:14+00:00
    Warning PHP Cannot modify header information – headers already sent by (output started at /var/www/owncloud/apps/admin_migrate/settings.php:45) at /var/www/owncloud/lib/template.php#189 2014-01-19T17:03:14+00:00
    Warning PHP opendir(/var/www/owncloud/data/gilla/cache/): failed to open dir: No such file or directory at /var/www/owncloud/lib/files/storage/local.php#40 2014-01-19T17:01:02+00:00
    Warning PHP opendir(/var/www/owncloud/data/andy/cache/): failed to open dir: No such file or directory at /var/www/owncloud/lib/files/storage/local.php#40 2014-01-19T16:58:17+00:00
    Fatal core SQLSTATE[HY000] [2002] Can’t connect to local MySQL server through socket ‚/var/run/mysqld/mysqld.sock‘ (2)

    1. Hallo,

      die owncloud an sich kann man schon auf einen externen Datenträger auslagern, du mußt dazu nur die Verzeichnisse anpassen. Wie das genau funktioniert kann ich dir nicht sagen, da ich mich mit dem Thema externe Datenträger am Raspi noch nicht beschäftigt haben.

      mit deinen anderen Problemen kann ich dir leider auch nicht weiterhelfen. Schau mal hier http://forum.owncloud.org/viewtopic.php?f=8&t=2740
      Ansonsten wende dich mit deinen Fragen an das owncloud Forum. http://forum.owncloud.org

  12. noch ne frage..
    hab jetzt owncloud 6.0 installiert
    hab alles so gemacht wie hier..
    was muss ich jetzt eintragen..speziell bei datenbank-host?
    kann mich nicht anmelden..
    vielleicht kann mir ja jemand helfen..

    Datenbank-Benutzer / owncloud

    Datenbank-Passwort /pass

    Datenbank-Name /owncloud

    Datenbank-Host / ????

  13. jetzt ist er durch die anmeldung und bekomme den fehler..
    weisst was da falsch ist? und was ich machen kann?

    An exception occurred while executing ‚SELECT `id` FROM `oc_jobs` WHERE `class` = ? AND `argument` = ?‘: SQLSTATE[42S02]: Base table or view not found: 1146 Table ‚owncloud.oc_jobs‘ doesn’t exist

  14. ist aber trotzdem komisch… mit der owncloud 5.0.13 geht es.. nur mit der owncloud 6.0.0a nicht.. da kommt der fehler sihe 3 posts weiter oben..
    hat jemand nach der anleitung die owncloud 6.0.0a installiert?
    was läuft da verkehrt?

  15. Hallo,

    zwei Fragen hätte ich doch nochtmal:

    1. Was passiert, wenn das SSl-zertifikat in einem jahr abgelaufen ist. Dann habe ich ja keinen Zugriff mehr von außen. Wie update ich das Zertifikat auf dem Server?

    2. owncloud bietet unter dem Administrator Profil eine Update-Funktion auf die aktuelle Version. Funktioniert das zuverlässig, oder komt man an einem händischen Update über das Terminal nicht vorbei?

    Viele Grüße, Daniel

    1. 1. Wenn das Zertifikat abgelaufen ist, dann bekommst eine Meldung im Browser. Erneuern kannst du es auf die gleiche Art. Du kannst aber auch eine andere Zahl eingeben, so dass es z.B: 5 Jahre gültig ist.
      2. Bei mir funktioniert die automatische Updatefunktion nicht, sie hängt sich auf. Bei anderen läuft das Update problemlos.

      1. Danke für die Antwort. Aber ich brauche das wirklich ganz „basic“… 😉

        Zum Thema SSL. Das heisst, ich bekomme irgendwann eine Nachricht im Browser á la „Ihr Zertifikat ist abgelaufen“. Dann öffne ich das terminal auf dem Server und gebe nochmal

        „sudo openssl req $@ -new -x509 -days 365 -nodes -out /etc/nginx/cert.pem -keyout /etc/nginx/cert.key“

        ein, und mache anschließend alle alle meine Angaben ? That’s it?

        Alternativ könnteich das auch gleich machen, und -days 356 auf eine beliebig höhere Zahl setzen, dann ereilt mich das Problem erst entsprechend später – korrekt?

        Gruß, Daniel

      2. Ja, evtl. musst du vorher die Zertifikatdateien noch löschen „sudo rm /etc/nginx/cert.pem“. Natürlich kannst du 3650 als Zahl eingeben und du hast 10 Jahre Ruhe!

        Viel Spaß

  16. hallo..
    riesen problem.. habe alles neu aufgesetzt hat auch alles funktioniert rufe das setup von owncloud auf und dann steht das das :

    Dein Web-Server ist noch nicht für Datei-Synchronisation bereit, weil die WebDAV-Schnittstelle vermutlich defekt ist.

    wie kann ich jetzt mein nginx updaten ?
    wenn ich sudo apt-get install nginx eingebe kommt das die version aktuell ist.. 1.2.1
    hab mir aber die 1.4.4 runtergeladen als nginx-1.4.4.tar.gz runter geladen
    nur mit welchem befehl update ich den nun nginx?
    bitte um hilfe..
    danke

  17. Erst mal vielen Dank für die Anleitung…
    habe soweit alles geschafft, dank der ausführlichen Beschreibung.
    Allerdings brauchte ich länger für die Einstellung im Fritzrouter :
    Lösung siehe http://www.kussaw.de/2013/owncloud-zugriff-per-https-uber-das-internet-teil-ii/
    Jetzt hänge ich bei der owncloud Seite :
    Bei „Administrator-Konto anlegen“ akzeptiert dieser mein Username und Password nicht….
    Rückmeldung : „MySQL Benutzername und/oder Passwort ungültig
    Du musst entweder ein existierendes Benutzerkonto oder das Administratoren-Konto angeben.“

    Hat jemand eine Idee, woran es liegt ?

    Danke

    1. Klingt für mich, als ob du dort die Daten der MySQL Datenbank eingeben musst, also mysql user und das passende Passwort. Der Adminuser wird doch später angelegt, meine ich zumindest.
      Schick doch mal einen Screenshot, dann weiß ich genauer, an welcher Stelle du hänst.

      1. Eingaben :

        Administrator-Konto anlegen
        Benutzername : ???????
        Passwort : ??????

        Fortgeschritten
        Datenverzeichnis

        Datenbank einrichten
        MySQL wird verwendet.
        Datenbank-Benutzer : owncloud
        Datenbank-Passwort : ?habe ich bei der Installation angegeben???
        Datenbank-Name : owncloud

        localhost
        ____________

        Benutzername und password bei Admin-konto muß ich eingeben, ansonsten lässt er mich die Installation nicht beenden

  18. Einen sehr schönen Blog hast Du da. War mir eine große Hilfe,
    Ich habe bei mir noch ein paar weitere Anpassungen vorgenommen, um die Installation ein wenig zu härten.
    – MySQL Server absichern mit: “sudo mysql_secure_installation”
    – SSL Cert mit SHA512, da SHA1 nicht mehr verwendet werden sollte:
    “sudo openssl req -newkey rsa:4096 -sha512 -x509 -days 3650 -nodes -out /etc/nginx /cert.pem -keyout /etc/nginx/cert.key”
    – Naxsi als Firewall für NginX installiert. Hier kommt ein Regelsatz (Datenbankbasiert) mit, welcher vor SQL-Injections, Bots und Spammern schützt.

  19. Hallo,

    habe Deine Kombination jetzt seit ein paar Wochen absolut reibungslos im Einsatz und bin sehr zufriden 🙂

    Nun hätte ich aber zwei Fragen:

    1. Wie kommt man an die Logfiles des Webservers? Ich würde gerne mal schauen, ob es unerwünschte Zugriffe von draußen gibt.

    2. Die interne Update-Funktion geht leider nicht. Hast du eine Empfehlung für eine Doku, wie man händisch updaten kann?

    Gruß, Daniel

  20. Das upload_tmp_dir habe ich auf ein Verzeichnis auf einem externen Speichermedium gelegt. Wenn ich jetzt eine grosse Datei hochlade, wird dennoch zuerst Speicherplatz von meiner SD Karte alloziert, und scheinbar erst nach dem eigentlichen Upload die Datei in das upload_tmp_dir verschoben. Von dort wandert sie dann in die finale location. Da meine SD Karte recht klein ist, würde ich diesen Zwischenschritt gerne vermeiden, bzw. den Speicherort für den initialen Upload (POST?) auch definieren können. Ist das möglich?

    1. Es liegt am body_tmp. Nginx legt standardmässig unter /var/lib/nginx/body die post Daten ab. Allerdings wird dazu ein gemeiner Hack verwendet: Erst wird das file mit open geöffnet, danach sofort wieder gelöscht aber trotzdem weiter reingeschrieben. Daher ist es auf Filesystemebene nicht sichtbar, df zeigt den verbrauchten Speicherplatz aber an.

      Die Lösung für mich war, client_body_temp_path auf das externe Speichermedium zu legen.

  21. Im Browser wird folgender Fehler angezeigt:

    Das Erstellen des „data“-Verzeichnisses nicht möglich (/var/www/owncloud/data)
    Dies kann normalerweise repariert werden, indem dem Webserver…

    Die Befehle aus Deiner Anleitung hab ich alle kopiert und die Server-Adressen gegen dynamische ausgetauscht.

    Was ist schief gegangen?

    Gruß
    Flo

    1. Hallo,

      das ist ein Rechteproblem. mit:

      sudo chown www-data:www-data /var/www/owncloud -R

      sollte es sich beheben lassen.

      Gruß

  22. Hallo,

    ich habe Deine Installation nun schon über Monate im einsatz und bin weiterhin begeistert. Nach dem Upgrade auf Owncloud 7 hat das Frontend nun auch spürbar an Geschwindigkeit gewonnen und das ganze ist jetzt wirklich im Alltag nutzbar 🙂

    Allerdings würde ich nun gerne auch mal nginx updaten. Der läuft bei mir weiterhin in der Version 1.2.1, obwohl es mittlerweile die Version 1.7.4 gibt. Ich dachte, das geht vielleicht mit „apt-get update“ oder „upgrade“. Allerdings scheint apt-get immer nur die bestehende Version zu laden.

    Könntest du vielleicht mal einen Tipp geben/beschreiben, wie das geht?

    Gruß + Danke, Daniel

    1. Hallo Daniel,

      unser verwendetes Raspbian baut ja auf Debian an. Doch in den Debian Paketquellen wirst du die aktuelle Version nicht finden. Somit hilft auch apt-get upgrade nicht weiter.
      Schaue die mal diesen Artikel an
      https://www.kadder.de/2014/08/nginx-selbst-kompilieren/
      Dort wird beschrieben, wie man die aktuelle nginx Version afu einem Debian selbst kompiliert.

      Danke für dein Feedback was OC7 betrifft. Vielleicht werde ich am Wochenende auch das Upgrade wagen. Bisher läuft bei mir noch OC6.

      1. nunja, das upgrade auf OC7 hat nach vielen Fehlversuchen leider nicht funktioniert – weder mit dem eingebauten Updater, noch mit Hilfe des Manuals. Das war schon etwas frustrierend. Daher habe nochmal eine komplett neue Installation aufgesetzt und meine paar Daten dann manuell kopiert. Das wiederum hat sich gelohnt: Die Oberfläche ist insgesamt schneller und jetzt auch Responsive, das war mir wichtig. Nur der Kalender scheint langsamer geworden zu sein.

        Danke für den Link zum NGINX-Update-Tutorial! Ich teste das mal die Tage und gebe dann nochmal Rückmeldung.

        Gruß, D.

  23. Ja, mehrfach nach der Methode in Deinem Blog. Und dann nochmal, wie es im Manual unter upgrade steht. In allen Fällen sah es zunächst vielversprechend aus: Owncloud wurde angezeigt und es gab eine Systemmeldung dass Owncloud eine neue Instanz einrichtet blabla und man nach einer Weile die Seite neu laden soll… Leider blieb es dabei und auch noch so langes Warten bzw. Nachladen änderte was 😦

      1. Interessant. Das hatte ich nach längerer Recherche in den Owncloud Foren auch versucht. Allerdings startete der Initiierungsvorgang dann jeweils nur von vorne – um dann erneut hängen zu bleiben. Insgesamt ist zu hoffen, dass die Updater-App jetzt endlich besser funktioniert. Bei mir funktionierte die bisher überhaupt nicht.

        Heute fiel mir übrigens ein Problem mit OC7 auf, das ich bislang nicht bemerkt hatte: Wenn ich im Admin Account in die die „Apps“-Ansicht wechsel, bekomme ich dort zwar in der linken Spalte die übliche Auswahl. Klicke ich dann aber auf die Apps, öffnet sich im Hauptfenster nicht wie gewohnt das Detail-Info. Stattdessen steht dort oben immer nur „Wählen sie eine App aus“. Hast du das Problem auch?

        Gruß, Daniel

  24. genau – das sehe ich nicht 😮

    Sieht mir fast wie ein Rechte-Problem aus. In dem Hauptmenü-Flyout ist der Link auf die Apps-Seite irgendwie dunkler als Kontakte, Kalender usw. Vielleicht habe ich mich irgendwie selbst ausgesperrt. Weiß nur nicht wie und wann….

  25. Hi!

    Vielen Dank für das tolle Tutorial!
    Ich hatte schon länger mit dem Gedanken gespielt, owncloud mit nginx laufen zu lassen… Allerdings war ich faul und habe owncloud direkt als Package installiert… Nur läuft es jetzt nicht, sondern beim Aufrufen im Browser dreht zwar der „Rödel-Kreis“, aber sonst passiert nichts.

    Hast du vielleicht eine Idee, woran das liegen kann?

      1. Keine Ahnung, wo da der Fehler liegt, da ja auch keine Fehlermeldung zu kommen seint. An deiner Stelle würde ich nochmal alles komplett nach Tutorial machen, vorher Karte formatieren usw…. Da kann man dann besser analysieren, wo der Fehler liegt.

      2. Das Problem mit dem app-Zugriff ist gelöst. Offenbar ist das irgendeine Sicherheitseinstellung. Auf die app-Seite komme ich nur nicht, wenn ich sie von extern aufrufe. Im internen Netz bekomme ich Zugriff.

        Noch mal eine andere Frage – meinst Du die bestehende Installation würde auf jedem anderen Debian System funktionieren? Hintergrund der Frage: Es gibt diesen Banana Pi – ein Raspberry mit etwas mehr Leistung.

        Gruß, Daniel

      3. Meinem Verständnis nach sollte es kein Problem sein owncloud auf die gleiche Weise auf dem Banana Pi zu installieren. Raspbian baut ja auf Debian auf und Debian läuft auf dem Banana Pi.

  26. Im Großen und Ganzen gibt es am Raspi nichts zu meckern. Er ist billig, klein und verbraucht kaum Strom. Vor dem Hintergrund leistet er wirklich Großes. In Bezug auf die meisten Anwendungen reicht er mir auch völlig aus: Wir benutzen ihn in der Familie um Kalender- und Kontaktdaten zu synchronisieren und als Backup für den diesjährigen Fotosammelordner.

    Hier kommt der Raspi dann aber auch an seine Grenzen… Ruft man in OC die Bildergalerie auf, kann man sicher erstmal einen Kaffe holen, oder zwei…. Insofern wäre eine etwas leistungsfähigere Hardware sicher nicht schlecht – zumindest, wenn man Bilder auch mal mit weniger geduldigen Menschen teilen will. Hochgetaktet habe ich meinen Raspi übrigens schon. Das ändert aber nicht viel. Und maximal übertakten will ich ihn nicht, weil ich dann um die Lebensdauer fürchte.

    Eigentlich wäre das reine Spielerei mit dem Banana Pi – das Rumbasteln macht halt auch Spaß. Und auch wenn meine Linuxkenntnisse sehr bescheiden sind machen die kleinen Erfolge Lust auf mehr 🙂

    Gruß, D.

    1. OK, ich verstehe. Ich verwende ihn als rrs-reader, Kontakt und Kalender Sync und zum Dateisync mit Bittorrent Sync. Mit der Leistung bin ich da zufrieden. So bald man aber die OC-Weboberfläche nutzt, wünscht man sich mehr Performance.

      Ja, Linux hat schon einen gewissen Reiz. Ich selber verwende ja Ubuntu seit gut 6 Jahren und möchte nicht mehr umsteigen.

  27. Hi!
    So, nach der erfolgreichen ownCloud Installation funktioniert das nächste Projekt leider auch nicht auf Anhieb. Neben ownCloud wollte ich mir auch Wallabag installieren und müsste dazu ja meines Wissens einen zweiten Server-Block eintragen, oder sehe ich das falsch?

    Vielen Dank und viele Grüße!

  28. Hallo, bin bisher leider gescheitert, Owncloud auf dem Banana Pi zu installieren. Irgendwie hakt da etwas bei der Paketinstallation mittels apt. Habe dann erstmal nicht weitergemacht. Dabei basiert das Raspbian für Banana Pi ja auch auf Debian. Bin etwas ratlos. Kann ich Dich damit überhaupt in Deinem Blog nerven?

    Falls ja habe sicherlich noch eine Reihe von Fragen zur OC-Installation auf dem Banana Pi… Ist aber vielleicht auch für Dich interessant, den Unterschieden auf die Spur zu kommen. Ohne Hilfe schaffe ich das jedenfalls nicht.

    1. Also ich würde mich mit dem Problem an dan Banana Pi oder Linux Forum (z.B. ubuntuusers) wenden. So groß dürfte sich die OC Installation ja nicht unterscheiden, denn da Fundament (Linux) bleibt ja das gleiche. 🙂

Hinterlasse einen Kommentar

Diese Seite verwendet Akismet, um Spam zu reduzieren. Erfahre, wie deine Kommentardaten verarbeitet werden..