Beitrag: #21 - Nextcloud is einfach geil - So setzt du deine eigene auf!



Inhaltsverzeichnis

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 Spaß!




Zum Abschluss

Die Erstellung dieser Texte ist eine herausfordernde Arbeit und mega Aufwändig!

Ich möchte das ganze einfach weils mich selbst anpisst werbefrei halten... Daher folgendes Anliegen:


  • ➡️ Wenn du meine Arbeiten als hilfreich empfindest, so fühl dich gern frei Danke zu sagen  :) 
  • ➡️ Vielleicht ist auch unter meinen ausgewählten Supplements  was für dich dabei! 
  • ➡️ Lass dir auch nicht die Angebote meines Shops  entgehen! 

bisherige Besucher: 0