Dies ist eine alte Version des Dokuments!
NextCloud auf den Raspberry Pi installieren
Für die nächsten Befehle dauerhaft Root-Rechte organisieren:
sudo -i
Alle installierten Pakete auf den neuesten Stand bringen:
apt update && apt upgrade -y
Webserver Apache installieren:
sudo apt install apache2
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:
apt-get install php-apc
Die Datei /etc/apache2/sites-available/default editieren:
nano /etc/apache2/sites-available/default
Nach der vorletzten Zeile und vor der Zeile
</VirtualHost>
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:
service apache2 reload
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
Ins Owncloud-Verzeichnis wechseln:
cd /var/www/owncloud/
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):
sudo -u www-data php occ app:enable calendar sudo -u www-data php occ app:enable contacts
Maximale Dateigröße für Uploads einstellen (2GB ist das maximal mögliche):
nano /var/www/owncloud/.htaccess
In den beiden Zeilen
php_value upload_max_filesize 513M
php_value post_max_size 513M
das 513M durch 2G ersetzen. Das soll dann also so aussehen:
php_value upload_max_filesize 2G php_value post_max_size 2G
Änderungen mit Strg-O und Enter speichern, dann nano mit Strg-X verlassen.
Cron-Job für Owncloud erzeugen:
crontab -u www-data -e
Am Ende der Datei die folgende Zeile einfügen:
- /15 * * * * php -f /var/www/owncloud/cron.php
Dann mit Strg-O und Enter speichern und mit Strg-X den Editor beenden.
PHP auf UTF-8-Zeichensatz umstellen:
nano /etc/php5/apache2/php.ini
In der Zeile
;default_charset = "UTF-8"
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):
nano /etc/php5/cli/php.ini
Am Schluss der Datei die folgende Zeile einfügen:
apc.enable_cli=1
Änderungen mit Strg-O und Enter speichern, dann nano mit Strg-X verlassen.
Erlaubte-Domain-Namen erweitern:
nano /var/www/owncloud/config/config.php
Den Eintrag
'trusted_domains' =>
array (
0 => 'localhost',
),
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:
mkdir /etc/apache2/ssl
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 setzen:
chmod 600 /etc/apache2/ssl/apache.pem
Benötigte Module für Apache laden:
service apache2 reload a2enmod ssl a2enmod headers service apache2 restart
Die Datei /etc/apache2/sites-available/ssl erzeugen:
nano /etc/apache2/sites-available/ssl
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>
Änderungen mit Strg-O und Enter speichern, dann nano mit Strg-X verlassen.
SSL einschalten:
a2ensite ssl
Den Web-Server neu starten:
service apache2 restart
MySQL sicherer machen:
mysql_secure_installation
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:
exit
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.
Quelle: http://www.forum-raspberrypi.de/Thread-tutorial-owncloud-8-1-installation-mit-apache-und-mysql
