In diesem Dokument wird eine möglichst einfache Installation des Nextcloud Servers auf einem eigenen Rechner beschrieben.

Das Vorgehen liefert am Ende eine Instanz, mit der man gut herumspielen und experimentieren kann. Die Instanz kann auch besonders einfach wieder weg geworfen werden, so dass eine erneute Installation nicht allzu teuer wird, wenn man als Währung Zeit und Nerven verwendet.

Der Installationsprozess der Nextcloud Software steht im Mittelpunkt. Seiteneffekte, Nebenüberlegungen und Optimierungen sollen möglichst außen vor bleiben. Es geht nur darum, die Software zum Laufen zu bringen.

Das System soll - wie gesagt - zum Kennenlernen und Ausprobieren dienen. Bei Angriffen durch Hacker, Mafia oder Nachrichtendienste ist das System nicht sicher.

Um Nextcloud betreiben zu können, bedarf es eines Unix Systems. Der Nextcloud Client läuft überall, der Server läuft nur unter Unix.

Weiter brauchen wir einen Webserver, eine Datenbank und PHP.

Die Beschreibung hier gilt für Debian, Ubuntu, Fedora und openSuse Distributionen. Die Installation von Komponenten ist abhängig von der Distribution, genauso wie Orte auf der Platte und einzelne Prozessschritte. Wo das der Fall ist, wird in der Doku entsprechend verzweigt.

Überlegungen zum System

Einige Gedanken, die man sich vorab machen sollte

Wahl der Distribution

Nextcloud läuft problemlos unter allen GNU/Linux Derivaten. Unter BSD auch.

Am besten ist es, Linux Mint oder Debian einzusetzen. openSUSE Leap geht auch.

Tipp: Wer zweifelt, sollte es mit Linux Mint probieren. Das ist mein absoluter Favorit in Sachen pflegeleicht.

Andere Distributionen eignen sich nicht so gut, weil:

  1. Arch Linux, openSUSE Tumbleweed oder Fedora haben sehr schnelle Releasewechsel. Das ist eine tolle Sache, aber bei jedem neuen Release des Basissystems besteht die Gefahr, eine Version von irgendwas (PHP z.B.) zu installieren, für die Nextcloud (noch) nicht freigegeben ist.
  2. Systeme, die mit vielen automatisch eingeschalteten Sicherheitsvorkehrungen kommen (z.B. alle Red Hat's), sind für eine produktive Umgebung gut und richtig. Für unsere Zwecke sind aber SELinux und Firewall so hilfreich, wie ein Arbeitshandschuh beim Kartoffelschälen.

Es ist auf jeden Fall sinnvoll, sich unter Nextcloud Server über die aktuellen Systemanforderungen zu informieren.

Tipp: Auch wenn es sich um einen Server handelt, macht es für den Anfang Sinn, eine graphische Oberfläche mit einzurichten.

Wahl des Webserver

Es kommen nur zwei Webserver in Frage: Apache oder nginx. Beide sind in allen Distros enthalten.

Tipp: Apache als Webserver einsetzen.

Weil:

  1. Doku für Apache ist weiter verbreitet, als für nginx.
  2. Ich will das Fass Apache versus nginx hier nicht aufmachen.
  3. Man muss sich für das Eine oder Andere entscheiden. Wir nehmen Apache.

Wahl Datenbank

Nextcloud kann mit diversen Datenbanken, (u.a. MariaDB, SQLite, Postgres, Oracle) betrieben werden. SQLite ist oft schon vorinstalliert. Trotzdem:

Tipp: MariaDB als Datenbank verwenden.

Weil:

  1. Die Installation von MariaDB ist ein Klacks.
  2. Was man sich an Ärger einfängt, wenn man was nimmt, nur weil es schon da ist (SQLite), weiß ich nicht.
  3. Vielleicht will man das System später ja ernsthaft einsetzen. Und man hat ja was gelernt. Wenn man MariaDB genommen hat, hat man zumindest nicht für die Tonne gelernt.

Wahl der Installationsquelle für Nextcloud

Der Nextcloud Server ist in allen mir bekannten Repositories enthalten und kann über den entsprechenden Paketmanager installiert werden. Trotzdem:

Tipp: Die Nextcloud Software vom Hersteller beziehen und nicht über den Paketmanager installieren.

Weil:

  1. Nextcloud wird heftig weiterentwickelt, und die Version im Repository der Distribution ist mit großer Wahrscheinlichkeit nicht auf dem neusten Stand. (Außer bei Arch Linux.)
  2. Diese Art der Software verbietet automatische Updates.
    Jede Nextcloud Installation muss angepasst werden. Die Anpassungen sind, verglichen mit der eigentlichen Installation, meist der viel größere Aufwand. Hat man den geleistet, will man nicht, das irgendein Automat, wie apt, rpm oder pacman, darin herum werkelt und u.U. alles wieder mit Standardwerten überschreibt.

Technische Vorbereitungen

Das System so vorbereiten, dass es Nextclod aufnehmen kann

Verzeichnisse und Rechte

Bei der Installation von Nextcloud kommen bestimmte Verzeichnisse ins Spiel und an bestimmten Stellen müssen Zugriffsrechte vergeben werden. Manche der Verzeichnisse sind vorgegeben, manche müssen gesetzt werde. Die vorgegebenen Verzeichnisse und Rechte sind von System zu System verschieden.

Übersicht

Die folgenden Namen sind gedachte Platzhalter. Sie werden hier in der Dokumentation benutzt und sind so gewählt, dass sie als shell-Variablen gesetzt werden können.

WWW_OWNER
Das ist der Eigentümer alle Dateien und Verzeichnisse, die mit dem Web zu tun haben. Das ist auch der user unter dem Apache läuft.
Der Eigentümer ist vorgegeben.
WWW_ROOT
Das ist das Verzeichnis, unter dem WWW Daten abgelegt werden. Dazu gehören die .html Dateien, aber auch Scripte und dann auch die Nextcloud Software und ihre Daten.
Das Verzeichnis ist vorgegeben.
DOC_ROOT
Das document root ist das Verzeichnis, in dem Apache nach Web Dateien sucht. Das DOC_ROOT liegt i.d.R. unter dem WWW_ROOT.
Das Verzeichnis ist vorgegeben.
SERVER_ROOT
Das Verzeichnis, unter dem die Konfigurationsdateien des Webservers abgelegt sind.
Das Verzeichnis ist vorgegeben.
SERVER_CONFIG
Ort und Name der zentralen Konfigurationsdatei für den Webserver.
Das Verzeichnis und der Name sind vorgegeben.
PHP_INI
Name und Pfad der für Nextcloud relevanten php.ini Datei.
Das Verzeichnis und der Name sind vorgegeben.
NC_ROOT
Unter diesem Verzeichnis wird die Nextcloud Software in ein Verzeichnis mit Namen nextcloud installiert. Die Software liegt also immer in $NC_ROOT/nextcloud. Da die Software vom Webserver ausgeführt wird, muss dieses Verzeichnis dem Webserver bekannt sein.
Das Verzeichnis wird bei der Installation bestimmt.
NC-DATA
In diesem Verzeichnis bewahrt Nextcloud die Nutzerdaten auf.
Das Verzeichnis wird bei der Installation bestimmt.

Konkrete Inhalte

Die Werte der Umgebungsvariablen sind von System zu System unterschiedlich. Die in den einzelnen Systemen existierenden Werte werden hier je System als shell-Variablen dargestellt.

Man kann diese Variablen per Hand setzen oder in seine .profile packen. Man kann sich die Inhalte auch einfach nur merken.

Ubuntu, Debian, Mint export WWW_OWNER=www-data
export WWW_ROOT=/var/www/
export DOC_ROOT=/var/www/html/
export SERVER_ROOT=/etc/apache2/
export SERVER_CONFIG=/etc/apache2/apache2.conf
export PHP_INI=/etc/php/8.X/apache2/php.ini

Das "X" in der Zuweisung zu PHP_INI steht für die Unterversion von PHP-8, also 8.1 oder 8.2 oder 8.3 oder sowas.

Zusätzliche Konfigurationen kommen nach $SERVER_ROOT/conf-available.

Fedora export WWW_OWNER=apache
export WWW_ROOT=/var/www/
export DOC_ROOT=/var/www/html/
export SERVER_ROOT=/etc/httpd/
export SERVER_CONFIG=/etc/httpd/conf/http.conf
export PHP_INI=/etc/php.ini

Zusätzliche Konfigurationen kommen nach $SERVER_ROOT/conf.d.

openSUSE export WWW_OWNER=wwwrun
export WWW_ROOT=/ŝrv/www/
export DOC_ROOT=/srv/www/htdocs
export SERVER_ROOT=/etc/apache2/
export SERVER_CONFIG=/etc/apache2/http.conf
export PHP_INI=/etc/php8/apache2/php.ini

Zusätzliche Konfigurationen kommen nach $SERVER_ROOT/conf.d.

Apache

Apache installieren

Apache wird mit den Paketmanager der Distribution installiert.

Eine Beschreibung, wie man Apache unter den verschiedenen Distributionen installiert findet sich in GNU/Linux Web-Entwicklungssystem installieren

Für ganz Schnelle gibt es die Kommandos je Distribution zum Aufklappen. (Die Dokumentation ist hilfreich, für den Betrieb aber nicht notwendig.)

Ubuntu, Debian, Mint sudo apt install apache2 apache2-doc
sudo systemctl enable --now apache2
Fedora sudo dnf install httpd httpd-manual
sudo systemctl enable --now httpd
openSUSE sudo zypper install apache2 apache2-doc
sudo systemctl enable --now apache2

Bei den Ansprüchen, wie wir sie hier haben, kann Nextcloud mit dem frisch ausgepackten Apache installiert und zum Laufen gebracht werden.

Die Einschränkungen sind:

  1. Ein frisch ausgepackter Apache kann kein https. Bei einem Webserver, der ins Netz geht, sollte man das zwar generell installieren, bei einem Server im Heimnetz ist es aber nicht so wichtig.
  2. Ein frisch ausgepackter Apache kennt keine Virtual Hosts und keine Alias Namen. D.h. Nextloud muss im document root installiert werden. Damit ist NC_ROOT = DOC_ROOT. Das ist nicht in bestimmten Situationen nicht glücklich und für produktiven Einsatz sollte man das ändern. Für zu hause geht es aber.

In dieser Doku wird von einem NC Verzeichnis im document root ausgegangen. Beispiele für die Konfiguration eines Alias oder eines Virtual Host unter Apache gibt es bei Nextcloud im Server Admin Manual

.

Mariadb

MariaDB installieren

MariaDB wird mit den Paketmanager der Distribution installiert.

Eine Beschreibung, wie man MariaDB unter den verschiedenen Distributionen installiert findet sich in GNU/Linux Web-Entwicklungssystem installieren

Für ganz Schnelle gibt es die Kommandos für die Installation zum Aufklappen.

Ubuntu, Debian, Mint sudo apt install mariadb-server mariadb-client
sudo systemctl enable --now mariadb
Fedora sudo dnf install mariadb-server
sudo systemctl enable --now mariadb
openSUSE sudo zypper install mariadb
sudo systemctl enable --now mariadb

MariaDB für Nextcloud Betrieb vorbereiten

Für den Betrieb von Nextcloud ist eine eigene Datenbank innerhalb von MariaDB und ein eigener Benutzer als deren Administrator notwendig.

Mit root anmelden

sudo mysql -p

Nextcloud Datenbank anlegen

create database nextcloud;

Nextcloud Benutzer anlegen

create user 'ncadmin'@'localhost' identified by 'SuperPasswort';

Rechte vergeben

grant all privileges on nextcloud.* to 'ncadmin'@'localhost';

Bitte die hier vergebenden Namen merken. Sie werden später gebraucht.

PHP

PHP Installieren

PHP ist in allen Distributionen enthalten und kann von dort mit dem Paketmanager installiert werden.

Worauf man achten muss, ist die Version. Heute (2023) ist PHP 8 überall vertreten und wird auch von den aktuellen Nextcloud Versionen unterstützt.

PHP Module installieren

Für den Betrieb von Nextcloud sind bestimmte Module erforderlich, die teilweise schon installiert sein können - oder auch nicht. Auf der Seite von Nextcloud PHP Modules & Configuration findet man eine Beschreibung der nötigen PHP Module.

Die Liste der Module ist schon ganz hilfreich. Allerdings haben die Pakete, in denen diese Module verpackt sind, je nach Distribution unterschiedliche Namen und man kann von der Modulbeschreibung nicht unbedingt auf den Paketnamen schließen. Es hat ein kleines Bisschen Ähnlichkeit mit der sonntäglichen Tätigkeit des Kreuzworträtsel-Lösens, die Kommandos für die Installation zusammenzustellen.

Die Kommandos sind natürlich wieder von Distribution zu Distribution unterschiedlich.

PHP Module unter Fedora sudo dnf install -y php php-gd php-intl php-json php-mbstring php-mysqlnd php-opcache php-pecl-apcu php-pecl-imagick php-zip
PHP Module unter Ubuntu installieren sudo apt install -y php php-gd php-imagick php-zip php-mbstring php-intl php-mysql php-curl php-gmp php-bcmath php-xml
PHP Module unter openSUSE installieren sudo zypper install php8 php8-bz2 php8-ctype php8-curl php8-dom php8-exif php8-fileinfo php8-gd php8-imagick php8-mysql php8-intl php8-mbstring php8-posix php8-sysvsem php8-zip php8-zlib

PHP konfigurieren (php.ini)

Bei der hier angepeilten Installation ist eine Anpassung der php.ini an sich nicht notwendig, Nextcloud läuft durchaus mit der Standardkonfiguration. Man wird im Betrieb nur ab und zu angemahnt, dass das Eine oder Andere nicht optimal konfiguriert ist.

Nextcloud installieren

Software beschaffen und installieren

Nextcloud Software installieren

Nextcloud bietet viele Möglichkeiten, sie Software zu installieren: als Container, als VM Appliance oder per Web Installer.

Hier wird der Königsweg, die manuelle Installation, beschrieben. Nextcloud hält dafür einen TarBall oder ein ZIP Archiv bereit.

Die Nextcloud Download Seite enthält alle gegenwärtigen und vergangenen Versionen. Die absolut aktuellste Version heißt einfach nur "latest".

Herunterladen Nextcloud als tar.bz2 Archiv

curl -O https://download.nextcloud.com/server/releases/latest.tar.bz2

Danach liegt der Tar Ball im Verzeichnis in dem man den Befahl abgesetzt hat.

Jetzt kommt die Stelle, an der der Ort der Nextcloud Software wirklich festgelegt wird. Wer sich entschieden hat, einen Alias für den Ort zu vergeben, wird jetzt wahrscheinlich nach $WWW_ROOT installieren. Wer den ganz einfachen Weg nehmen möchte, für den ist NC_ROOT=$DOC_ROOT.

Bitte sicherstellen, wo die Verzeichnisse auf dem Rechner tatsächlich liegen und den Platzhalter NC_ROOT korrekt ersetzen.

Archiv entpacken / installieren

sudo tar -xvjf latest.tar.bz2 -C $NC_ROOT

Beim Entpacken wird unter NC_ROOT ein Verzeichnis nextcloud angelegt, in dem sich die gesamte Software in lauffähigem Zustand befindet.

Als nächstes müssen wir unter dem Nextcloud Verzeichnis das Datenverzeichnis für Nextcloud anlegen. (Wir bleiben hier bei der 08/15 Methode.)

Nextcloud Datenverzeichnis anlegen

sudo mkdir $NC_ROOT/nextcloud/data

Das Nextcloud Verzeichnis gehört noch root. Es soll aber dem Eigentümer des Webservers gehören.

Eigentümer für Nextcloud Verzeichnis festlegen

sudo chown -R $WWW_OWNER:$WWW_OWNER $NC_ROOT/nextcloud

Setzt man SELinux ein, dann müssen an dieser Stelle die SELinux Regeln angepasst werden.

Nextcloud einrichten und aktivieren

Was jetzt noch fehlt, ist das, was in der Nextcloud Doku "Installation" genannt wird. Man sollte diese Schritte vielleicht besser "Aktivierung" oder "initiale Konfiguration" nennen, die die Software ja schon installiert ist.
Dabei erhält die Nextcloud einen internen Administrator, wird mit einer Datenbank und dem vorbereiteten Datenverzeichnis verbunden und es werden die ganzen Tabellen und Dateien angelegt, die für den Betrieb nötig sind.

Hat man eine grafische Oberfläche, ist es das Einfachste, diesen Schritt per Browser vorzunehmen. Man gibt als Ziel localhost/nextcloud in der Adresszeile ein und landet auf einer kleinen Webpage, die nach Name und Passwort für den Admin fragt und dann noch die Daten für die Datenbank haben will.

Sitzt man nicht vor dem Zielrechner, sondern arbeitet remote, so muss man statt localhost die Adresse des Zielrechners verwenden.

Sitzt man nicht vor dem Zielrechner, sondern arbeitet remote, so muss vorher die Firewall für den Service http auf dem Zielrechner freigeschaltet sein.

Bild: Eingaben für User und DB. Start der Nextcloud Installation.
Die Eingabemaske vor der tatsächlichen Installation.

Eingeben, abschicken, fertig. Hmm. Eingeben, abschicken, warten, fertig. Es dauert einen Moment, weil im Hintergrund so einiges passiert. U.a. werden die Verzeichnisse und Vorlagen im Datenverzeichnis und die ganzen Datenbanktabellen angelegt.

Da wir eh warten müssen, hier schnell ein paar Erklärungen zu den Feldern. Sie sind weitgehend selbsterklärend, aber vielleicht doch nicht so selbsterklärend, wie die Entwickler annehmen. (Das ist übrigens nie so.)

Username
Ein noch nicht existierender Nextcloud Benutzer mit Administrationsrechten. Der Benutzer wird vom System initial angelegt. Man sollte ihn später nur in Ausnahmefällen - im Idealfall nur zum Anlegen anderer Benutzer - benutzen.
Storage & Database
Hier wird das Datenbanksystem ausgewählt. In unserem Fall ist es MariaDB.
Database user
Der von uns in MariaDB angelegte Administrator und Eigentümer der Nextcloud Datenbank. Wir hatten ihn ncadmin genannt.
Database name
Die MariaDB Datenbank, die Nextcloud benutzen soll. Wir hatten sie nextcloud genannt.
Database host
Der Rechner, auf dem die Datenbank läuft. In unserem Fall ist es derselbe Rechner, auf dem auch Nextcloud installiert ist. Damit ist es aus Sicht der Nextcloud der localhost.

Nachdem der Hintergrundprozess durchgelaufen ist, landet man auf der Startseite der Nextcloud - aber nur fast. Man wird erst gefragt, ob man diverse Apps installiert haben möchte. Das möchte man. Deshalb beantwortet wir die Abfrage mit Install recommended apps und besorgen uns einen Kaffee. Die Installation der Apps ist ein recht aufwendiger Prozess, auch wenn er vollautomatisch im Hintergrund abläuft.

Bild: Vor dem Nextcloud Hintergrund eine Liste von Apps und Abfrage: Apss installieren?.
Installation von Standard Apps anstoßen.

Am Ende ist man als der Benutzer, den man als Administrator eingetragen hat, bei der Nextcloud angemeldet und kann loslegen.

Das ist etwas, womit sich diese Doku nicht mehr beschäftigt - ein wenig Jugend forscht sollte doch noch übrig bleiben.

Alles überprüfen

Überprüfen lässt sich die Installation am Besten, wenn man sich mit dem neuen Benutzer, der ja in der Gruppe admin ist, anmeldet und dann den Überlick über das System aufruft.

Bild: Benutzermenü geöffnet.
Das Menü für einen Benutzer in der Gruppe admin.
Bild: Links ein Seitenrandmenü, rechts der Überblick über den Zustand des Systems.
Nextcloud Systemüberblick.

Die Seite, die jetzt aufgeht, ist ein einziges Herumgemeckere an der vollbrachten Leistung. Beispielsweise wird dort angemahnt, dass keine https Verbindung benutzt wird. Desgleichen wird - in Rot - darauf hingewiesen, dass man sein data Verzeichnis bitte woanders hinlegen soll, und nicht im Installationsverzeichnis der Software unterhalb des document root lassen soll. Und noch so ca. 20 weitere Kleinigkeiten.

Diese Warnungen zeigen uns im Moment nur, dass das System sauber installiert wurde und lauffähig ist, sind also durch und durch positiv aufzufassen.

Will man das System zu Hause verwenden oder hat man es z.B. nur aufgesetzt, um eine Doku darüber schreiben zu können, braucht einen das auch nicht weiter zu stören.

Bei einem System im produktiven Einsatz, das vom Internet aus erreichbar ist, sind diese Warnungen aber durchaus ernst zu nehmen.

Top

Nach der Installation

Nacharbeit und erste Schritte.

Soweit so gut. Nextcloud läuft und kann verwendet werden.

Wie wir gesehen haben, meckert Nextcloud über ein paar falsch gesetzte Parameter. Davon werden aber nur einige bei Nextcloud selber gesetzt. Die meisten haben mit dem Thema "Sicherheit" oder "Performance" zu tun.

Ganz wesentlich beeinflusst wird das Verhalten von Nextcloud durch die Einstellungen bei Softwarepaketen, die von Nextcloud benutzt werden:

Das sollte man nicht aus den Augen verlieren. Aber hier wird nur kurz die Konfigurationsdatei von Nextcloud selber angesprochen

config.php anpassen

Die zentrale Konfigurationsdatei für Nextcloud heißt config.php und steht im Verzeichnis config unter dem Nextcloud Verzeichnis.

Nextcloud config Datei öffnen.

sudo nano $NC_ROOT/nextcloud/config/config.php

Nextcloud für andere Rechner öffnen

Die Nextcloud läuft, ist aber nur von dem Rechner aus erreichbar, auf dem sie auch installiert ist. Auch für eine klitzekleine Privatbüroinstallation ist das unbefriedigend.

In der Datei gibt es einen Abschnitt trusted-domains, in dem die IP Adressen oder Rechnernamen eingetragen sind, unter denen sich der Nextcloud Server angesprochen fühlt. Frisch nach der Installation steht dort nur localhost.

Das muss geändert werden. Hat man beispielsweise ein Heimnetz in dem die IP Adressen alle mit 192.168.1. anfangen, so öffnet die folgenden Aktion die Nextcloud für alle Rechner im Heimnetz, egal welche genaue IP Adresse der Nextcloud Server gerade hat.

trusted-domains vorher

...
'trusted-domains' =>
array (
0 => 'localhost',
),
...

trusted-domains nachher

...
'trusted-domains' =>
array (
0 => 'localhost',
1 => '192.168.1.*',
),
...

Das '*' Zeichen dient als Wildcard.

Bitte peinlich darauf achten, dass Kommata und Anführungsstriche richtig gesetzt und geschlossen sind. Nextcloud reagiert extrem sauer, wenn da was nicht stimmt.

Weil wir die config.php Datei einmal geöffnet haben, können wir auch gleich eine Kleinigkeit mit erledigen: Der Systemüberblick mahnt eine Standard-Telefon-Region an. Die tragen wir am Ende der Datei ein.

Telefon Standardregion anpassen. config.php vorher

...
'installed' => true,
);

Telefon Standardregion anpassen. config.php nachher

...
'installed' => true,
'default-phone-region' => 'DE',
);

Trouble und Sonstiges

Wenn doch was ist, was nicht sein darf und sonstige Sonderlocken

Fehler

Unspezifischer Fehler im Browser

Internal Server Error The server encountered an internal error and was unable to complete your request. Please contact the server administrator if this error reappears multiple times, please include the technical details below in your report. More details can be found in the webserver log.

Es ist schön und hilfreich, dass wir den Administrator verständigen sollen. Da wir das im Moment selber sind, können wir das auf dem kurzen Dienstweg erledigen.

Ursache: Diese Fehlermeldung erscheint bei Syntaxfehlern in der Konfigurationsdatei von Nextcloud.

Abhilfe: Konfigurationsdatei Zeile für Ziele durchgehen und besonders auf Kommata und Anführungszeichen achten. Sorry.

Zugriff auf Nextcloud Verzeichnis während der Installation nicht möglich

Eine Fehlermeldung erscheint direkt beim ersten Aufruf der Nextcloud Adresse im Browser Fenster und mahnt fehlende Rechte an.

Ursache: Nextcloud Verzeichnis gehört nicht dem Webserver.

Abhilfe: Eigentümer des Nextcloud Verzeichnisses korrekt auf $WWW_OWNER setzen.

Empfohlene Apps nach der Installation nicht vorhanden (bei SELinux)

Das Anlegen der empfohlenen Apps bei der Installation geht erfreulich schnell. Allerdings erscheinen sie auch nicht im Dashboard.

Ursache: Nextcloud konnte nicht auf fremde Rechner zugreifen, um die Apps zu holen, weil SELinux den Zugriff verhindert.

Abhilfe: Alles von vorne

  1. Nextcloud entfernen (siehe unten)
  2. Nextcloud DB und Verzeichnis neu einrichten
  3. SELinux sauber konfigurieren
  4. Nextcloud erneut installieren

Kling erst mal nach viel Arbeit, ist es aber nicht. In dem Zustand, in dem die Nextcloud und man selber sich gerade befindet, ist es auf jeden Fall einfacher neu zu installieren als die Installation der Apps per Hand nachzufummeln.

Anhang

Nextcloud deinstallieren

"Jede Ordnung fängt mit einem Papierkorb an." (Kurt Tucholsky)

Da Nextcloud eine Software ist, die überhaupt nicht in das Betriebssystem eingebunden wurde, ist die Deinstallation ungefährlich und einfach.

  1. Nextcloud Verzeichnis löschen cd $NC_ROOT
    sudo rm -r nextcloud
  2. Nextcloud Datenbank löschen sudo mysql -e "drop database nextcloud;"
  3. Nextcloud Datenbankanwender löschen sudo mysql -e "drop user 'ncadmin'@'localhost';"

Erledigt.

SELinux

Wenn auf dem Rechner SELinux aktiv ist, wird man mit Nextcloud nicht so ohne weiteres glücklich. Bevor man sich tief in SELinux einarbeitet oder das Ding komplett abschaltet, bieten wir hier eine pragmatische Zwischenlösung.

Der Webserver braucht Zugriff auf das Nextcloud Verzeichnis.

Das Nextcloud Verzeichnis komplett öffnen

sudo semanage fcontext -a -t httpd-sys-rw-content-t '/var/www/html/nextcloud(/.*)?' sudo restorecon -RF /var/www/html/nextcloud

Nextcloud braucht über den Webserver Zugriff auf fremde Domains.

Zugriff ins Netz erlauben

sudo setsebool -P httpd-can-network-connect 1

Wenn nach diesen Aktionen immer noch Probleme mit Nextcloud auftauchen, dann sollte man sich überlegen, ob man die erweiterte Sicherheit von SELinux wirklich braucht. Wenn ja, muss man durch, wenn nein, sollte man es abschalten.

Firewall

Wenn eine Firewall eingerichtet ist, muss für den Webserver ein Loch hinein gestemmt werden. Sollte das bei der Installation des Apache noch nicht geschehen sein, dann sollte es jetzt geschehen.

Dynamische Firewall unter Fedora für Apache freischalten

sudo firewall-cmd --permanent --zone=public --add-service=http
sudo firewall-cmd --permanent --zone=public --add-service=https
sudo firewall-cmd --reload

"Uncomplicated Firewall" unter Ubuntu für Apache freischalten

sudo ufw allow http
sudo ufw allow https

Der "Service" hinter dem Parameter --add-service heißt auch http wenn der eigentliche Service apache2 heißt