nachdem ich viel mit der Owncloud herumexperimentiert habe und inzwischen alles gut bei mir läuft (dank vieler unzähliger Tutorials aus dem Netz), möchte ich ein bisschen was zurückgeben und ein anfängertaugliches Tutorial schreiben, wie eine Installation funktioniert. Im Netz gefehlt hat mir ein bisschen eine Beschreibung, die alle notwendigen Schritte für eine sichere und performante OC-Installation enthält.
Meine Anleitung ist also inkl.:
- Owncloud-Installation (7.0.2)
- Einrichten einer MySQL-Datenbank
- Einrichten eines selbst signierten SSL-Zertifikats
- Optimierung der Performance über CRON-Job
Meine Owncloud-Installation (7.0.2) läuft auf einem virtuellen Server, die Einrichtung sollte aber auch auf einem Home-Server funktionieren. Linux-Version: Ubuntu 12.04 LTS
So, los gehts.

1. OWNCLOUD INSTALLIEREN
Die folgenden Befehle in die Konsole eingeben (root-Passwort bereithalten!):
Code: Select all
sudo apt-get update
Code: Select all
sudo apt-get upgrade
Code: Select all
sudo apt-get install apache2 php5 php5-gd php5-curl php5-json php5-common php5-intl php-pear php-apc php-xml-parser libapache2-mod-php5 curl libcurl3 libcurl3-dev nano
Nun müssen wir einige Konfigurations-Dateien bearbeiten:
Code: Select all
sudo nano /etc/apache2/apache2.conf
Es öffnet sich ein Texteditor. Am Ende der Datei folgende Zeile einfügen:
ServerName owncloud
Speichern mit STRG+O, dann Enter drücken!
Beenden mit STRG+X
Code: Select all
sudo nano /etc/apache2/sites-enabled/000-default
Die Zeilen AllowOverride None in AllowOverride All ändern.
Speichern und Beenden.
Code: Select all
sudo nano /etc/php5/apache2/php.ini
Folgende Zeilen ändern:
upload_max_filesize = 2G
max_file_uploads = 200
post_max_size = 2G
Speichern und Beenden.
Code: Select all
sudo a2enmod rewrite
Code: Select all
sudo a2enmod headers
Code: Select all
sudo /etc/init.d/apache2 restart
Es gibt, zur Vereinfachung, vorgefertigte Pakete für diverse Linux-Distributionen. Diese findet ihr hier: http://software.opensuse.org/download/package?project=isv:ownCloud:community&package=owncloud oder auf der Owncloud-Homepage unter Install/Linux Packages.
Code: Select all
sudo sh -c "echo 'deb http://download.opensuse.org/repositories/isv:/ownCloud:/community/xUbuntu_12.04/ /' >> /etc/apt/sources.list.d/owncloud.list"
Code: Select all
wget http://download.opensuse.org/repositories/isv:ownCloud:community/xUbuntu_12.04/Release.key
Code: Select all
sudo apt-key add - < Release.key
Code: Select all
sudo apt-get update
Code: Select all
sudo apt-get install owncloud
2. MySQL-DATENBANK INSTALLIEREN UND EINRICHTEN
Wenn ihr vernünftig mit der Owncloud arbeiten wollt, würde ich nicht die sehr einfache SQLite-Datenbank verwenden, sondern die wesentlich umfangreichere MySQL-Datenbank. Gerade wenn ihr mehrere Benutzer anlegt und mit vielen Dateien arbeitet, ist die Performance mit MySQL deutlich besser.
Code: Select all
sudo apt-get install mysql-server
Während der Installation öffnet sich ein Fenster, in dem ihr ein root-Passwort festlegen müsst!
Code: Select all
sudo mysql -u root -p
Es öffnet sich das Modul zur Datenbankpflege. Dort gebt ihr (nacheinander) folgendes ein (ebenfalls in der Konsole):
Code: Select all
CREATE DATABASE owncloud;
Code: Select all
CREATE USER 'owncloud'@'localhost' IDENTIFIED BY 'password';
Password = das Passwort, welches ihr für diese Datenbank verwenden wollt!
Code: Select all
GRANT ALL PRIVILEGES ON owncloud.* TO 'owncloud'@'localhost';
Code: Select all
FLUSH PRIVILEGES;
Code: Select all
exit;
3. SSL-ZERTIFIKAT ERSTELLEN UND SIGNIEREN
Am besten in ein Verzeichnis wechseln, welches nur vom Root erreichbar ist, z. B. mit
Code: Select all
sudo cd /root
Code: Select all
sudo openssl genrsa -out server.key 4096
Code: Select all
sudo openssl req -new -key server.key -out server.csr
Ihr werdet zur Eingabe einiger Daten aufgefordert, die in eurem Zertifikat enthalten sein werden:
Country Name (Ländercode): = z. B. DE
State or Province Name (Bundesland): = z. B. NRW
Locality Name, eg. City (Stadt): = z. B. Aachen
Organization Name (Firmenname): = ich habe hier Privat eingegeben
Organizational Unit Name (Abteilung) = ich habe hier einfach Enter gedrückt
Common Name, eg. YOUR Name: = Name des Servers, z- B. owncloud.euerserver.de
Email Adress: = eure E-Mail Adresse
A challenge password: = ich habe hier einfach Enter gedrückt
An optional company name: = ich habe hier einfach Enter gedrückt
Code: Select all
sudo openssl x509 -req -days 365 -in server.csr -signkey server.key -out server.crt
Code: Select all
sudo chmod 400 server.key
Code: Select all
sudo nano /etc/apache2/sites-enabled/000-default
Folgende Zeichen am Ende der Datei hinzufügen:
<VirtualHost *:443>
DocumentRoot /var/www
ServerName NAME EURES SERVERS
SSLEngine on
SSLCertificateFile /root/server.crt
SSLCertificateKeyFile /root/server.key
</VirtualHost>
Speichern und Beenden.
Code: Select all
sudo nano /etc/apache2/sites-available/default
Folgende Einträge hinzufügen:
<VirtualHost *:443>
DocumentRoot /var/www
ServerName NAME EURES SERVERS
SSLEngine on
SSLCertificateFile /root/server.crt
SSLCertificateKeyFile /root/server.key
</VirtualHost>
Speichern und Beenden.
Code: Select all
sudo nano /etc/apache2/sites-available/default-ssl
Folgende Einträge hinzufügen:
<IfModule mod_ssl.c>
<VirtualHost *:443>
ServerAdmin webmaster@localhost
DocumentRoot /var/www
<IfModule mod_ssl.c>
SSLEngine on
SSLCertificateKeyFile /root/server.key
SSLCertificateFile /root/server.crt
SetEnvIf User-Agent ".*MSIE.*" \
nokeepalive ssl-unclean-shutdown \
downgrade-1.0 force-response-1.0
</IfModule>
Speichern und Beenden.
Code: Select all
sudo nano /etc/apache2/ports.conf
Folgende Zeilen hinzufügen:
NameVirtualHost *:443
Listen 443 (steht manchmal schon in der Datei, dann könnt ihr es natürlich weglassen.
Speichern und Beenden.
Code: Select all
sudo a2enmod ssl
Code: Select all
apache2ctl configtest
Hier sollte ein Syntax OK herauskommen.
Code: Select all
apache2ctl restart
4. OWNCLOUD EINRICHTEN
Ruft eure Owncloud-Installation im Webbrowser unter https://Name_oder_IP_eures_Servers/owncloud auf.
Euer Browser wird jetzt meckern, da ihr das SSL-Zertifikat selbst erstellt und signiert habt und es nicht (gegen Gebühr) von einer offiziellen Signaturstelle signiert wurde. Ihr könnt hier aber weiter klicken, die Verbindung erfolgt trotzdem über eine sichere Verbindung.
Ihr werdet aufgefordert, euren Admin-Benutzer für die Owncloud anzugeben. Folgendes gebt ihr ein:
Adminname (z. B. Admin
Passwort für den Admin-Account
Klickt darunter auf Fortgeschritten
Den Eintrag "Datenverzeichnis" könnt ihr so stehen lassen.
Unter "Datenbank einrichten" klickt ihr auf MySQL.
Datenbank-Benutzer: owncloud
Datenbank-Passwort: Das unter Punkt 2 (MySQL installieren) festgelegte Passwort
Datenbank-Name: owncloud
Datenbank-Host: localhost
Klickt auf Installation abschließen
SO, DAS WARS! Eure eigene Cloud ist installiert und bereit!

5. PERFORMANCE VERBESSERN DURCH UMSTELLUNG AUF CRONDIENST
Code: Select all
crontab -u www-data -e
In der sich öffnenden Text-Datei gebt ihr ganz unten folgendes ein:
*/15 * * * * php -f /var/www/owncloud/cron.php
Speichern und Beenden.
Loggt euch in den Admin-Account eurer Owncloud ein. Unter "Administrator" ändert ihr unten den Eintrag von Ajax auf Cron.
Jetzt läuft eure Owncloud noch etwas performanter.
Ich hoffe, ihr könnt etwas mit dieser Anleitung anfangen und es hilft euch auf dem Weg zu eurer eigenen Cloud. Ich bin selbst überhaupt kein Linux-Profi und musste viel viel googlen, um alles hinzubekommen.
Mein Dank geht an alle Schreiber der Tutorials, aus denen ich diese Anleitung zusammengetragen habe!
Für Verbesserungsvorschläge bin ich gerne offen. Vielleicht kann ja das ein oder andere noch besser gemacht werden.

Viele Grüße,
Freddy