Installation von Nextcloud unter Linux

Nextcloud: Eigenen Cloudservice installieren
Nextcloud: Eigenen Cloudservice installieren

Was ist Nextcloud?

Nextcloud ist eine Open Soruce Software, welche von der Nextcloud GmbH seit Juni 2016 entwickelt wird und ist eine Fileshare- und mittlerweile auch Kollaborationsplattform. Das Prinzip ist vergleichbar mit der bekannten Dropbox-Plattform. Nur liegt der wichtige Unterschied darin, dass eine Nextcloud-Instanz auf dem eigenen Server bzw. einem Webspace installiert werden kann.


Ziel ist die Unabhängigkeit des Benutzers von Dienstleistern und die genaue Kontrolle über die eigenen Daten. Außerdem kann alles als Speicher genutzt werden (externe Festplatten, USB-Sticks, NAS). Das sorgt dafür, dass der Speicher im Verhältnis zu Cloud-Anbietern recht günstig ist. Nextcloud legt darüber hinaus großen Wert darauf, dass die Daten überall abrufbar sind. Aus diesem Grund gibt es fast für jedes Betriebssystem einen Nextcloud-Client und verschiedene APIs für den File-Zugriff.

Vorbereitung

Einleitung

Vorbereitend müssen einige Pakete zu unserem Linux-System hinzugefügt werden bevor wie die eigentliche Nextcloud-Software installiert werden kann.

Ich für meinen Teil melde mich immer vorher mit sudo su als Administrator bzw. root-Nutzer an, damit nicht vor jeden Befehl sudo gesetzt werden muss.

Webserver

apt install apache2


Nachdem das Paket erfolgreich installiert wurde, wird der Webserver automatisch gestartet. Um diesen zu testen könnt ihr die IP-Adresse oder den DNS-Namen eures Servers einmal im Browser eingeben. Bei einer erfolgreichen Installation müsste eine Apache-Testseite erscheinen.

Datenbank

apt install mysql-server mysql-client


Es wird sowohl der eigentliche Server installiert als auch ein Client, damit wir uns später via Kommandozeile an den mysql-Server anmelden können, um die nötige Datenbank zu erstellen. Wenn die beiden Pakete installiert wurden, dann führen wir ein kleines Script aus um die mysql-Instanz ein wenig abzusichern.


sudo mysql_secure_installation


In der ersten Frage wird nachgefragt, ob das Plugin zum Testen der Passwortstärke installieren werden soll. Ich persönlich installiere das Plugin nicht mit, weil ich der Meinung bin, dass weniger Plugins mehr Sicherheit bedeuten und außerdem sollte es gerade im Bereich von Storage und Datenbanken logisch sein, dass man starke Passwörter verwendet.


Danach wird ein root-Passwort gesetzt. Dieses ist wichtig und sollte sich dringend gemerkt werden.


Darauffolgend wird gefragt, ob der Testbenutzer und die Testdatenbank gelöscht werden sollen und ob der Remotelogin mit dem root-Nutzer verboten werden soll. Hier kann alles mit einem Enter bestätigt werden.

PHP

apt install php libapache2-mod-php php-mysql


Es wird PHP und die passenden Plugins für den Apache-Webserver und die mysql-Datenbank installiert. Es sollte nun auf jeden Fall geprüft werden, ob PHP und die Integration mit Apache erfolgreich geklappt hat.


echo "<?php phpinfo(); ?>" >> /var/www/html/info.php


Mit dem Befehl wird im Hauptverzeichnis des Webservers eine PHP-Testdatei eingelegt. Diese Datei ruft ihr ebenfalls in eurem Browser auf, indem ihr hinter die IP-Adresse oder den DNS-Namen ein /info.php setzt. Erscheint nun eine passende Informationsseite, hat die Installation einwandfrei funktioniert.

Datenbank konfigurieren

Nun fehlt nur noch ein Schritt bis zur eigentlichen Installation von Nextcloud. Die Erstellung und Konfiguration der Datenbank.

Mit einem mysql -u root -p melden wir uns am mysql-Server an. Hierbei wird das root-Passwort abgefragt, welches ihr eben während der Installation gesetzt habt.

Danach können folgende Befehle nacheinander ausgeführt werden:


Code
  1. mysql> CREATE USER 'nextcloud'@'localhost' IDENTIFIED BY 'passwort';
  2. mysql> CREATE DATABASE nextcloud;
  3. mysql> GRANT ALL PRIVILEGES ON nextcloud . * TO 'nextcloud'@'localhost';
  4. mysql> FLUSH PRIVILEGES;
  5. mysql> exit


Es wird also erst ein Benutzer nextcloud angelegt, dem ihr ein Kennwort zuweist. Achtung: Beim kopieren der Befehle darauf achten, dass ihr das Passwort auch durch euer eigenes ersetzt.

Dann wird eine gleichnamige Datenbank erstellt. Der Benutzer nextcloud bekommt nun auf die Datenbank nextcoud Alle Rechte. Die Änderungen werden übernommen und es wird sich ausgeloggt.

Installation der Nextcloud

Download

Nextcloud bietet mehrere Installationsmöglichkeiten. In diesem Artikel nutze ich den Webinstaller.

Code
  1. cd /var/www/html
  2. wget "https://download.nextcloud.com/server/installer/setup-nextcloud.php"

Hinweis: Den Downloadlink habe ich von der offiziellen Nextcloud-Website. Klickt oben auf "Web Installer" und kopiert ihr den Link, der in Punkt 1 hinter dem Wort "here" hinterlegt ist.

Installation

Navigiert nun im Browser zu der gerade runtergeladenen Datei. Gebt dazu wieder die IP-Adresse oder den DNS-Namen des Servers ein und ergänz am Ende ein /setup-nextcloud.php. Nun wird der Installationsassistent gestartet, der euch durch die weitere Installation führt.


Bei mir erscheint zuerst ein Fenster "Dependency Check". Es werden alle fehlenden aber nötigen PHP-Pakete gelistet.


Nextcloud Installation Dependency Check


Ich konnte alle Abhängigkeiten mit folgendem Befehl nachinstallieren:

apt install php-zip php-dom php-xml php-mbstring php-gd php-curl


Wenn bei euch andere Pakete benötigt werden, dann könnt ihr diese auf dem selben Weg nachinstallieren. Aber achtet darauf, dass die PHP-Pakete nicht immer genau so heißen, wie sie auf der "Dependancy Check"-Seite heißen. Teilweise werden nur "Teilpakete" angezeigt, die in anderen Paketen oder Sammlungen enthalten sind. Hier hilf eine kurze Google-Suche schnell weiter.


Es ist außerdem zu sehen, dass Schreibrechte für den Webserver-Benutzer auf das aktuelle Verzeichnis benötigt werden. Hierzu gebt ihr folgendes ein: chown -R www-data:www-data /var/www/html/

Wenn beides erledigt wurde, dann wird der Werbserver neu gestartet (systemctl restart apache2.service) und die Webseite neu geladen.

Jetzt wird gefragt in welchem Verzeichnis Nextcloud installiert werden soll. Da wir uns schon im Hauptverzeichnis des Webservers befinden, löschen wir den Placeholder in der Textbox und geben einen einzelnen Punkt ein. Das sorgt dafür, dass die Instanz in das aktuelle Verzeichnis installiert wird.


Nextcloud Installation Directory


Nun legen wir unserem Admin-Account fest, den wir später für die erste Anmeldung in die Nextcloud benötigen. Das Datenverzeichnis könnt ihr so lassen. Außerdem werden die Datenbankinformationen, die wir in der Vorbereitung erstellt haben, eingetragen. Mit einem Klick auf "Installation abschließen" wird das ganze nun installiert und gespeichert. Das kann eine Weile dauern.


Nextcloud Admin Account And Data Directory Nextcloud Database Credentials

Sicherheitsmeldungen und Fehler beheben

Nach der Installation und dem ersten Login mit dem Admin-Benutzer navigieren wir in die Einstellungen unter den Punkt Verwaltung auf die "Übersicht"-Seite. Auf der Seite werden Sicherheits- & Einrichtungswarnungen angezeigt, die behoben werden sollten um die Sicherheit und den vollen Funktionsumfang der Nextcloud-Instanz zu gewährleisten.


Nextcloud Warnings




Im folgenden die bei mir angezeigten Fehler- und Hinweismeldungen und wie ich sie behoben habe:


Die HTTPs-Meldung ignorieren wir an dieser Stelle, weil sich der Artikel ausschließlich auf eine Installation im lokalen Heimnetz beschränkt. Außerdem wird bei mir noch eine Meldung für zusätzlich benötigte PHP-Pakete angezeigt. Wie PHP-Pakete installiert werden , habe ich schon in einem vorherigen Teil des Artikels erklärt.

    Über den Autor

    Moin zusammen,

    ich bin begeisterter Smarthome-Fan und beschäftige mich mit der dazugehörigen Soft- und Hardware.
    Durch meinen Beruf als Fachinformatiker - Systemintegration kenne ich mich gut mit Netzwerktechnik und Linux aus.


    Ich bin makesmart beigetreten, weil ich der Community helfen möchte alle Fragen zu beantworten und den Bereich von DIY und Smarthome voran zu treiben.


    Kommentare 2

    • Ratet mal wer jetzt ne Nextcloud auf seinem Raspberry Pi am laufen hat... 👍🏻

    • Oh das trifft sich super!

      Wollte in mein laufendes Projekt automatische Backups einbauen.

      Bei mir sind die direkt mit der Nextcloud verknüpft. Dann kann ich ja direkt am Ende dieses Artikels ansetzen!


      Also danke für den super Artikel :)