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/nginxcd /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/
folgendes auskommentieren:version
/fpm/pool.d/www.conf
env[HOSTNAME] = $HOSTNAME
env[PATH] = /usr/local/bin:/usr/bin:/bin
env[TMP] = /tmp
env[TMPDIR] = /tmp
env[TEMP] = /tmp
…in /etc/php/
folgendes einfügen:version
/fpm/conf.d/20-mysqli.ini
[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
zuport 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 😉
13 Gedanken zu “Banana Pi: Nextcloud installieren”
I have been reading out many of your stories and i can state clever stuff. I will definitely bookmark your site.
Thank you very much 🙂
„Greetings! Very helpful advice in this particular post!
It’s the little changes which will make the greatest changes.
Thanks a lot for sharing!“
Thanks designed for sharing such a fastidious opinion, article is nice, thats why i have read it fully
Hi,
danke für die Anleitung. Hat prima funktioniert. Kleiner Hinweis: Ich musste noch php5-gd installieren. Dann lief alles rund!
Nochmal danke und schönen Gruß
Hallo, ich habe versucht nach deiner Anleitung vorzugehen. „IchHabeKeinenNamen“ hat schon recht mit php5-fpm; das installiert sich nicht von alleine, bei mir zumindest nicht…
Das wird wohl auch für den Fehler beim /etc/init.d/nginx restart && /etc/init.d/php5-fpm restart ausmachen, oder ?
Ich meine, da gibt es gleich zwei Fehlermeldungen…:
/etc/init.d/nginx restart && /etc/init.d/php5-fpm restart
[FAIL] Restarting nginx: nginx Failed,
zsh: no such file or directory: /etc/init.d/php5-fpm restart
Wäre schön, wenn Du nochmal erläutern kannst, wiso Du php5-fpm hast und ich/wir nicht..
Und warum nginx bei mir nicht startet…
Hallo ttt,
vielen Dank für deinen Kommentar. Bei mir hatte es immer funktioniert, da ich mir ein kleines Script dafür gebastelt hatte. Dort hatte ich
php-fpm
schon seit Monaten drin, deswegen habe ich den Fehler auf meiner Seite nicht entdeckt. Ich habe es jetzt korrigiert.Installiere es einfach nach, mit
apt-get install php-fpm
danach sollte alles funktionieren.
Vielen Dank & einen schönen Sonntag,
Daniel
Und wo genau installierst du Nextcloud? Wann startest du wieder den apache server? und was soll dieses script mit der ip? (server_name 192.168.0.111;)
Hallo Derskeptiker,
mir ist gerade aufegfallen, dass ich das herunterladen der Nextcloud gar nich beschrieben habe. Das werde ich demnächst nachholen. Vielen Dank, dass du mich darauf aufmerksam gemacht hast.
Du wechselst in das Verzeichniss /var/www
Dann downloadest du die Nextcloud 12: wget https://download.nextcloud.com/server/releases/nextcloud-12.0.11.zip
Nun noch ein unzip nextcloud-12.0.11.zip
Und die Rechte anpassen: chown -R www-data:www-data nextcloud && chmod -R 755 nextcloud
Den Apache Server starten wir nie wieder, da wir mit nginx arbeiten und nicht mit apache.
Das Script mit der IP ist die Konfigurationsdatei für den Webserver, damit er weiß, welche Dateien er wo zur Verfügung stellen soll. Außerdem wird daran geregelt, dass Dateien hochgealden werden können, etc.
Falls noch weitere Fragen bestehen, einfach antworten 😉
Danke für deinen Kommentar!
Moin,
ich wollte mir anhand deiner Anleitung die nextcloud installieren.
Ein paar „Fehler“ sind mir aufgefallen:
– php5-fpm muss noch zur apt-get install hinzugefügt werden
– Bei der SSL-Generierung vermute ich mal dass du den Pfad /etc/ssl/nginx anstelle von /etc/nginx/ssl meinst
– Du hast leider hier nicht beschrieben wie man überhaupt an die Nextcloud kommt. Ich habe mir die 12er heruntergeladen, aber da ist nur eine leere Default-Config. Wie geht es von hier aus weiter?
Vielen Dank für das Lob! Der Kommentar ist leider in den Spam Ordner gerutscht. Deswegen die späte Antwort.
Warum muss php5-fpm ergänzt werden? Davon steht nichts auf der offiziellen Webseite (https://docs.nextcloud.com/server/12/admin_manual/installation/source_installation.html#prerequisites-for-manual-installation). Und wenn ich mich recht erinnere, habe ich es auch nicht gebraucht?! Oder bin ich da gerade blind?
Nein, der Pfad für die SSL Generierung ist korrekt. Du kannst natürlich auch einen anderen Pfad verwenden, musst dann aber die verlinkte Config Datei anpassen (ssl_certificate und ssl_certificate_key). Ich sortiere die SSL Zertifiakte eben gern in /etc/nginx/ssl ein. Das ist aber eine persöhnliche Präferenz.
Wie man die Nextcloud downloadet habe ich leider vergessen zu schreiben. Ich werde die Anleitung dahingehend korrigieren.
Für dich zur schnellen Hilfe eine Kurzanleitung:
Du wechselst in das Verzeichniss /var/www
Dann downloadest du die Nextcloud 12: wget https://download.nextcloud.com/server/releases/nextcloud-12.0.11.zip
Nun noch ein unzip nextcloud-12.0.11.zip
Und die Rechte anpassen: chown -R www-data:www-data nextcloud && chmod -R 755 nextcloud
Und noachmal sorry für die späte Antwort!
Schade es funktioniert mit der Anleitung nicht.
Der nginx startet nicht und wenn ich deinen Tipp :
„Installiere es einfach nach, mit
apt-get install php-fpm
danach sollte alles funktionieren.“
durchführe erhalte ich folgende Meldung:
„/etc/ssl/nginx # Abhängigkeitsbaum wird aufgebaut. 🙁
zsh: command not found: Abhängigkeitsbaum“
Kannst du da vielleicht helfen??
LG
Frank.
Hallo Frank,
es erscheint mir sehr komisch, dass die Zeile „/etc/ssl/nginx“ erscheint, wenn du „apt-get install php-fpm“ eingibst. Das ist defacto nicht möglich.
Das die shell hier Abhängigkeitsbaum nicht finden kann, deutet darauf hin, dass du etwas falsches eingegeben hast.
Die Installation von php-fpm hat auch nichts mit nginx zu tun. Ich verstehe daher nicht den Zusammenhang. Wenn nginx nicht startet, hilft es auch nicht, php-fpm zu installieren.
Kannst du bitte nocheinmal exakt das, was du eingegeben hast, hier in Anführungszeichen posten? Und es wäre hilfreich ein paar Informationen über dein System zu haben (Raspberry Pi oder Banana Pi? Welche Version von Bananian?) und Fehlermeldungen. Damit meine ich nicht nur Auszüge, sondern „Eingabe xyz“ führt zu folgendem Fehler: „Fehler xyz“. Sonst kann ich dir leider nicht helfen.
Viele Grüße
Daniel