Unter Ubuntu Server 20.04 einen Nextcloud Server einzurichten benötigt unter Umständen einiges an Vorwissen.

Um den Weg zu eurem eigenen Nextcloud Server zu erleichtern mache ich für euch dieses einfache Tutorial.

 

Dieses Tutorial beschränkt sich auf eine Nextcloud Installation im Heimnetzwerk oder in einem kleinen Betrieb. Das Tutorial richtet sich an einen Privatanwender, welcher in seinem Heimnetzwerk ein NAS betreut oder gegebenenfalls in seinem Firmennetzwerk. Großanwender, welche entsprechend Servercluster für Ihre Cloud benötigen werden hier explizit nicht behandelt.

 

Den Server aufsetzen

 

 Einen basic V-Server aufsetzen zu können erachte ich für das einrichten einer Nextcloud als Voraussetzung und werde deshalb hier nicht weiter drauf eingehen.

Einschlägige Tutorials finden sich hier: https://googlethatforyou.com?q=Basic%20V-Server%20Setup

Auf der nächsten Seite erfahren Sie wie man einen Datenträger einhängt


Eine Festplatte einhängen

Grundsätzlich sollte das System nicht auf dem Speichermedium laufen, welches für die Cloud an sich eingesetzt wird, sodass neben Geschwindigkeitsvorteilen bei Lese und Schreibzugriffen gegebenenfalls im Falle eines Backups nur die Fesplatte getauscht werden muss.

Hierzu werrden wir ersteinmal eine Festplatte per USB oder SATA oder mSATA oder einem beliebigen gängigen Anschluss ein anschließen.

Anshcließend lassen wir uns mit hilfe der Kommandozeile die verfügbaren Laufwerke ausgeben

lsblk

 

Wir suchen nun anhand der Daten zum Verfügbaren Speicher das entsprechende Medium aus und löschen dieses Vollständig. Hierbei ist sicherzugehen, dass es sich dabei...

  1. um das richtige Laufwerk handelt
  2. keine wichtigen Daten mehr drauf sind, da das Medium gelöscht wird
  3. es sich auch nicht um das Speichermedium handelt auf dem das System installiert worden ist

Sind die 3 Bedingungen alle zutreffend, so geben wir nun den folgenden Befehl in die Kommandozeile ein

parted /dev/sd<a> "rm 1"

wobei wir bei das a in sda durch den vom System angegebenen Buchstaben ersetzen.

 

Achnleießend gehen wir sicher, dass das Speichermedium keine Partitionenn mehr hat

lsblk

 

Nun schreiben wir eine Partitonstabelle auf das Speichermedium

parted /dev/sd<a> "mklabel gpt"

 

Jetzt müssen wir eine Partition anlegen, mit dem Kommando

parted /dev/sd<a> "mkpart primary ext4 1M -1"

Der Partition verpassen wir nun ein EXT4 Dateisystem

mkfs -t ext4 /dev/sda1

 

Da in Linux basierten Systemen Laufwerke in Ordner eingehängt werde, sogenannte "Mountpoints", müssen wir einen solchen erzeugen

mkdir /mnt/hdd

 

Um sicherzustellen, dass sich die Bezeichnung des Gerätes nicht ändert, hngen wir das Gerät über die UUID ein, welche wir mit hilfe von folgendem Befehl finden

blkid

 

nun werden wir das Textverarbeitungstool "nano" verwenden um die Systemeigene Tabelle zur Verwaltung von Dateisysteminformationen zu bearbeiten

nano /etc/fstab

 

dazu fügen wir einfach an das Ende der Datei in einer neuen Zeile die mit blkid gefundene UUID an

UUID=xxxxxxxx-xxxx-xxxx-xxxxx-xxxxxxxxxxxx    /mmnt/hdd    ext4    defaults    0    1

Anschließend beenden wir nano mit der Tastenkombination [Strg + X], dem drücken von [Y], sowie dem drücken der [ENTER] Taste zum Speichern der Datei

 


Auf der nächsten Seite geht es um die Einrichtung des LAMP Servers


 

Den LAMP Server vorbereiten

Den Paketmanager Aktualisieren

Als erstes müssen wir einen LAMP Server aufsetzen. Hierzu Updaten wir erstmal die APT Paketverwaltung

apt-get update
apt-get upgrade

 

Installation des Apache2 Webservers

Darauf folgend benötigen wr zum Fortfahren den Webserver

apt install apache2

 

Im nächsten Schritt Installieren wir das aktuelle PHP 8.0

Hierzu müssen wir das Offizielle PHP Repository in unserem Paketmanager registrieren

apt install software-properties-common

 

Installation von PHP 8.0

Nun können wir PHP 8.0 installieren

apt install php8.0
add-apt-repository ppa:ondrej/php
apt update

 

Darüber hinaus benötigen wir einige Module, damit unsere Nextcloud Installation Ihre Arbeit optimal ableisten kann

apt install libapache2-mod-php php-zip php-dompdf php-xml php-mbstring php-gd php-curl php-imagick libmagickcore-6.q16-6-extra php-intl php-bcmath php-gmp php-cli php-json php-mysql php-zip php-gd  php-mbstring php-curl php-xml php-pear unzip php-apcu redis-server php-redis

 

PHP 8.0 Konfigurieren

Jetzt wo PHP 8.0 samt Modulen und Apache Webserver lauffähig installiert ist müssen wir die Konfiguration der Komponenten ein wenig anpassen, dazu bedienen wir uns des Systemwerkzeuges "nano", mit welchem wir über die SSH Verbindung mit Hilfe der Kommandozeile Textdateien modifizieren können, indem wir nano als Parameter die PHP Konfigurationsdatei "php.ini" mit samt pfad übergeben:

nano /etc/php/8.0/apache2/php.ini

In dieser Datei ändern wir nun folgende Werte:

memory_limit = 1024M
upload_max_filesize = 16G
post_max_size = 16G
date.timezone = Europe/Berlin
output_buffering = Off

 

Wir schließen das Kommandozeilentool der Tastenkombination [Strg + X] bestätigen das Speichern mit [Y], gefolgt von [ENTER].

 

Einrichtung der Datenbank

Nun bemnötigen wir eine Datenbank, in unserem Fall die

Maria DB

apt install mariadb-server

 

MariaDB liefert ein Shellscript mit um die Installation abzusichern, dazu rufen wir über die Kommandozeile folgenden Befehl auf

mysql_secure_installation

 

Nun kümmern wir uns um das Setup der Datenbank, mit dem Befehl

mysql

 

Es folgen einige SQL Befehle, wobein SQL für Structured Query Language steht

CREATE DATABASE nextcloud; 

 

Der Username und das Passwort sollten selbstverständlich sicher gewählt werden und hier innerhalb der Hochkommas entsprechend angepasst werden:

CREATE USER 'nextclouduser'@'localhost' IDENTIFIED BY 'password_here';

 

Dem neuen Datenbanknutzer gewähren wir nun die nötigen Rechte zur Verwaltung der Datenbank

GRANT ALL PRIVILEGES ON nextcloud.* TO 'nextclouduser'@'localhost';

 

Nun Speichern wir die Rechtesetzung

FLUSH PRIVILEGES;

 

und verlassen das Kommandozeilenwerkzeug der MySQL Datenbank mit dem Befehl:

EXIT;

Die Installation der Nextcloud

Als erstes Laden wir uns das Nextcloud Paket herunter,

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

entpacken dieses

unzip latest.zip

und verschieben es an den Zielort, nämlich den Root des Webservers

mv nextcloud /var/www/

 

Konfiguration des Apache2 Webservers

Es ist nun Zeit die Konfiguration des Apache2 Servers anzupassen, hierzu verwenden wir wieder nano

nano /etc/apache2/sites-available/000-default.conf

 

Wir passen die Datei so an, dass wir nun die hier gelisteten wertepaare vorliegen haben:

a2enmod rewrite
a2enmod headers
a2enmod env
a2enmod dir
a2enmod mime

 

Nachdem wir nano mit der Tastenkombination [Strg + X] geschlossen haben und mit dem drücken von [Y], gefolgt von [ENTER] das speichern bestätigt haben, starten wir Apache2 neu

systemctl restart apache2.service

Das Rechtemanagement

Sollten wir nun am Server eine Externe HDD oder SSD angeschlossen haben, was sich beispielsweise bei einem Nextcloud Mini Server anbietet, so müssen wir den Besitzer und Verwalter des Mountpoints mit chown übertragen

chown -R www-data:www-data /mnt/hdd/
chown -R www-data:www-data /var/www/nextcloud/

Anschließend erteilen wir noch die Rechte zum Lesen und schreiben, begrenzen jedoch die Rechte zur Ausführung

chmod -R 755 /var/www/nextcloud/ 

 

Fertig!


So, das wars, wir sind nun fertig. Zu guter letzt rufen wir auf unserem Server über den Browser die Startseite auf und arbeiten den dort nun vorgegebenen Workflow zum Einrichten eines Adminstrator Benutzers durch.
Fertig ist die Nextcloud!

Viel Spass!