Owncloud installieren

Aus MySlug
Zur Navigation springen Zur Suche springen

Da der Raspberry Pi 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:

  1. Apache Module nachinstallieren und die php.ini anpassen
  2. Owncloud herunterladen, installieren und Zugriffsrechte gemäß der Owncloudanleitung setzen
  3. 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:

  1. Sichert zuerst Eure Installation. Hierzu am besten das Verzeichnis auf Eurem Server umbenennen
  2. 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).
  3. Kopiert das data Verzeichnis von Eurer Sicherung in das neue owncloud Verzeichnis.
  4. Führt wie in meinem Tutorial das rights.sh Skript aus, um die Verzeichnisrechte neu zu setzen.
  5. 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.
  6. 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