Installation von Nextcloud unter Linux
Nick
Inhaltsverzeichnis [Verbergen]
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:
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.
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.
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.
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.
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.
Im folgenden die bei mir angezeigten Fehler- und Hinweismeldungen und wie ich sie behoben habe:
1. Zuerst öffnet ihr die PHP-Konfigurationsdatei. Der Pfad ist abhängig von der installierten PHP-Version. Achtet beim kopieren darauf, die Version im Pfad zu ändern.
nano /etc/php/7.2/apache2/php.ini
2. Sucht nach der Konfiguration "memory_limit" und ersetzt den eingetragenen Wert durch 512.
3. Datei speichern und Webserver neu starten.
1. Öffnet die Konfigurationsdatei eurer aktuellen Apache-Host-Konfiguration. Wenn ihr nichts an der Apache-Installation / Konfiguration geändert habt, dann ist es folgende Datei:
nano /etc/apache2/sites-available/000-default.conf
2.Fügt unter dem Punkt DocumentRoot /var/www/html folgendes ein:
3. Datei speichern und Webserver neu starten.
1. a2enmod rewrite
2. Webserver neu starten
Hinweis: Die Selbe Meldung gibt es nochmal mit carddav und wird gleich behandelt.
1. apt install php-apcu
2. Öffnet die config.php Datei der Nextcloud Instanz.
nano /var/www/html/config/config.php
3. Fügt am Ende (Achtung! Inerhalb des Arrays, also vor der letzen runden Klammer) folgendes ein:
'memcache.local' => '\OC\Memcache\APCu',
4. Datei speichern und Webserver neu starten.
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.