Wie man Nextcloud auf Rocky Linux 8 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.
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.
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.
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.
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.
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.
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.
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 nextuser@localhost 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 nextuser@localhost;
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.
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.
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.
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.
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 user@email.com --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.
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.
- 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.
3. Klicke nun auf das Menü„Dateien“ und du wirst die Liste der Dateien und Ordner im Benutzer-Dashboard sehen.
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.
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.
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 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.
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.