Wie man Nextcloud auf Rocky Linux installiert

Nextcloud ist eine kostenlose und quelloffene Software, mit der du Filehosting-Dienste wie Dropbox, Google Drive oder Mega.nz erstellen kannst. Sie wird von dem ursprünglichen Owncloud-Entwickler Frank Karlitschek entwickelt. Im Jahr 2016 forkt er das Owncloud Projekt und erstellt ein neues Projekt mit dem Namen„Nextcloud„.

Zu diesem Zeitpunkt wuchs das Nextcloud Projekt schnell und wurde zu mehr als einer Filehosting Software. Mit der Unterstützung von vielen Plugins wird Nextcloud zu einer solchen Collaboration Software. Du kannst Plugins für Projektmanagement, Videokonferenzen, kollaborative Bearbeitung, Notizen, E-Mail-Client, etc. installieren.

In dieser Anleitung lernst du, wie du Nextcloud auf dem Rocky Linux 8.4 installierst. Du wirst Nextcloud unter dem LAMP Stack (Linux, Apache2/httpd, MySQL/MariaDB, und PHP) installieren.

Voraussetzungen

  • Ein Rocky Linux Server. Stelle sicher, dass alle Pakete auf die neueste Version aktualisiert sind.
  • Ein Benutzer mit Root-Rechten. Dieser Benutzer erhält die Root-Rechte durch den Befehl sudo.

Installation des Apache/Httpd Webservers

Als erstes wirst du den Apache oder httpd Webserver auf dem Rocky Linux Server installieren.

1. Führe den folgenden dnf-Befehl aus, um den httpd-Webserver zu installieren.

sudo dnf install httpd

Tippe„y“ ein und drücke„Enter“ um zu bestätigen und die httpd Pakete zu installieren.

Install Apache/Httpd Web Server

2. Wenn die Installation abgeschlossen ist, aktiviere und starte den httpd-Dienst mit dem folgenden Befehl.

sudo systemctl enable httpd
sudo systemctl start httpd

Der„systemctl enable“ Befehl wird den Dienst bei jedem Start aktivieren.

3. Danach führe den folgenden Befehl aus, um den httpd Dienst zu überprüfen.

sudo systemctl status httpd

Und du wirst ein ähnliches Ergebnis wie unten erhalten.

Apache Webserver Dienst Status

Wie auf dem oberen Screenshot zu sehen ist, ist der httpd aktiv und läuft.

PHP auf Rocky Linux installieren

Für die Installation von Nextcloud wird PHP 7.4 oder höher benötigt. Nun wirst du PHP 7.4 aus dem remi Repository installieren.

1. Führe den folgenden Befehl aus, um epel und remi Repository hinzuzufügen

sudo dnf install https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm
sudo dnf install https://rpms.remirepo.net/enterprise/remi-release-8.rpm

Gib„y“ ein und drücke„Enter„, um das epel und remi Repository hinzuzufügen.

Wenn die Installation abgeschlossen ist, überprüfe das epel und Remi Repository mit dem folgenden Befehl.

sudo dnf repolist

Du wirst das epel und remi Repository in der Repository Liste sehen.

Prüfen von EPEL und REMI Repository

2. Setze als nächstes das Standard-Repository-Modul PHP zurück. Aktiviere dann das Modul für PHP 7.4 aus dem remi Repository.

Führe den folgenden Befehl aus, um das Standard-Repository für das php-Modul zurückzusetzen.

sudo dnf module reset php

Gib dabei„y“ ein und drücke„Enter„, um den gpg-Schlüssel remi repository hinzuzufügen.

GPG Key remi repository hinzufügen

Danach führe den folgenden Befehl aus, um das php Modul aus dem remi Repository zu aktivieren.

sudo dnf module enable php:remi-7.4

Tippe„y“ zur Bestätigung ein und drücke„Enter„, um fortzufahren. Jetzt bist du bereit, PHP und alle Erweiterungen für die WordPress-Installation zu installieren.

Aktiviere das Remi Repository für PHP 7.4

3. Führe den folgenden Befehl aus, um php mit einigen notwendigen Erweiterungen zu installieren.

sudo dnf install php php-ctype php-curl php-gd php-iconv php-json php-libxml php-mbstring php-openssl php-posix php-session php-xml php-zip php-zlib php-pdo php-mysqlnd php-intl php-bcmath php-gmp php-imagick php-apcu

4. Nachdem die PHP-Installation abgeschlossen ist, bearbeite die Konfiguration„php.ini“ mit dem nano-Editor.

nano /etc/php.ini

Ändere den Standardwert mit der untenstehenden Konfiguration.

file_uploads = On
allow_url_fopen = On
memory_limit = 512M
upload_max_filesize = 500M
post_max_size = 600M 
max_execution_time = 300
display_errors = Off
date.timezone = Europe/Amsterdam

Drücke„Strg+x“ und gib„Y“ ein, um die Konfiguration zu speichern und zu beenden.

Die wichtige Konfiguration, die du kennen musst:

  • Für die Nextcloud Produktion brauchst du das„memory_limit“ mehr als 512MB.
  • Die Option„upload_max_filesize“ erlaubt es dir, die maximale Größe für den Upload auf deinen Nextcloud Server einzustellen.
  • Die„post_max_size“ Option muss höher sein als die„upload_max_filesize“ Option.
  • Die Option„date.timezone“ muss mit der lokalen Systemzeit„/etc/localtime“ übereinstimmen.
  • Erhöhe die„max_execution_time“ je nach Auslastung deines Servers.

5. Wechsle als nächstes in das Arbeitsverzeichnis„/etc/php.d/“ und bearbeite die Konfiguration„10-opcache.ini“ mit dem Editor nano.

cd /etc/php.d/
nano 10-opcache.ini

Füge die folgende Konfiguration hinzu, um das PHP opecache Plugin zu aktivieren.

opcache.enable = 1
opcache.interned_strings_buffer = 8
opcache.max_accelerated_files = 10000
opcache.memory_consumption = 128
opcache.save_comments = 1
opcache.revalidate_freq = 1

Drücke die Taste„Strg+x“ und gib„Y“ ein, um die Konfiguration zu speichern und zu beenden.

6. Um die neue PHP-Konfiguration anzuwenden, starte den httpd-Dienst mit dem folgenden Befehl neu.

sudo systemctl restart httpd

Installieren und Konfigurieren von MariaDB

In diesem Schritt installierst du den mariadb Datenbankserver, sicherst das mariadb Deployment und erstellst eine neue Datenbank und einen neuen Benutzer für Nextcloud.

1. Um den mariadb-Datenbankserver zu installieren, führe den folgenden Befehl aus.

sudo dnf install mariadb mariadb-server

Warte auf die mariadb-Installation.

MariaDB Datenbank Server installieren

2. Sobald die Installation abgeschlossen ist, aktiviere und starte den mariadb-Dienst mit dem folgenden Befehl.

sudo systemctl enable mariadb
sudo systemctl start mariadb

4. 4. Wenn mariadb aktiv ist und läuft, führe den folgenden Befehl aus, um den mariadb-Dienst zu überprüfen.

sudo systemctl status mariadb

Wenn der mariadb Dienst läuft, wirst du eine ähnliche Ausgabe wie unten erhalten.

Status des mariadb Dienstes prüfen

5. Als nächstes musst du deinen mariadb Einsatz absichern, indem du das Root-Passwort für mariadb einrichtest und einige Standardkonfigurationen entfernst. Um das zu tun, kannst du das Kommandozeilen-Tool„mysql_secure_installation“ verwenden, das in der Standard-Mariadb-Installation enthalten ist.

Führe den„mysql_secure_installation“ Befehl unten aus.

mysql_secure_installation

Zu Beginn wirst du aufgefordert, das mariadb root Passwort einzurichten.

Gib dein starkes mariadb root Passwort ein und wiederhole es, dann drücke„Enter“ um fortzufahren.

Setting the root password ensures that nobody can log into the MariaDB
root user without the proper authorisation.

Set root password? [Y/n] Y
New password:
Re-enter new password:
Password updated successfully!
Reloading privilege tables..
… Success!

Gib nun„Y“ ein und drücke„Enter„, um den standardmäßigen anonymen Benutzer vom mariadb Server zu entfernen.

By default, a MariaDB installation has an anonymous user, allowing anyone
to log into MariaDB without having to have a user account created for
them.  This is intended only for testing, and to make the installation
go a bit smoother.  You should remove them before moving into a
production environment.

Remove anonymous users? [Y/n] Y
… Success!

Danach deaktiviere den Remote Login für den Standardbenutzer‚root‚. Tippe„Y“ und drücke„Enter„, um fortzufahren.

Normally, root should only be allowed to connect from 'localhost'.  This
ensures that someone cannot guess at the root password from the network.

Disallow root login remotely? [Y/n] Y
… Success!

Tippe erneut„Y“ ein, um die Standarddatenbank„test“ zu entfernen und drücke„Enter„.

By default, MariaDB comes with a database named 'test' that anyone can
access.  This is also intended only for testing, and should be removed
before moving into a production environment.

Remove test database and access to it? [Y/n] Y
– Dropping test database…
… Success!
– Removing privileges on test database…
… Success!

Und als letztes tippe wieder„Y“ ein, um alle Tabellenrechte neu zu laden und eine neue Konfiguration anzuwenden.

Reloading the privilege tables will ensure that all changes made so far
will take effect immediately.

Reload privilege tables now? [Y/n] Y
… Success!

Nun ist der Prozess abgeschlossen und du wirst die folgende Ausgabe sehen.

Cleaning up...

All done!  If you’ve completed all of the above steps, your MariaDB
installation should now be secure.

Thanks for using MariaDB!

Datenbank für Nextcloud erstellen

1. Melde dich in der mariadb Shell mit dem unten stehenden mysql Befehl an.

mysql -u root -p

2. Führe nun die folgende mysql-Abfrage aus, um eine neue Datenbank „nextcloud_db“ zu erstellen.

CREATE DATABASE netxcloud_db;

3. Führe die folgende Abfrage aus, um einen neuen Datenbankbenutzer„nextuser“ zu erstellen. Ändere das„strongpassword“ mit deinem starken Passwort.

CREATE USER [email protected] IDENTIFIED BY 'StrongPassword';

4. Erlaube dem Benutzer„nextuser“ den Zugriff und das Schreiben auf die„nextcloud_db“ mit der folgenden Abfrage.

GRANT ALL PRIVILEGES ON netxcloud_db.* TO [email protected];

5. Lade nun alle Tabellenberechtigungen neu, um die neue Datenbankkonfiguration anzuwenden.

FLUSH PRIVILEGES;

Dann kannst du„quit“ eingeben und„Enter“ drücken, um die mariadb-Shell zu verlassen.

Neue Datenbank für Nextcloud erstellen

Nextcloud Quellcode herunterladen

1. Wechsle in das Arbeitsverzeichnis„/var/www“ und lade die neueste Version des Nextcloud-Quellcodes mit dem wget-Befehl herunter (siehe unten).

cd /var/www/
wget https://download.nextcloud.com/server/releases/nextcloud-22.1.0.zip

2. Entpacke den Nextcloud-Quellcode„nextcloud-xx.zip“ und du erhältst ein neues Verzeichnis„nextcloud„, dann ändere den Besitzer des„nextcloud„-Verzeichnisses auf den Benutzer„apache„.

unzip nextcloud-22.1.0.zip
chown -R apache:apache nextcloud

Jetzt kannst du den virtuellen httpd-Host für Nextcloud konfigurieren.

Aktiviere das Apache/Httpd mod_ssl Modul

Für dieses Tutorial wirst du Nextcloud installieren und mit SSL von Letsencrypt absichern. Du musst also das mod_ssl Modul für den httpd Server auf dem Rocky Linux aktivieren.

1. Installiere das Paket„mod_ssl“ mit dem unten stehenden dnf Befehl.

sudo dnf install mod_ssl mod_http2

2. Danach generiere das Standard-SSL für localhost mit dem openssl Befehl unten. Aber wenn du bereits Zertifikate„/etc/pki/tls/private/localhost.key“ und„/etc/pki/tls/certs/localhost.crt“ hast, kannst du diesen Schritt überspringen.

openssl req -newkey rsa:2048 -nodes -keyout /etc/pki/tls/private/localhost.key -x509 -days 365 -out /etc/pki/tls/certs/localhost.crt

Du kannst bei allen Fragen einfach die Eingabetaste drücken, da dieses Zertifikat nur für localhost verwendet wird, nicht für den WordPress Domainnamen.

SSL für Localhost Rocky Linux generieren

3. Führe nun den folgenden Befehl aus, um sicherzustellen, dass mod_ssl auf dem httpd Webserver verfügbar ist.

apachectl -M | grep ssl

Wenn du eine Ausgabe wie„ssl“ erhältst, dann ist mod_ssl aktiviert. Ansonsten bekommst du eine leere Ausgabe.

Aktiviere Mod_ssl und mod_http2 Rocky Linux

SSL Letsencrypt mit Certbot generieren

In diesem Schritt installierst du das Tool cerbot und generierst die SSL-Zertifikate für die WordPress-Installation. Du wirst SSL Letsencrypts mit dem webroot Plugin generieren.

1. Führe den folgenden Befehl aus, um das certbot-Tool zur Generierung von SSL Letsencrypt zu installieren.

sudo dnf install certbot

Warte den Installationsprozess ab.

2. Sobald die Installation abgeschlossen ist, erstelle mit den folgenden Befehlen ein neues Verzeichnis für die Letsencrypt-Autorisierung.

sudo mkdir -p /var/lib/letsencrypt/.well-known
sudo chgrp apache /var/lib/letsencrypt
sudo chmod g+s /var/lib/letsencrypt

3. Wechsle als nächstes in das Arbeitsverzeichnis„/etc/httpd/conf.d/“ und erstelle eine neue Konfiguration„well-known.conf“ mit dem Editor nano.

cd /etc/httpd/conf.d/
nano well-known.conf

Füge die folgenden Konfigurationen hinzu.

Alias /.well-known/acme-challenge/ "/var/lib/letsencrypt/.well-known/acme-challenge/"
<Directory "/var/lib/letsencrypt/">
    AllowOverride None
    Options MultiViews Indexes SymLinksIfOwnerMatch IncludesNoExec
    Require method GET POST OPTIONS
</Directory>

Drücke„Strg+x“ und tippe„y“ zum Speichern und Beenden.

4. Führe nun die folgenden Befehle aus, um die httpd-Konfiguration zu überprüfen und starte den httpd-Dienst neu.

apachectl configtest
sudo systemctl restart httpd

Wenn du keine Fehlermeldung erhältst, bist du bereit, SSL Letsencrypt mit dem webroot Plugin zu erzeugen.

Einrichten von apache httpd für letsencrypt webroot Autorisierung

5. Bevor du SSL Letsencrypt generierst, stelle sicher, dass dein Domainname in die Server-IP-Adresse aufgelöst ist. Danach kannst du SSL Letsencrypt mit dem webroot-Plugin generieren, indem du den certbot-Befehl unten ausführst. Ändere auch die E-Mail-Adresse und den Domainnamen in deinen eigenen.

sudo certbot certonly --agree-tos --email [email protected] --webroot -w /var/lib/letsencrypt/ -d files.domain.com -d

Wenn der Prozess abgeschlossen ist, werden deine SSL-Zertifikate im Verzeichnis„/etc/letsencrypt/live/files.domain.com/“ verfügbar sein.

Einrichten des Apache Virtual Host für Nextcloud

In diesem Schritt fügst du eine neue apache/httpd Virtual Host Konfiguration für Nextcloud hinzu.

1. Wechsle in das Arbeitsverzeichnis„/etc/httpd/conf.d“ und erstelle eine neue Konfiguration„nextcloud.conf“ mit dem Editor nano.

cd /etc/httpd/conf.d/
nano nextcloud.conf

Ändere den Detail-Domainnamen und das SSL-Pfad-Verzeichnis in dein eigenes und füge die Konfiguration in die Datei„nextcloud.conf“ ein.

<VirtualHost *:80>
    ServerName files.domain.com
    ServerAlias www.files.domain.com

# auto redirect HTTP to HTTPS
Redirect permanent / https://files.domain.com/
</VirtualHost>

<VirtualHost *:443>
ServerName files.domain.com
ServerAlias www.files.domain.com

DocumentRoot /var/www/nextcloud/

Protocols h2 http/1.1

# auto redirect www to non-www
<If „%{HTTP_HOST} == ‚www.files.domain.com'“>
Redirect permanent / https://files.domain.com/
</If>

# log files
ErrorLog /var/log/httpd/files.domain.com-error.log
CustomLog /var/log/httpd/files.domain.com-access.log combined

SSLEngine On
SSLCertificateFile /etc/letsencrypt/live/files.domain.com/fullchain.pem
SSLCertificateKeyFile /etc/letsencrypt/live/files.domain.com/privkey.pem

# HSTS
<IfModule mod_headers.c>
Header always set Strict-Transport-Security „max-age=15552000; includeSubDomains“
</IfModule>

<Directory /var/www/nextcloud/>
Options +FollowSymlinks
AllowOverride All

<IfModule mod_dav.c>
Dav off
</IfModule>

SetEnv HOME /var/www/nextcloud
SetEnv HTTP_HOME /var/www/nextcloud
</Directory>
</VirtualHost>

Drücke„Strg+x“ und gib„Y“ ein, um die Konfiguration zu speichern und zu beenden.

3. Als nächstes führe den folgenden Befehl aus, um die httpd-Konfiguration zu überprüfen.

sudo apachectl configtest

Wenn du keinen Fehler erhältst, starte den httpd Dienst mit dem folgenden Befehl neu.

sudo systemctl restart httpd

Jetzt bist du bereit für die Nextcloud Installation über den Webbrowser.

Einrichten eines virtuellen apache/httpd Hosts für Nextcloud

Nextcloud installieren

Wenn alle relevanten Serverkonfigurationen abgeschlossen sind, kannst du mit dem Webbrowser auf deine Nextcloud-Installation zugreifen.

1. Öffne deinen Webbrowser und gib die URL-Adresse deiner Nextcloud-Installation ein.

http://files.domain.com

Nun wirst du auf die sichere HTTPS-Verbindung umgeleitet und du erhältst die folgende Seite.

Nextcloud installieren

  • Im Bereich „Create an admin account“ gibst du einen neuen Benutzernamen und ein Passwort für deinen Admin ein.
  • Für den Abschnitt „Datenordner“ belasse es bei den Standardeinstellungen.
  • Im Abschnitt „Configure the database“ wählst du „MySQL/MariaDB“ und gibst die Details der Datenbankkonfiguration ein.
  • Zusätzlich kannst du empfohlene Apps installieren, indem du die Box-Option aktivierst. Oder deaktiviere die Box-Option, wenn du das nicht möchtest.

Danach kannst du auf den„Finish setup“ Button klicken.

2. Nachdem der Installationsprozess abgeschlossen ist, siehst du das Standard-Dashboard von Nextcloud wie unten abgebildet.

Nextcloud Dashboard

3. Klicke nun auf das Menü„Dateien“ und du wirst die Liste der Dateien und Ordner im Benutzer-Dashboard sehen.

Nextcloud Benutzer Dateien Dashboard

4. Um auf die administrative Seite zuzugreifen, klicke oben auf das Benutzerprofil und wähle„Einstellungen„.

Unter dem Abschnitt„Verwaltung“ kannst du die Standardkonfiguration von Nextcloud ändern.

Nextcloud Administrative Einstellungen

5. Um neue Plugins oder Apps hinzuzufügen, kannst du oben auf das Benutzerprofil klicken und„Apps“ auswählen.

Nun bekommst du die Seite wie folgt.

Nextcloud Installation von Apps und Plugins

Wähle die Plugin-Kategorie aus, die zu dir passt und klicke dann auf den Button„Herunterladen und aktivieren„. Danach klickst du auf„Aktivieren„, um die App oder das Plugin zu aktivieren.

Unten ist der Screenshot nach der Aktivierung des Nextcloud Breeze Dark Themes.

Nextcloud Dark Theme mit Breeze

Nextcloud Performace Tuning

Nachdem du Nextcloud installiert hast, kannst du noch einige Schritte unternehmen, um die Nextcloud Performance zu erhöhen, indem du den lokalen Speichercache aktivierst und einen Cronjob für Nextcloud selbst einrichtest.

1. Im oberen Bereich der PHP-Installation hast du bereits das PHP für das Caching eingerichtet. Um das Caching auf Nextcloud zu aktivieren, bearbeite die Nextcloud-Konfiguration „config.php“.

Wechsle das Arbeitsverzeichnis zu„/var/www/nextcloud/config“ und bearbeite die Konfiguration „config.php“ mit dem nano-Editor.

cd /var/www/nextcloud/config/
nano config.php

Füge die folgende Konfiguration innerhalb der‚array ( .. );‚ Klammer wie unten ein

<?php
$CONFIG = array (
....
....
....
  # Additional configuration
  'memcache.local' => '\OC\Memcache\APCu',
);

Drücke nun die„Ctrl+x“ Taste und tippe„y“ um die Konfiguration zu speichern und zu beenden.

2. Ein Nextcloud-System muss regelmäßig und ohne jegliche Benutzer-/Admin-Interaktion einige Hintergrundaufgaben ausführen. Um das zu tun, kannst du den cronjob für die Aufgabenplanung der Nextcloud Tasks verwenden.

Auf Rocky Linux ist der Standard httpd Benutzer„apache„. Erstelle einen neuen Cronjob für den Benutzer„apache“ mit dem unten stehenden Befehl.

crontab -u apache -e

Füge die folgende Konfiguration hinzu.

*/5  *  *  *  * php -f /var/www/nextcloud/cron.php

Beachte die Konfiguration und beende sie.

Cronjob-Konfiguration, die du kennen musst:

  • Diese Cronjob-Konfiguration erlaubt es dem Benutzer„apache„, alle 5 Minuten das PHP-Skript„/var/www/nextcloud/cron.php“ auszuführen.

Um die Cronjob-Konfiguration zu überprüfen, kannst du den folgenden Befehl ausführen.

crontab -u apache -l

Wenn die Konfiguration erfolgreich ist, bekommst du die Konfiguration oben als Ausgabe. Andernfalls erhältst du ein leeres Ergebnis.

Nextcloud Enable memory Caching und Cron einrichten

Fazit

Herzlichen Glückwunsch! Du hast Nextcloud erfolgreich auf Rocky Linux 8.4 installiert. Der Nextcloud Server läuft unter dem LAMP Stack mit aktiviertem SSL. Außerdem läuft deine Nextcloud-Installation mit aktiviertem Memory Caching mit PHP APC und opcache Erweiterungen.

Das könnte dich auch interessieren …