Owncloud auf dem Pi installieren
Da der Raspberry Pi ab der Version 2 doch mehr Dampf unter der Haube hat, war es mal interessant auszuprobieren, wie sie mit einer Cloud zurecht kommt. Die Installation der Owncloud ist nicht trivial und setzt schon einige Kenntnisse auf Linux voraus. Aber es hat sich gelohnt! Die Performance passt, und in der Regel greifen auf einen Heimserver nicht viele User zu. Sollen auch in der Regel nicht. Im folgenden Tutorial werden wir diese Schritte vornehmen:
- Apache Module nachinstallieren und die php.ini anpassen
- Owncloud herunterladen, installieren und Zugriffsrechte gemäß der Owncloudanleitung setzen
- http und https einrichten (nebst htaccess Schutz)
Voraussetzung:
- Apache, php und mysql ist installiert
- Eine Datenbank als Root ist angelegt
Apache Module nachinstallieren und die php.ini anpassen
Zuerst benötigen wir ein paar zusätzliche Pakete:
apt-get install php5-curl php5-gd php5-json php5-curl php5-intl php5-mcrypt php-xml-parser
Die php.ini wird als nächstes angepasst:
nano /etc/php5/apache2/php.ini
Folgende Parameter könnt Ihr wie folgt anpassen:
post_max_size = 2G
max_file_uploads = 200
upload_max_filesize = 2G
Speichert die Änderung und startet Euren Apache neu durch
/etc/init.d/apache2 restart
Owncloud herunterladen und installieren
In diesem Tutorial wollen wir die Owncloud in /var/www/ installieren. Das geht natürlich überall wo Ihr wollt. Denkt daran, dass Ihr für die hochgeladenen Daten später genug Platz habt! Wir wechseln in das zukünftige Serververzeichnis:
cd /var/www
Nun ziehen wir uns die aktuelle Owncloud aus dem Netz:
wget https://download.owncloud.org/community/owncloud-8.0.4.tar.bz2
(Die aktuelle Versionsnummer, oder den Link bekommt Ihr hier: https://owncloud.org/install/#instructions-server )
Entpackt die Datei mit einem
tar xvf owncloud-8.0.4.tar.bz2
Ihr habt nun ein neues Verzeichnis /var/www/owncloud. Wir wollen hier noch die Rechte passend setzen. Das machen wir einfach mit einen Skript:
nano /var/www/rights.sh
Füllt diese mit folgendem Code:
#!/bin/bash
ocpath='/var/www/owncloud'
htuser='www-data'
find ${ocpath}/ -type f -print0 | xargs -0 chmod 0640
find ${ocpath}/ -type d -print0 | xargs -0 chmod 0750
chown -R root:${htuser} ${ocpath}/
chown -R ${htuser}:${htuser} ${ocpath}/apps/
chown -R ${htuser}:${htuser} ${ocpath}/config/
chown -R ${htuser}:${htuser} ${ocpath}/data/
chown -R ${htuser}:${htuser} ${ocpath}/themes/
chown root:${htuser} ${ocpath}/.htaccess
chown root:${htuser} ${ocpath}/data/.htaccess
chmod 0644 ${ocpath}/.htaccess
chmod 0644 ${ocpath}/data/.htaccess
Speichert die Datei und macht diese ausführbar:
chmod +x /var/www/rights.sh
Diese führen wir gleich aus:
sh /var/www/rights.sh
Jetzt müssen wir dem Apache noch sagen, wo er unsere Webapplication findet:
http und https einrichten (nebst htaccess Schutz)
Der nächste Schritt ist etwas kompliziert, deswegen genau hinsehen und lesen!
Als erstes hinterlegen wir den http Aufruf für die Leute, die sich es nicht merken können, dass es auch ein https gibt:
nano /etc/apache2/sites-enabled/000-default
Im Bereich <VirtualHost *:80> legt Ihr folgende neue Alias an:
Alias /owncloud /var/www/owncloud
<Directory /var/www/owncloud>
Options FollowSymLinks
AllowOverride All
DirectoryIndex index.php index.htm index.html
Order allow,deny
allow from all
</Directory>
Speichert die Änderung. Jetzt wollen wir nur noch eine Verbindung über https zulassen. Dazu müssen wir dem Apache https als Erweiterung beibringen. Wechselt dazu in Euer Root Home:
cd /root
Danach legen wir unser Serverzertifikat an:
openssl genrsa -out server.key 4096
openssl req -new -key server.key -out server.csr
Jetzt werdet Ihr einige Angaben abgefragt:
Country Name (Ländercode): = DE
State or Province Name (Bundesland): = zB Bayern
Locality Name, eg. City (Stadt): = zB Nuernberg
Organization Name (Firmenname): = hier irgendwas eingeben wie privat, zuhause etc.
Organizational Unit Name (Abteilung) = bleibt leer
Common Name, eg. YOUR Name: = Euer Servername
Email Adress: = eine E-Mail Adresse
A challenge password: = bleibt leer
An optional company name: = bleibt leer
Dann generieren wir das Zertifikat. Ich mache das gleich mal für 10 Jahre, dann ist Ruhe:
openssl x509 -req -days 3650 -in server.csr -signkey server.key -out server.crt
Noch ein paar Rechte festlegen:
chmod 400 server.key
Jetzt müssen wir noch ein paar Änderungen in einigen Apache Konfigurationsdateien vornehmen:
nano /etc/apache2/sites-enabled/000-default
Am Ende der Konfigurationsdatei ergänzt folgende neue Sektion:
<VirtualHost *:443>
DocumentRoot /var/www
ServerName EUER_SERVERNAME
SSLEngine on
SSLCertificateFile /root/server.crt
SSLCertificateKeyFile /root/server.key
Alias /owncloud /var/www/owncloud
<Directory /var/www/owncloud>
Options FollowSymLinks
AllowOverride All
DirectoryIndex index.php index.htm index.html
Order allow,deny
allow from all
</Directory>
</VirtualHost>
EUER_SERVERNAME muss noch entsprechend eingetragen werden. Speichert die Änderung und editiert die ports.conf
nano /etc/apache2/ports.conf
und fügt ganz zum Schluss folgende Zeile ein:
NameVirtualHost *:443
Nun aktivieren wir das SSL Modul:
a2enmod ssl
Der Apache muss jetzt neu gestartet werden:
/etc/init.d/apache2 restart
Beachtet, dass das natürlich kein gekauftes Zertifikat ist. Euer Browser wird hier eine entsprechende Warnmeldung bringen. Aber Ihr wisst damit, warum diese Meldung kommt.
Wenn Ihr generell auf https umleiten wollt, auch wenn die Adresse über http abgerufen wird, müsst Ihr im Apache das Modul Rewrite aktivieren:
a2enmod rewrite
/etc/init.d/apache2 restart
Editiert die .htaccess:
nano /var/www/owncloud/.htaccess
Fügt direkt unter RewriteEngine on diese Zeilen ein:
RewriteCond %{HTTPS} off
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
Nun werden sämtliche Anfragen auf das verschlüsselte https Protokoll umgeleitet.
Zu guter Letzt wollen wir generell verhindern, dass man von außen einfach einen Zugriff auf das Login der Owncloud bekommt. Wir blockieren das deshalb mit .htaccess und aktivieren eine darüberliegende Passwortabfrage.
Fügt deshalb in der .htaccess noch folgendes oben ein:
AuthType Basic
AuthName owncloud
AuthUserFile /var/www/owncloud/.htpasswd
require valid-user
Ihr seht, dass der Pfad zu dem dann erzeugtem Passwort im Dokumentenroot der Webanwendung liegt. Um das einwenig sicher zu machen, könnt Ihr durchaus dieses in ein anderes Verzeichnis legen, das außerhalb des Dokumentenroot liegt.
Das Passwort legt Ihr dann in diesem Verzeichnis (mittels cd dorthin wechseln!) mit einem
htpasswd -c .htpasswd username
an. Beim Befehl den Usernamen entsprechend Euren Vorstellungen ändern! Jetzt werdet Ihr zusätzlich nach einem Passwort gefragt.
That's it! Ruft Eure Cloud nun mit
https://EURE_SERVERADRESSE/owncloud
auf. Ihr werdet jetzt aufgefordert, einen Adminuser anzulegen und eine Mysql Datenbank festzulegen.
Owncloud aktualisieren
Wenn Ihr einen Hinweis auf eine neue Version bekommt, dann lässt sich diese recht schnell installieren. Dies geht in folgenden Schritten:
- Sichert zuerst Eure Installation. Hierzu am besten das Verzeichnis auf Eurem Server umbenennen
- Bleibt in Eurem Serververzeichnis und ladet Euch mittels wget wie in meinem Tutorial hier beschrieben die neue Version herunter. Entpackt das tar.gz mittels tar (siehe oben).
- Kopiert das data Verzeichnis von Eurer Sicherung in das neue owncloud Verzeichnis.
- Kopiert die config.php aus dem config Verzeichnis Eurer Sicherung in das neue owncloud/config/ Verzeichnis.
- Führt wie in meinem Tutorial das rights.sh Skript aus, um die Verzeichnisrechte neu zu setzen.
- Ruft Eure owncloud nun im Browser auf. Jetzt müsst Ihr die Datenbank aktualisieren lassen. Das wird Euch im Browser entsprechend angezeigt. Habt hier einwenig Geduld, der Vorgang kann hier etwas dauern.
- Falls Ihr im Stammverzeichnis eine eigene .htaccess angelegt habt, dann kopiert diese nun aus Eurem Sicherungsverzeichnis zurück. Führt danach nochmals das rights.sh Skript aus.
Das war es soweit. Danach ist Eure Owncloud auf dem neuesten Stand gebracht.
Quelle: http://www.owncloud.org