Hallo alle,
weil ich in letzer Zeit Probleme mit einer neuen Owncloud-Installation hatte, habe ich jetzt eine eigene Beschreibung für die Installation von Owncloud auf dem Raspi geschrieben. Vielleicht hilft das ja anderen.
Die Anleitung berücksichtigt/verwendet Neuerungen in Owncloud 8.1 und geht von einem installierten Raspian Wheezy aus.
Ausserdem versuche ich alles so detailiert zu beschreiben, das auch Linux- und Raspi-Anfänger (wie ich auch selbst einer bin) damit zurecht kommen.
Notwendige und/oder sinnvolle Ergänzungen werde ich hier gerne noch einpflegen.
Es ist praktisch, die Installation in der grafischen Benutzeroberfläche durchzuführen, weil man dann dauerhaft ein Fenster mit dieser Beschreibung offen haben kann. Die einzelnen Befehlszeilen und Texte können dann hier markiert und mit Copy/Paste im Terminal-Fenster ausgeführt werden.
Dabei können direkt untereinander stehende Befehlszeilen auch in einem Rutsch kopiert und ausgeführt werden, was zusätzlich Arbeit spart.
Wer nano als Text-Editor nicht mag, kann auch Leafpad verwenden, sollte dafür aber ein eigenes LXTerminal-Fenster öffnen und darin mit dem Kommando
einen Datei-Browser mit root-Rechten starten (das evtl. zusätzlich von gksu angezeigte Warnfenster über die Vergabe von Rechten ohne Passwortabfrage kann einfach geschlossen werden). Im Datei-Browser sollte dann unter "Ansicht" der Punkt "Versteckte anzeigen" angehakt werden. Wenn links "Orte" angezeigt wird, darauf klicken und "Verzeichnisbaum" auswählen. Dann können alle benötigten Verzeichnisse und Dateien angezeigt werden und mit einem
Rechtsklick auf eine zu ändernde Datei und Klick auf "Text Editor" Leafpad gestartet werden.
Die folgende Beschreibung geht aber nicht davon aus, sondern verwendet nano als Editor.
Graphische Benutzeroberfläche starten (wenn sie nicht schon automatisch gestartet wurde):
LXTerminal starten (das Icon mit dem schwarzen Monitor ganz oben am Bildschirm mit der Maus anklicken). Es öffnet sich ein Terminal-Fenster mit Eingabeprompt.
Für die nächsten Befehle dauerhaft Root-Rechte organisieren:
Owncloud-Paketquelle für apt-get hinzufügen:
echo 'deb http://download.opensuse.org/repositories/isv:/ownCloud:/community/Debian_7.0/ /' >> /etc/apt/sources.list.d/owncloud.list
Wenn Fehlermeldungen bei apt-get upgrade wegen nicht
überprüfbarer Signaturen für Owncloud vermieden werden sollen,
noch die folgenden beiden Kommandos abarbeiten. Das ist aber nicht wirklich notwendig und kann auch übersprungen werden.
wget http://download.opensuse.org/repositories/isv:ownCloud:community/Debian_7.0/Release.key
apt-key add - < Release.key
Paketquellen aktualisieren:
Alle installierten Pakete auf den neuesten Stand bringen:
(Dumme Fragen immer mit j und Enter beantworten)
Owncloud installieren:
(Dumme Fragen immer mit j und Enter beantworten)
Während der Instalation von MySQL wird ein Passwort für den MySQL-Benutzer root abgefragt. Dafür ein sicheres Passwort eingeben (und aufschreiben!) und zur Bestätigung noch einmal eingeben.
PHP-APC installieren:
Die Datei /etc/apache2/sites-available/default editieren:
Nach der vorletzten Zeile und vor der Zeile
den folgenden Text einfügen:
<Directory /var/www/owncloud>
Options Indexes FollowSymLinks MultiViews
AllowOverride All
Order allow,deny
allow from all
</Directory>
Änderungen mit Strg-O und Enter speichern, dann nano mit Strg-X verlassen.
Die neue Konfiguration einlesen:
Benutzer und Rechte im Owncloud-Verzeichnis setzen:
find /var/www/owncloud/ -type f -print0 | xargs -0 chmod 0640
find /var/www/owncloud/ -type d -print0 | xargs -0 chmod 0750
chown -R root:www-data /var/www/owncloud/
chown -R www-data:www-data /var/www/owncloud/apps/
chown -R www-data:www-data /var/www/owncloud/config/
chown -R www-data:www-data /var/www/owncloud/data/
chown -R www-data:www-data /var/www/owncloud/themes/
chown root:www-data /var/www/owncloud/.htaccess
chown root:www-data /var/www/owncloud/data/.htaccess
chmod 0644 /var/www/owncloud/.htaccess
chmod 0644 /var/www/owncloud/data/.htaccess
Alles anzeigen
Ins Owncloud-Verzeichnis wechseln:
Owncloud initialisieren:
Achtung: MySQL-root-Passwort durch das bei der MySQL-Installation für root vergebene Passwort ersetzen. Owncloud-admin-Passwort durch ein eigenes gutes Paswort für den Owncloud-Administrator ersetzen (und aufschreiben).
Bei --admin-user kann statt admin auch ein beliebiger anderer Benutzername angegeben werden.
sudo -u www-data php occ maintenance:install --database "mysql" --database-name "owncloud" --database-user "root" --database-pass "MySQL-root-Passwort" --admin-user "admin" --admin-pass "Owncloud-admin-Passwort"
occ wird zuerst
"ownCloud is not installed - only a limited number of commands are available"
anzeigen, dann nach einigen Sekunden
"ownCloud was successfully installed".
In Owncloud die Apps Calendar und Contacts aktivieren
(wenn nicht nur Dateien sondern auch Kalender und Kontakte
abgeglichen werden sollen):
Maximale Dateigröße für Uploads einstellen (2GB ist das maximal mögliche):
In den beiden Zeilen
das 513M durch 2G ersetzen.
Das soll dann also so aussehen:
Änderungen mit Strg-O und Enter speichern, dann nano mit Strg-X verlassen.
Cron-Job für Owncloud erzeugen:
Am Ende der Datei die folgende Zeile einfügen:
Dann mit Strg-O und Enter speichern und mit Strg-X den Editor beenden.
PHP auf UTF-8-Zeichensatz umstellen:
In der Zeile
den Strichpunkt am Anfang der Zeile löschen.
(Um diese Zeile zu finden Strg-W drücken und default_charset eintippen.)
Änderungen mit Strg-O und Enter speichern, dann nano mit Strg-X verlassen.
APC auch für PHP-CLI einschalten (sonst schmeißt der Owncloud-Cron-Job Fehlermeldungen):
Am Schluss der Datei die folgende Zeile einfügen:
Änderungen mit Strg-O und Enter speichern, dann nano mit Strg-X verlassen.
Erlaubte-Domain-Namen erweitern:
Den Eintrag
erweitern um die lokal und extern für Owncloud verwendeten URLs.
Z.B. so (wobei 192.168.xxx.yyy durch die an den Raspi vergebene IP-Adresse und meine.dyndns.adr durch die eingerichtete DynDNS-Adresse ersetzt werden muss):
'trusted_domains' =>
array (
0 => 'localhost',
1 => 'raspberrypi',
2 => '192.168.xxx.yyy',
3 => 'meine.dyndns.adr',
),
Am Ende der Datei, vor der letzten Zeile mit der schließenden runden Klammer, noch den folgenden Text einfügen:
# Wer die Ansprache gerne etwas lockerer hat kann
# in der folgenden Zeile auch 'de' verwenden.
'default_language' => 'de_DE',
# In der folgenden Zeile kann statt 'calendar' auch z.B. 'contacts'
# angegeben werden, oder die Zeile ganz auskommentieren oder löschen,
# dann wird files angezeigt.
'defaultapp' => 'calendar',
'memcache.local' => '\OC\Memcache\APC',
Änderungen mit Strg-O und Enter speichern, dann nano mit Strg-X verlassen.
Um SSL verwenden zu können in /etc/apache2/ das Unterverzeichnis SSL anlegen:
Mit dem folgenden Befehl einen SSL-Schlüssel erzeugen:
openssl req -new -x509 -days 365 -nodes -out /etc/apache2/ssl/apache.pem -keyout /etc/apache2/ssl/apache.pem
OpenSSL fragt nach einigen Daten. Als Common Name muss der reine DynDNS-Name (z.B.: meine.dyndns.adr, also ohne https:// davor oder /owncloud dahinter) eingegeben werden, alle anderen Felder können mit mehr oder weniger sinnvollen Angaben befüllt werden, aber auch leer bleiben.
Der folgende Befehl erzeugt einen Link mit dem Hash des Schlüssels als Namen auf die Schlüsseldatei:
ln -sf /etc/apache2/ssl/apache.pem /etc/apache2/ssl/`/usr/bin/openssl x509 -noout -hash < /etc/apache2/ssl/apache.pem`
Jetzt noch die richtigen Dateirechte:
Benötigte Module für Apache laden:
Die Datei /etc/apache2/sites-available/ssl erzeugen:
Den folgenden Text eingeben:
<virtualhost *:443>
SSLEngine On
SSLCertificateFile /etc/apache2/ssl/apache.pem
#Die folgende Zeile schließt unsichere SSL-Protokolle aus:
SSLProtocol All -SSLv2 -SSLv3
#Die folgende Zeile lässt nur die sichersten Verschlüsselungen zu:
#(Das könnte allerdings Probleme mit alten Browsern geben)
SSLCipherSuite EECDH+AESGCM:EDH+AESGCM:AES256+EECDH:AES256+EDH
DocumentRoot /var/www
#Die folgende Zeile beseitigt die Sicherheitswarnung
#"Strict-Transport-Security" in Owncloud:
Header always add Strict-Transport-Security "max-age=15768000; includeSubDomain; preload"
</virtualhost>
Alles anzeigen
Änderungen mit Strg-O und Enter speichern, dann nano mit Strg-X verlassen.
SSL einschalten:
Den Web-Server neu starten:
MySQL sicherer machen:
Die erste Frage ("Change the root password? [Y/n]") mit Nein beantworten, alle weiteren mit Ja.
Und ganz zum Schluss die Root-Rechte wieder abgeben:
Owncloud ist jetzt über einen Browser erreichbar:
Auf dem Raspi selbst über https://localhost/owncloud oder https://127.0.0.1/owncloud
Im eigenen Netz über https://raspberrypi/owncloud oder https://192.168.xxx.yyy/owncloud
Von außen über https://meine.dyndns.adr/owncloud
Was noch fehlt:
Im Router muß noch DynDNS und eine Portweiterleitung für den Port 443 auf den Raspi gesetzt werden.
Wer eine Fritz-Box hat ist klar im Vorteil, weil die ein eigenes kostenloses DynDNS (Stichwort MyFritz) bietet. Die DynDNS-Adresse sieht dann etwa so aus: abc123xyz.myfritz.net, wobei der erste Teil von AVM beim Einrichten von MyFritz automatisch an die Fritz-Box vergeben wird.
Wer keine Fritz-Box hat, muß sich um einen anderen DynDNS-Dienst kümmern.
Das erzeugte Zertifikat muss auf den Geräten installiert werden, mit denen auf die Owncloud zugegriffen werden soll.
Edit 16.8.15: "sudo pcmanfm" auf "gksu pcmanfm" umgestellt (Danke an Frischwind und rpi444).
Edit 24.8.15: "apc.enable_cli=1" in /etc/php5/cli/php.ini eingefügt.
Edit 28.8.15: Der cron-Job läuft wieder und ich weiß eigentlich nicht warum bzw. warum er vorher eine Zeit lang nicht mehr lief. Ich hab jetzt den entsprechenden Warnhinweis oben wieder gelöscht.
Edit 5.10.15: Aus Sicherheitsgründen in der Datei /etc/apache2/sites-available/ssl die Parameter SSLProtocol und SSLCypherSuite gesetzt. MySQL mit mysql_secure_installation abgedichtet.