Owncloud installieren

Aus MySlug
Version vom 28. Juni 2015, 20:19 Uhr von Admin (Diskussion | Beiträge) (Die Seite wurde neu angelegt: „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 O…“)
(Unterschied) ← Nächstältere Version | Aktuelle Version (Unterschied) | Nächstjüngere Version → (Unterschied)
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:

Code:

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 ExecCGI Indexes FollowSymLinks MultiViews
       AddHandler cgi-script .cgi .pl
       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 ExecCGI Indexes FollowSymLinks MultiViews
       AddHandler cgi-script .cgi .pl
       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.

Quelle: http://www.owncloud.org