Boxpirates Wiki >>> Cloud: Unterschied zwischen den Versionen
Reiter (Diskussion | Beiträge) |
Reiter (Diskussion | Beiträge) |
||
Zeile 194: | Zeile 194: | ||
Der eigene Owncloud Server ist auf dem Raspberry Pi installiert und sollte eine ausreichende Performance haben. | Der eigene Owncloud Server ist auf dem Raspberry Pi installiert und sollte eine ausreichende Performance haben. | ||
+ | Möchte man nun Owncloud auch noch über SSL (verschlüsselt) aufrufen, so sind noch folgende Schritte notwendig. | ||
+ | |||
+ | Am Ende der Anleitung wird noch erläutert welche Ports man freigeben muss damit Owncloud auch außerhalb des eigenen Netzwerks verfügbar ist. | ||
+ | |||
+ | === <span style="color:#007FFF">SSL-Zertifikat einrichten </span> === | ||
+ | |||
+ | Zunächst müssen wir ein SSL-Zertifikat für nginx erstellen, welchem wir die benötigten Rechte zuweisen. | ||
+ | |||
+ | Bei den Fragen in der Eingabeaufforderung geben wir lediglich bei Country Name den Wert DE für Deutschland | ||
+ | |||
+ | und bei Common Name die interne IP-Adresse des Raspberry Pis oder, sofern existent, die DynDNS Domain deines Raspberry Pis für externe Zugriffe an. | ||
+ | |||
+ | Allen weiteren Fragen können wir mittels Enter den Standardwert zuweisen. | ||
+ | |||
+ | Hinweis am Rande: Sowohl der Owncloud Client als auch der Browser wird später meckern, dass das SSL Zertifikats nicht vertrauenswürdig sei, | ||
+ | |||
+ | was daran liegt, dass wir dieses selbst signiert haben. Folglich ist diese Warnung einfach zu ignorieren. | ||
+ | |||
+ | * <span style="color:#007FFF">sudo openssl req $@ -new -x509 -days 365 -nodes -out /etc/nginx/cert.pem -keyout /etc/nginx/cert.key</span> | ||
+ | * <span style="color:#007FFF">sudo chmod 600 /etc/nginx/cert.pem</span> | ||
+ | * <span style="color:#007FFF">sudo chmod 600 /etc/nginx/cert.key</span> | ||
Reiter 13:04, 19. Okt. 2014 (CEST) | Reiter 13:04, 19. Okt. 2014 (CEST) |
Version vom 21. Oktober 2014, 22:47 Uhr
BAUSTELLE

Owncloud ist inzwischen der Klassiker, wenn es darum geht, sich “eine eigene Cloud” zu installieren.
Warum liegt auf der Hand: Auf jedem Webspace zu installieren, einfach in der Installation und Handhabung, wie auch ein ausgebautes Webinterface.
Möchte man seine Daten jedoch nicht auf einem angemieteten Webspace ablegen, so bietet es sich an, Owncloud auf den Raspberry Pi zu installieren.
Inhaltsverzeichnis
- 1 Voraussetzungen
- 2 Systemvoraussetzungen ändern
- 3 Installieren von PHP-Modul
- 4 Anpassen der PHP.ini
- 5 Temporären Ordner anlegen
- 6 unter www erreichbar machen
- 7 Einträge ersetzen
- 8 Nginx und PHP restart
- 9 Owncloud runterladen
- 10 Owncloud Ersteinrichtung
- 11 Cronjob anlegen
- 12 Cronjob ändern in der Owncloud
- 13 SSL-Zertifikat einrichten
Voraussetzungen
Zunächst installieren wir nginx mit PHP (genauer php5-fpm) auf dem Raspberry Pi.
Wir setzten bewusst auf nginx anstatt auf Apache2, da dieser Webserver wesentlich weniger Ressourcen benötigt.
Systemvoraussetzungen ändern
Nun empfiehlt es sich, den Raspberry Pi noch zu übertakten (nicht zwingend notwenig), Des Weiteren müssen wir den SWAP erweitern.
Installieren von PHP-Modul
Wir installieren jetzt noch das PHP-Modul php-apc für ein einfaches Caching und sqlite3 als Datenbank.
Wir verwenden absichtlich SQLite3 anstatt MySQL, da letztere Datenbank den CPU des Raspberry Pi zu sehr beanspruchen würde,
woraus eine meiner Erfahrung mit dem Raspberry Pi nach schlechtere Performance resultieren würde.
- sudo apt-get install php-apc php5-sqlite sqlite3
Anpassen der PHP.ini
Damit wir später auch größere Dateien über Owncloud speichern können, müssen wir upload_max_filesize und post_max_size entsprechend anpassen.
Ich setzte das Limit auf 1024 MB. In dem Editor nano kann man mittels STRG + X, Y und Enter speichern.
- sudo nano /etc/php5/fpm/php.ini
upload_max_filesize = 2M post_max_size = 8M
ersetzen durch
upload_max_filesize = 1024M post_max_size = 1024M
Ebenfalls in der php.ini fügen wir am Ende der Datei folgende Zeilen ein um das Caching zu aktivieren und den temporären Uploadpfad zu definieren.
- sudo nano /etc/php5/fpm/php.ini
upload_tmp_dir = /srv/http/owncloud/data extension = apc.so apc.enabled = 1 apc.include_once_override = 0 apc.shm_size = 256
Temporären Ordner anlegen
Nun legen wir den Ordner, den wir gerade als temporären Uploadpfad definiert haben, an und geben diesem Ordner entsprechende Rechte beschrieben zu werden.
- sudo mkdir -p /srv/http/owncloud/data
- sudo chown www-data:www-data /srv/http/owncloud/data
unter www erreichbar machen
Damit Owncloud später direkt unter der IP-Adresse oder DynDNS ohne Pfadangabe erreichbar ist, ersetzen wir in der Datei /etc/nginx/sites-available/default die folgende Zeile.
- sudo nano /etc/nginx/sites-available/default
root /usr/share/nginx/www;
ersetzen durch
root /var/www/owncloud;
Einträge ersetzen
Des Weiteren müssen wir noch folgende Zeilen durch die darauf folgenden ersetzen, da nginx nicht mit der .htaccess Datei von Owncloud umgehen kann.
- sudo nano /etc/nginx/sites-available/default
location / { # First attempt to serve request as file, then # as directory, then fall back to displaying a 404. try_files $uri $uri/ /index.html; # Uncomment to enable naxsi on this location # include /etc/nginx/naxsi.rules }
ersetzen durch
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 ~ ^/(data|config|\.ht|db_structure\.xml|README) { deny all; } location / { # The following 2 rules are only needed with webfinger 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; } # Optional: set long EXPIRES header on static assets location ~* ^.+\.(jpg|jpeg|gif|bmp|ico|png|css|js|swf)$ { expires 30d; # Optional: Don't log access to assets access_log off; }
Nginx und PHP restart
Nach diesen Änderungen müssen wir nginx und php5-fpm neustarten.
- sudo /etc/init.d/nginx restart
- sudo /etc/init.d/php5-fpm restart
Owncloud runterladen
Jetzt ist es endlich an der Zeit Owncloud herunterzuladen. Zum Zeitpunkt als ich dieses Tutorial schrieb war Version 6.0.2 aktuell.
Die aktuelle Version findet man unter http://owncloud.org/install/. Dabei ist zu beachten, dass man nicht den Web Installer,
sondern das volle Paket herunterlädt. Anschließend entpacken wir Owncloud und weisen den Dateien die benötigten Rechte zu.
- sudo mkdir /var/www
- cd /var/www
- sudo wget http://download.owncloud.org/community/owncloud-7.0.2.tar.bz2
- sudo tar xvf owncloud-7.0.2.tar.bz2
- sudo rm owncloud-7.0.2.tar.bz2
- sudo chown -R www-data:www-data /var/www
Owncloud Ersteinrichtung
Ruft man nun Owncloud im Browser auf, über http://IP/ (IP durch die IP-Adresse oder DynDNS Domain des Raspberry Pis ersetzen),
sollte man die Installationsoberfläche von Owncloud vorfinden. Dort tragen wir den gewünschten Benutzernamen und Passwort für den ersten Benutzer ein.
An den Datenbankeinstellungen müssen wir keine Einstellungen vornehmen, da wir eine SQLite3 Datenbank einsetzten.
Cronjob anlegen
Angekommen im Webinterface von Owncloud sind wir jedoch nocht nicht fertig. Wir legen nun einen Cronjob an,
der alle 10 Minuten zahlreiche Arbeiten im Hintergrund erledigt, sodass die Benutzung von Owncloud dauerhaft flotter laufen sollte.
- sudo crontab -u www-data -e
Am Ende der Datei einfügen
*/10 * * * * php -f /var/www/owncloud/cron.php
Cronjob ändern in der Owncloud
Damit die, durch den Cronjob abgenommenen, Arbeiten nicht ebenfalls im Browser ausgeführt werden,
müssen wir über Dein Benutzername > Administrator > Cron die Einstellung von AJAX auf Cron ändern.
Fertig!
Der eigene Owncloud Server ist auf dem Raspberry Pi installiert und sollte eine ausreichende Performance haben.
Möchte man nun Owncloud auch noch über SSL (verschlüsselt) aufrufen, so sind noch folgende Schritte notwendig.
Am Ende der Anleitung wird noch erläutert welche Ports man freigeben muss damit Owncloud auch außerhalb des eigenen Netzwerks verfügbar ist.
SSL-Zertifikat einrichten
Zunächst müssen wir ein SSL-Zertifikat für nginx erstellen, welchem wir die benötigten Rechte zuweisen.
Bei den Fragen in der Eingabeaufforderung geben wir lediglich bei Country Name den Wert DE für Deutschland
und bei Common Name die interne IP-Adresse des Raspberry Pis oder, sofern existent, die DynDNS Domain deines Raspberry Pis für externe Zugriffe an.
Allen weiteren Fragen können wir mittels Enter den Standardwert zuweisen.
Hinweis am Rande: Sowohl der Owncloud Client als auch der Browser wird später meckern, dass das SSL Zertifikats nicht vertrauenswürdig sei,
was daran liegt, dass wir dieses selbst signiert haben. Folglich ist diese Warnung einfach zu ignorieren.
- sudo openssl req $@ -new -x509 -days 365 -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
Reiter 13:04, 19. Okt. 2014 (CEST)