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...
- um das richtige Laufwerk handelt
- keine wichtigen Daten mehr drauf sind, da das Medium gelöscht wird
- 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!