Hier geht alles um Technik, Programmierung & Co.

Banana Pi: Nextcloud installieren

13 Kommentare

Aufgrund der vielen Anfragen bezüglich einer Anleitung zur Installation von Nextcloud auf dem Banana Pi, folgt hier die Schritt-für-Schritt Anleitung. Wer sich noch nicht sicher ist, ob und welche Cloud Anwendung er installieren möchte, dem empfehle ich meinen Artikel Nextcloud vs. Seafile.

Relativ wichtiger Hinweis:

Ab Nextcloud Version 14 benötigt ihr zwingend php7, was in Bananian 16.04 nicht enthalten ist. Ich empfehle euch daher, dringend, Armbian zu installieren, falls ihr noch immer mit Bananian unterwegs seid.

Schritt 1 – Abhängigkeiten installieren

Nun geht es aber wirklich an die Abhängigkeiten. Hinweis: Maria-DB wird nach einem root Passwort für die Datenbank fragen. Hier bitte ein sicheres Passwort wählen. Klick mich um ein sicheres Passwort zu generieren.

apt install -y nginx mariadb-server unzip wget redis-server
apt install -y php-fpm php-mysql php-redis php-zip php-xml php-mbstring php-gd php-curl php-intl php-gmp php-bcmath php-imagick

Falls Maria-DB nicht nach einem root Passwort gefragt hat, bitte noch die mysql Konfiguration nachholen:

mysql_secure_installation

Schritt 1,5 – Nextcloud herunterladen

…Da ich zu meiner Schande gar nicht den Download erwähnt habe, reiche ich ihn an dieser Stelle nach, habe aber keine Lust, alle Überschriften mit neuen Nummern zu versehen 😉

Wir wechseln in das Verzeichnis /var/www

cd /var/www

und laden hier die Nextcloud herunter:

wget https://download.nextcloud.com/server/releases/latest.zip

Diese entpacken wir noch. Dabei sollte automatisch ein Unterordner namens „nextcloud“ erstellt werden:

unzip latest.zip

Abschließend passen wir mittels

chown -R www-data:www-data nextcloud && chmod -R 770 nextcloud

noch die Rechte der Nextcloud Installation an.

Schritt 2 – Nginx konfigurieren

Zuerst deaktivieren wir die Nginx default page …

rm /etc/nginx/sites-enabled/default

… und erstellen eine neue Datei für Nextcloud. In die Datei bitte diesen Inhalt einfügen. Bitte passt noch nötige Einstellungen an. Ich habe die mit TODO markiert.

nano /etc/nginx/sites-available/nextcloud

Abschließend muss die „Seite“ noch aktiviert werden:

ln -s /etc/nginx/sites-available/nextcloud /etc/nginx/sites-enabled/nextcloud

Schritt 3 – SSL Zertifikat erstellen

Diese Prozedur sollte euch bekannt sein. Kurz-um: Es wird ein Ordner erstellt und in diesem Wiederrum ein 4096-bit langer Schlüssel, aus dem wir ein selbst signiertes Zertifikat mit einer Gültigkeit von 10 Jahren erzeugen.

Hinweis: Solltet ihr eine Domain besitzen, dann verwendet am Besten ein kostenloses Let’s Encrypt Zertifikat und überspringt diesen Abschnitt. Wie das geht, erfahrt ihr in der Dokumentation von Nginx.

mkdir /etc/ssl
mkdir /etc/ssl/nginx

cd /etc/ssl/nginx
openssl genrsa -out nextcloud.key 4096
openssl req -new -sha256 -key nextcloud.key -out nextcloud.csr
openssl x509 -req -sha256 -days 3650 -in nextcloud.csr -signkey nextcloud.key -out nextcloud.crt

Jetzt die Konfiguration überprüfen und nginx neu laden:

nginx -t && nginx -s reload

Schritt 4 – Datenbank einrichten

Im letzten Schritt erstellen wir nun noch eine Datenbank für Nextcloud.
Dafür mittels:

mysql -uroot -p

einloggen. Ihr müsst nun das gewählte root Passwort aus Schritt 1 eingeben.
Jetzt noch die Datenbank erstellen und wieder mit einem sicheren Passwort absichern: (password durch euer Passwort ersetzten)

CREATE USER 'nextcloud'@'localhost' IDENTIFIED BY 'password';
CREATE DATABASE IF NOT EXISTS nextcloud CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;
GRANT ALL PRIVILEGES on nextcloud.* to 'nextcloud'@'localhost';
FLUSH privileges;

Abschließend die Konfiguration mit quit; verlassen.

Es sollte jetzt möglich sein, das Webinterface von Nextcloud zu erreichen und die Konfiguration abschließen. (TODO: Screenshots)

Zusätzliche Schritte zur Optimierung

Theoretisch ist eure Nextcloud Installation bereit zum Einsatz. Wem das ganze jedoch zu langsam läuft, der wird hier bei den Optimierungen fündig.
Wichtig: Ich bitte euch, falls ihr die Optimierungen durchführen wollt, alle hier aufgelisteten Schritte auszuführen.

Hinweis für alle Anfänger: Dateien unter Linux lassen sich mit nano bearbeiten.
Z.B. nano /etc/testdatei mittels „strg + x“, „j“ und „enter“ lassen sich alle Änderungen speichern.

Datenbank optimieren:

Folgenden Inhalt zur Datei /etc/mysql/my.cnf hinzufügen:

https://gist.github.com/technikamateur/bfc4ae2f5cb0f4f5160b05ffe1b5e649

… in /etc/php/version/fpm/php.ini folgendes auskommentieren („;“ entfernen)

opcache.enable=1
opcache.interned_strings_buffer=8
opcache.max_accelerated_files=10000
opcache.memory_consumption=128
opcache.save_comments=1
opcache.revalidate_freq=60

und folgendes ändern

max_input_time 1000
max_execution_time 1000
upload_max_filesize 512M
post_max_size 512M

… folgendes zu /var/www/nextcloud/config/config.php hinzufügen:

'memcache.local' => '\OC\Memcache\Redis',
'memcache.locking' => '\OC\Memcache\Redis',
'memcache.distributed' => '\OC\Memcache\Redis',
'redis' =>
array (
  'host' => '/var/run/redis/redis-server.sock',
  'port' => 0,
  'timeout' => 1.5,
),

… in /etc/php/version/fpm/pool.d/www.conf folgendes auskommentieren:

env[HOSTNAME] = $HOSTNAME
env[PATH] = /usr/local/bin:/usr/bin:/bin
env[TMP] = /tmp
env[TMPDIR] = /tmp
env[TEMP] = /tmp

…in /etc/php/version/fpm/conf.d/20-mysqli.ini folgendes einfügen:

[mysql]
mysql.allow_local_infile=On
mysql.allow_persistent=On
mysql.cache_size=2000
mysql.max_persistent=-1
mysql.max_links=-1
mysql.default_socket=/var/lib/mysql/mysql.sock # Debian squeeze: /var/run/mysqld/mysqld.sock
mysql.default_host=localhost
mysql.connect_timeout=60
mysql.trace_mode=Off

… in /etc/nginx/nginx.conf den Eintrag „worker_processes“ auf „auto“ setzten.

… in /etc/redis/redis.conf folgendes ändern:

  • port 6789 zu port 0
  • Folgendes einfügen:
    unixsocket /var/run/redis/redis-server.sock
    unixsocketperm 770
  • anschließend nextcloud die Rechte für den redis socket erteilen:
    usermod -a -G redis www-data

Abschließend den Banana Pi neu starten:

shutdown -r now

Viel Spaß mit Nextcloud 😉

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

13 Gedanken zu “Banana Pi: Nextcloud installieren”