Zum Inhalt

Cloud-Server mit Nextcloud

Voraussetzungen

  • Server mit Rocky Linux (Sie können Nextcloud auf jeder Linux-Distribution installieren, das Verfahren hier setzt jedoch voraus, dass Sie Rocky verwenden).
  • Efahrung mit der Kommandozeile für Installation und Konfiguration.
  • Sicheren Umgang mit einem Kommandozeilen-Editor. Für dieses Beispiel wird vi verwendet, Sie können jedoch auch Ihren bevorzugten Editor verwenden, falls Sie einen haben.
  • Dieses Verfahren umfasst die Installationsmethode mit der .zip-Datei. Sie können Nextcloud auch mit einer Snap-Anwendung installieren.
  • Dieses Verfahren verwendet das Apache-Dokument sites enabled (später verlinkt) für die Verzeichniseinrichtung.
  • Dieses Verfahren verwendet auch die mariadb-server-Härtung (ebenfalls später verlinkt) für die Datenbankeinrichtung.
  • In diesem Dokument wird davon ausgegangen, dass Sie root sind oder Ihre Berechtigungen mit sudo erhöhen können.
  • Die hier verwendete Beispieldomäne ist yourdomain.com.

Einleitung

Wenn Sie für eine Serverumgebung für ein großes (oder auch kleines) Unternehmen verantwortlich sind, könnten Sie die Verwendung von Cloud-Anwendungen in Betracht ziehen. Durch die Arbeit in der Cloud können Sie Ihre eigenen Ressourcen für andere Dinge freisetzen, dies hat jedoch auch eine Kehrseite, nämlich den Verlust der Kontrolle über die Daten Ihres Unternehmens. Wenn es zu einer Kompromittierung der Cloud-Anwendung kommt, könnten Sie auch die Daten Ihres Unternehmens gefährden.

Indem Sie die Cloud wieder in Ihre eigene Umgebung integrieren, können Sie die Sicherheit Ihrer Daten wiederherstellen, allerdings auf Kosten Ihrer Zeit und Energie. Manchmal lohnt es sich, diese Kosten in Kauf zu nehmen.

Nextcloud bietet eine Open Source Cloud mit Fokus auf Sicherheit und Flexibilität. Beachten Sie, dass der Aufbau eines Nextcloud-Servers eine gute Übung ist, auch wenn Sie sich letztendlich dafür entscheiden, Ihre Cloud extern zu betreiben. Das folgende Verfahren befasst sich mit der Einrichtung von Nextcloud auf Rocky Linux.

Nextcloud — Installation

Installation und Konfiguration der Repositories und Modulen

Für diese Installation benötigen Sie zwei Repositories. Sie müssen EPEL (Extra Packages for Enterprise Linux) und das Remi Repository für RL10 installieren.

Anmerkung

Während Rocky Linux 10 die mindestens erforderliche PHP-Version 8.3 enthält, enthält das Remi-Repository andere für Nextcloud erforderliche PHP-Pakete.

So installieren Sie EPEL:

dnf install epel-release

Um das Remi-Repository zu installieren, führen Sie Folgendes aus:

dnf install https://rpms.remirepo.net/enterprise/remi-release-10.rpm

Führen Sie dann dnf upgrade erneut aus.

Führen Sie Folgendes aus, um eine Liste der verfügbaren PHP-Module anzuzeigen:

dnf module list php

Dies gibt Ihnen diese Ausgabe für Rocky Linux 10:

Remi's Modular repository for Enterprise Linux 10 - x86_64
Name                   Stream                      Profiles                                      Summary                                  
php                    remi-7.4                    common [d], devel, minimal                    PHP scripting language                   
php                    remi-8.0                    common [d], devel, minimal                    PHP scripting language                   
php                    remi-8.1                    common [d], devel, minimal                    PHP scripting language                   
php                    remi-8.2                    common [d], devel, minimal                    PHP scripting language                   
php                    remi-8.3                    common [d], devel, minimal                    PHP scripting language                   
php                    remi-8.4                    common [d], devel, minimal                    PHP scripting language

Hint: [d]efault, [e]nabled, [x]disabled, [i]nstalled

Verwenden Sie das neueste PHP, mit dem Nextcloud kompatibel ist. Im Moment liegt dieser bei 8.4? Aktivieren Sie dieses Modul mit:

dnf module enable php:remi-8.4

Um zu sehen, wie sich dies auf die Ausgabe der Modulliste auswirkt, führen Sie den Befehl module list erneut aus. Neben 8.3 sehen Sie dann das [e]:

dnf module list php

Die Ausgabe ist bis auf diese Zeile dieselbe:

php                    remi-8.4 [e]                   common [d], devel, minimal                  PHP scripting language

Installation der Pakete

Das Beispiel hier verwendet Apache und MariaDB. Um die benötigten Pakete zu installieren, gehen Sie wie folgt vor:

dnf install httpd mariadb-server vim wget zip unzip libxml2 openssl php84-php php84-php-ctype php84-php-curl php84-php-gd php84-php-iconv php84-php-json php84-php-libxml php84-php-mbstring php84-php-openssl php84-php-posix php84-php-session php84-php-xml php84-php-zip php84-php-zlib php84-php-pdo php84-php-mysqlnd php84-php-intl php84-php-bcmath php84-php-gmp

Konfiguration

Apache Konfiguration

Stellen Sie apache so ein, dass es beim Booten gestartet wird:

systemctl enable httpd

Und dann starten Sie den Dienst:

systemctl start httpd

Erstellen der Konfiguration

Im Abschnitt Voraussetzungen gab es die Angabe, dass Sie für Ihre Konfiguration das Verfahren Apache Sites Enabled verwenden sollten. Klicken Sie auf dieses Verfahren, richten Sie dort die Grundlagen ein und kehren Sie dann zu diesem Dokument zurück, um fortzufahren.

Für Nextcloud müssen Sie die folgende Konfigurationsdatei erstellen:

vi /etc/httpd/sites-available/com.yourdomain.nextcloud

Mit folgendem Inhalt:

<VirtualHost *:80>
  DocumentRoot /var/www/sub-domains/com.yourdomain.nextcloud/html/
  ServerName  nextcloud.yourdomain.com
  <Directory /var/www/sub-domains/com.yourdomain.nextcloud/html/>
    Require all granted
    AllowOverride All
    Options FollowSymLinks MultiViews
    <IfModule mod_dav.c>
      Dav off
    </IfModule>
  </Directory>
</VirtualHost>

Speichern Sie anschließend Ihre Änderungen (mit Shift+:+w+q+! im Falle vi).

Erstellen Sie als Nächstes einen Link zu dieser Datei in /etc/httpd/sites-enabled:

ln -s /etc/httpd/sites-available/com.yourdomain.nextcloud /etc/httpd/sites-enabled/

Verzeichnis anlegen

Wie zuvor in der Konfiguration erwähnt, müssen Sie das DocumentRoot erstellen. So gehen Sie vor:

mkdir -p /var/www/sub-domains/com.yourdomain.com/html

Hier installieren Sie Ihre Nextcloud-Instanz.

PHP Konfiguration

Sie müssen die Zeitzone für PHP einstellen. Öffnen Sie dazu php.ini mit dem Texteditor Ihrer Wahl:

vi /etc/opt/remi/php84/php.ini

Suchen Sie dann folgende Zeile:

;date.timezone =

Entfernen Sie das Kommentarzeichen (;) und stellen Sie die Zeitzone ein. Für diese Beispielzeitzone können Sie Folgendes eingeben:

date.timezone = "America/Chicago"

ODER

date.timezone = "US/Central"

Speichern und beenden Sie anschließend die Datei php.ini.

Beachten Sie, dass Ihre Zeitzone in der Datei php.ini mit der Zeitzoneneinstellung Ihres Computers übereinstimmen sollte, damit alles consistent bleibt. Um herauszufinden, was das ist, gehen Sie wie folgt vor:

ls -al /etc/localtime

Sie sollten ungefähr Folgendes sehen, vorausgesetzt, Sie haben Ihre Zeitzone bei der Installation von Rocky Linux eingestellt und leben in der Central Time Zone:

/etc/localtime -> /usr/share/zoneinfo/America/Chicago

MariaDB-Server – Konfiguration

Stellen Sie mariadb-server so ein, dass es beim Booten gestartet wird:

systemctl enable mariadb

Und dann starten Sie den Dienst:

systemctl restart mariadb

Verwenden Sie, wie bereits zuvor angegeben, das Setup-Verfahren zum Härten von mariadb-server für die Erstkonfiguration.

Installieren von .zip

Die nächsten Schritte setzen voraus, dass Sie per ssh mit Ihrem Nextcloud-Server verbunden sind und eine Remote-Konsole geöffnet ist:

  • Navigieren Sie zur Nextcloud-Website.
  • Bewegen Sie den Mauszeiger über Download, um ein Dropdown-Menü zu öffnen.
  • Klicken Sie auf Nextcloud server.
  • Klicken Sie auf Download server archive.
  • Klicken Sie mit der rechten Maustaste auf Get ZIP file und kopieren Sie den Link.
  • Geben Sie in Ihrer Remote-Konsole auf dem Nextcloud-Server wget und dann ein Leerzeichen ein und fügen Sie das ein, was Sie gerade kopiert haben. Sie sollten etwas Ähnliches wie das Folgende erhalten: wget https://download.nextcloud.com/server/releases/latest.zip.
  • Sobald Sie die Eingabetaste drücken, beginnt der Download der ZIP-Datei und wird schnell abgeschlossen.

Sobald der Download abgeschlossen ist, extrahieren Sie die Nextcloud-ZIP-Datei mit:

unzip latest.zip

Kopie vom Inhalt und Ändern von Berechtigungen

Nachdem Sie den Schritt zum Extrahieren der ZIP-Datei abgeschlossen haben, sollten Sie jetzt ein neues Verzeichnis in /root mit dem Namen nextcloud haben. Wechseln Sie in das Verzeichnis:

cd nextcloud

Kopieren oder verschieben Sie den Inhalt in DocumentRoot:

cp -Rf * /var/www/sub-domains/com.yourdomain.nextcloud/html/

ODER

mv * /var/www/sub-domains/com.yourdomain.nextcloud/html/

Der nächste Schritt besteht darin, sicherzustellen, dass apache Eigentümer des Verzeichnisses ist. So gehen Sie vor:

chown -Rf apache.apache /var/www/sub-domains/com.yourdomain.nextcloud/html

Aus Sicherheitsgründen sollten Sie auch den Ordner data von innerhalb nach außerhalb des DocumentRoot verschieben. Dies geschieht mit dem folgenden Befehl:

mv /var/www/sub-domains/com.yourdomain.nextcloud/html/data /var/www/sub-domains/com.yourdomain.nextcloud/

Nextcloud-Konfiguration

Stellen Sie sicher, dass Ihre Dienste ausgeführt werden. Wenn Sie die vorherigen Schritte befolgt haben, sollten sie bereits ausgeführt werden. Zwischen den ersten Dienststarts sind mehrere Schritte ausgeführt worden. Starten Sie sie daher zur Sicherheit neu:

systemctl restart httpd
systemctl restart mariadb

Wenn alles neu gestartet wird und keine Probleme auftreten, können Sie fortfahren.

Um die Erstkonfiguration durchzuführen, laden Sie die Site in einem Webbrowser:

http://your-server-hostname/ (ersetzen Sie dies durch Ihren tatsächlichen Hostnamen)

Vorausgesetzt, Sie haben bisher alles richtig gemacht, sollte ein Nextcloud-Setup-Bildschirm angezeigt werden:

nextcloud login screen

Es gibt einige Dinge, die Sie anders als die Standardeinstellungen machen sollten:

  • Legen Sie oben auf der Webseite unter Create an admin account den Benutzernamen und das Passwort fest. Geben Sie für dieses Beispiel admin ein und legen Sie ein sicheres Passwort fest. Denken Sie daran, es an einem sicheren Ort (z. B. einem Passwort-Manager) zu speichern, damit Sie es nicht verlieren. Auch wenn Sie in dieses Feld etwas eingegeben haben, drücken Sie nicht Enter, bis Sie alle Felder ausgefüllt haben.
  • Ändern Sie im Abschnitt Storage & database den Speicherort des Datenordners vom Standard-Dokumentenstamm dorthin, wo Sie den Datenordner zuvor verschoben haben: /var/www/sub-domains/com.yourdomain.nextcloud/data.
  • Wechseln Sie im Abschnitt Configure the database von SQLite zu MySQL/MariaDB, indem Sie auf diese Schaltfläche klicken.
  • Geben Sie den MariaDB-Root-Benutzer und das Passwort, die Sie zuvor festgelegt haben, in die Felder Database user und Database password ein.
  • Geben Sie im Feld Database name nextcloud ein.
  • Geben Sie in das Feld localhost Folgendes ein (3306 ist der standardmäßige mariadb-Verbindungsport).

Wenn Sie dies alles haben, klicken Sie auf Finish Setup und alles sollte einsatzbereit sein.

Das Browserfenster wird kurz aktualisiert und lädt die Site dann normalerweise nicht neu. Geben Sie Ihre URL erneut in das Browserfenster ein und Sie sollten die ersten default Seiten sehen.

Ihr Administratorbenutzer ist zu diesem Zeitpunkt bereits angemeldet (oder sollte es sein) und es gibt mehrere Informationsseiten, die Ihnen den Einstieg erleichtern sollen. Das „Dashboard“ ist das, was Benutzer sehen, wenn sie sich zum ersten Mal anmelden. Der Administratorbenutzer kann jetzt andere Benutzer erstellen, andere Anwendungen installieren und viele andere Aufgaben ausführen.

Die Datei Nextcloud Manual.pdf ist das Benutzerhandbuch, damit sich Benutzer mit dem verfügbaren Inhalt vertraut machen können. Der administrative Benutzer sollte die wichtigsten Punkte des Administratorhandbuchs On the Nextcloud website durchlesen oder zumindest überfliegen

Nächste Schritte

Vergessen Sie an dieser Stelle nicht, dass es sich um einen Server handelt, auf dem Sie Unternehmensdaten speichern. Es ist wichtig, die Site mit einer Firewall abzusichern, die Sicherung einzurichten, die Site mit einem SSL zu sichern und alle anderen erforderlichen Aufgaben auszuführen, um Ihre Daten zu schützen.

Zusammenfassung

Sie müssen jede Entscheidung, die Unternehmens-Cloud ins eigene Haus zu holen, sorgfältig abwägen. Für diejenigen, die die lokale Speicherung von Unternehmensdaten einem externen Cloud-Host vorziehen, ist Nextcloud eine gute Alternative.

Author: Steven Spencer

Contributors: Ezequiel Bruni, Ganna Zhyrnova