Wie installiere ich Nextcloud unter Debian 11

Nextcloud ist eine Open-Source-Software zur Erstellung von öffentlichen und privaten Dateispeichern. Sie ermöglicht es dir, selbst gehostete Dienste wie Dropbox, Google Drive oder Mega.nz zu erstellen. Ursprünglich wurde sie vom 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 dieser Zeit wuchs das Nextcloud-Projekt rasant und wurde zu mehr als nur einer Software zum Hosten von Dateien, sondern eher zu einer Plattform für die Synchronisierung von Dateien und die Zusammenarbeit von Inhalten. Mit einer Vielzahl von Plugins wird Nextcloud zu einer leistungsstarken Software für die Zusammenarbeit. Du kannst Plugins für Projektmanagement, Videokonferenzen, gemeinsame Bearbeitung, Notizen, E-Mail-Client usw. installieren.

In dieser Anleitung erfährst du, wie du Nextcloud auf dem neuesten Debian 11 Bullseye installierst. Du wirst Nextcloud unter dem LAMP-Stack (Linux, Apache2/httpd, MySQL/MariaDB und PHP) installieren.

Voraussetzungen

  • Ein Debian 11 Server. Stelle sicher, dass alle Pakete auf die neueste Version aktualisiert sind.
  • Ein Root-Benutzer oder ein Benutzer mit Root-Rechten. Dieser Benutzer wird für die Installation neuer Pakete und die Bearbeitung der Systemkonfigurationen verwendet.

Root und Update Repositories abrufen

Führe zunächst den folgenden Befehl aus, um die Root-Rechte zu erhalten.

1. Wenn du„sudo“ installiert hast, führe den folgenden sudo-Befehl aus.

sudo su

Gib nun das Passwort login für deinen Benutzer ein.

2. Wenn du das sudo-Paket nicht hast, führe den Befehl„su“ wie folgt aus

su

Gib jetzt dein Root-Passwort ein und drücke„Enter„.

3. Danach aktualisierst du alle Debian-Repositories mit dem Befehl apt (siehe unten).

apt update

Installation des Apache Webservers

Nachdem du die Debian-Repositories aktualisiert hast, installierst du einen Apache-Webserver und aktivierst einige Apache-Module für Nextcloud.

1. Führe den folgenden apt-Befehl aus, um den Apache-Webserver zu installieren.

apt install apache2

Gib„y“ ein und drücke„Enter„, um die Installation fortzusetzen.

Install Apache Web Server

2. Wenn die Installation abgeschlossen ist, überprüfe den Apache-Dienst mit dem folgenden Befehl.

systemctl is-enabled apache2
systemctl status apache2

Du wirst die Ausgabe„enabled“ sehen, was bedeutet, dass der Apache-Dienst beim Systemstart automatisch gestartet wird. Und der aktuelle Status des Apache-Dienstes ist„active (running)„.

Überprüfung des Apache-Dienststatus

3. Als nächstes aktivierst du die Apache-Module ssl, rewrite und headers, indem du den Befehl a2enmod ausführst.

a2enmod ssl rewrite headers

Nachfolgend siehst du die Ausgabe, die du erhalten wirst.

Aktiviere einige Module apache

4. Führe anschließend den folgenden Befehl aus, um den Apache-Dienst neu zu starten.

systemctl restart apache2

Die neuen Apache-Module werden angewendet. Überprüfe diese Module mit dem Befehl apachectl.

apachectl -M | egrep "ssl|rewrite|headers"

Du wirst eine ähnliche Ausgabe wie unten sehen.

Überprüfe, ob Module aktiviert sind apache

Installieren und Konfigurieren von PHP

In dieser Anleitung wirst du Nextcloud mit der neuesten stabilen Version von PHP 8.0 einsetzen.

Standardmäßig stellt das Debian-Repository Pakete für PHP 8.0 bereit. Nextcloud benötigt jedoch einige zusätzliche PHP-Pakete, die von einem Drittanbieter-Repository installiert werden können. Und du wirst ein neues Repository zu deinem Debian-System hinzufügen.

1. Führe den unten stehenden Befehl aus, um ein PHP-Repository für das Debian-System hinzuzufügen.

echo "deb https://packages.sury.org/php/ $(lsb_release -sc) main"\
| sudo tee /etc/apt/sources.list.d/sury-php.list

Lade den GPG-Schlüssel in das Verzeichnis„/etc/apt/trusted.gpg.d“ herunter.

curl -o /etc/apt/trusted.gpg.d/sury-php8.gpg https://packages.sury.org/php/apt.gpg

Führe nun erneut den Befehl „apt update“ aus, um alle Repositories zu aktualisieren.

apt update

PHP-Repository hinzufügen Debian 11

2. Installiere die PHP-Pakete und zusätzliche PHP-Module für Nextcloud mit dem unten stehenden apt-Befehl.

apt install -y php php-curl php-cli php-mysql php-gd php-common php-xml php-json php-intl php-pear php-imagick php-dev php-common php-mbstring php-zip php-soap php-bz2 php-bcmath php-gmp php-apcu

Führe danach den apt-Befehl erneut aus, um einige zusätzliche Pakete zu installieren.

apt install -y libmagickcore-dev

Die Pakete„libmagickcore-dev“ werden von php-imagick für die SVG-Bildverarbeitung auf Nextcloud benötigt.

3. Wenn die Installation aller Pakete abgeschlossen ist, wechsle das Arbeitsverzeichnis zu„/etc/php/8.0/apache2“ und bearbeite die Konfiguration„php.ini“ mit nano.

cd /etc/php/8.0/apache2/
nano php.ini

Für die grundlegende Nextcloud-Installation änderst du die Standardoptionen mit der folgenden 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
output_buffering = Off

Dekommentiere die Option‚zend_extension=opcache‚, um die opcache-Erweiterung zu laden.

zend_extension=opcache

Gehe zum Abschnitt ‚[opcache]‘ und füge die folgende Konfiguration hinzu.

[opcache]
...
....
.....
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

Speichere die Konfiguration, indem du die Taste„Strg+x“ drückst,„y“ eingibst und mit„Enter“ beendest.

4. Starte nun den Apache-Dienst neu, um die neuen Änderungen mit dem unten stehenden Befehl anzuwenden.

systemctl restart apache2

PHP konfigurieren

Installieren und Konfigurieren von MariaDB

In diesem Schritt installierst du den mariadb-Datenbankserver, sicherst den Einsatz von mariadb 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.

apt install mariadb-server mariadb-client

Gib„y“ ein, um die Installation der Mariadb-Pakete zu bestätigen.

Installation von MariaDB Server Debian 11

2. Sobald die Installation abgeschlossen ist, überprüfe den mariadb-Dienst mit dem folgenden Befehl.

systemctl is-enabled mariadb
systemctl status mariadb

Der mariadb-Dienst ist aktiv und läuft und wird beim Systemstart automatisch gestartet.

Überprüfen des MariaDB Datenbankdienstes

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

Führe den Befehl„mysql_secure_installation“ wie folgt aus.

mysql_secure_installation

Zu Beginn wirst du aufgefordert, das mariadb root Passwort einzugeben. Drücke einfach„Enter„, um fortzufahren.

Enter current password for root (enter for none):
OK, successfully used password, moving on...

Gib„Y“ ein, um die„unix_socket„-Authentifizierung für den Benutzer„root“ zu aktivieren.

Switch to unix_socket authentication [Y/n] Y
Enabled successfully!
Reloading privilege tables..
 ... Success!

Gib dein sicheres mariadb root-Passwort ein, wiederhole es und drücke„Enter„, um fortzufahren.

Change the 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 anonymen Standardbenutzer 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 deaktivierst du die Fernanmeldung für den Standardbenutzer„root„. Gib„Y“ ein 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!

Tippe zum Schluss noch einmal„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!

Jetzt ist der Vorgang abgeschlossen und du siehst die folgende Ausgabe.

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 und Benutzer für Nextcloud anlegen

1. Melde dich mit dem unten stehenden mysql-Befehl in der mariadb-Shell 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„nextclouduser“ zu erstellen. Ändere das„strongpassword“ mit deinem sicheren Passwort.

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

4. Erlaube dem Benutzer„nextclouduser“ mit der folgenden Abfrage den Zugriff auf die„nextcloud_db“ und schreibe sie.

GRANT ALL PRIVILEGES ON nextcloud_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 und Benutzer für Nextcloud erstellen

Nextcloud-Quellcode herunterladen

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

cd /var/www/
curl -o nextcloud.zip https://download.nextcloud.com/server/releases/nextcloud-22.1.1.zip

Nextcloud Quellcode herunterladen

2. Installiere nun das unzip-Paket mit dem folgenden Befehl.

apt install unzip

3. Als Nächstes entpackst du den Nextcloud-Quellcode„nextcloud.zip“ und erhältst ein neues Verzeichnis „nextcloud“, dann änderst du den Besitzer des Verzeichnisses„nextcloud“ in den Benutzer„www-data„.

unzip nextcloud-22.1.0.zip
chown -R www-data:www-data nextcloud

Jetzt kannst du SSL Letsencrypt erzeugen und den virtuellen Apache-Host für Nextcloud konfigurieren.

SSL Letsencrypt generieren

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

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

apt install certbot

Gib„y“ ein und drücke„Enter„, um die Installation fortzusetzen.

Certbot installieren

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

mkdir -p /var/lib/letsencrypt/.well-known
chgrp www-data /var/lib/letsencrypt
chmod g+s /var/lib/letsencrypt

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

cd /etc/apache2/conf-available/
nano well-known.conf

Kopiere die folgende Konfiguration und füge sie ein.

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 gib„y“ ein und drücke‚Enter‚, um die Konfiguration zu speichern und zu beenden.

Aktiviere nun die neue Konfiguration, indem du mit dem Befehl„ln“ einen Symlink von der Datei„well-known.conf“ in das Verzeichnis „conf-enabled“ erstellst.

ln -s /etc/apache2/conf-available/well-known.conf /etc/apache2/conf-enabled/

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

apachectl configtest
systemctl restart apache2

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

SSL-Überprüfung für Letsencrypt einrichten

5. Bevor du SSL Letsencrypt generierst, musst du sicherstellen, dass dein Domainname in die IP-Adresse des Servers aufgelöst ist. Danach kannst du SSL Letsencrypt mit dem Webroot-Plugin erzeugen, indem du den unten stehenden Befehl certbot 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-name.io

Wenn der Vorgang abgeschlossen ist, sind deine SSL-Zertifikate im Verzeichnis„/etc/letsencrypt/live/files.domain-name.io/“ verfügbar.

Apache Virtual Host für Nextcloud einrichten

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

1. Ändere das Arbeitsverzeichnis in„/etc/apache2/sites-available/“ und erstelle mit nano eine neue Konfiguration„nextcloud.conf„.

cd /etc/apache2/sites-available/
nano nextcloud.conf

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

<VirtualHost *:80>
    ServerName files.domain-name.io
    ServerAlias www.files.domain-name.io

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

<VirtualHost *:443>
ServerName files.domain-name.io
ServerAlias www.files.domain-name.io

DocumentRoot /var/www/nextcloud/

Protocols h2 http/1.1

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

# log files
ErrorLog /var/log/apache2/files.domain-name.io-error.log
CustomLog /var/log/apache2/files.domain-name.io-access.log combined

SSLEngine On
SSLCertificateFile /etc/letsencrypt/live/files.domain-name.io/fullchain.pem
SSLCertificateKeyFile /etc/letsencrypt/live/files.domain-name.io/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, dann drücke„Enter„, um die Konfiguration zu speichern und zu beenden.

2. Aktiviere nun die Konfiguration des virtuellen Hosts„nextcloud.conf„, indem du den folgenden Befehl ausführst.

a2ensite nextcloud.conf

Virtuellen Host für Nextcloud einrichten

3. Überprüfe die neue Apache-Konfiguration und vergewissere dich, dass kein Fehler aufgetreten ist, dann starte den Apache-Dienst neu.

apachectl configtest
systemctl restart apache2

Überprüfe die Apache-Konfiguration und starte den Dienst neu

Nextcloud-Installation

Wenn die Serverkonfiguration abgeschlossen ist, kannst du mit dem Webbrowser auf deine Nextcloud-Installation zugreifen.

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

https://files.domain-name.io

Lege deinen ersten und deinen Admin-Benutzer für Nextcloud an. Das Datenverzeichnis ist für den Benutzer„www-data“ beschreibbar.

Admin-Konto erstellen Nextcloud

2. Scrolle die Seite nach unten und gib den Datenbanknamen, den Benutzer und das Passwort ein. Entferne das Häkchen bei der Option„Empfohlene Anwendungen installieren„, um die Installation zu beschleunigen. Klicke dann auf die Schaltfläche„Installation beenden„, um Nextcloud zu installieren.

Einrichten der Datenbank und fisnish nextcloud Installation

3. Wenn die Installation erfolgreich war, siehst du das Nextcloud-Dashboard wie unten abgebildet.

Nextcloud Benutzerdateien dashbaird

4. Klicke auf das Benutzersymbol oben rechts und dann auf das Menü„Einstellungen„. Im Bereich„Verwaltung“ klickst du auf„Übersicht„.

Nextcloud Verwaltungsübersicht

  • Im Abschnitt „Sicherheits- und Einrichtungswarnungen“ findest du einige Empfehlungen, die du je nach deiner Installationsumgebung befolgen musst.
  • Im Abschnitt „Versionen“ siehst du den aktuellen Zweig deiner Nextcloud-Installation.

5. Klicke als Nächstes auf das Menü„System“ am unteren Rand des Abschnitts„Verwaltung„.

Nextcloud Systemstatus

Dort siehst du Details zu deiner Umgebung, zur Systemauslastung, zum Speicherplatz, zum Speicherstatus, zum Netzwerkstatus usw.

6. Wie bereits erwähnt, ist die Nextcloud mehr als nur ein Dateisynchronisationsdienst. Durch die Unterstützung zusätzlicher Apps/Plugins ist sie zu einem Kollaborationswerkzeug geworden.

Klicke auf dem Profilsymbol oben rechts auf das Menü„Apps“ und du siehst den nextcloud-Apps-Store wie unten.

Nextcloud Apps Installation

Wähle die Apps aus, die du installieren möchtest, und klicke dann auf die Schaltfläche„Herunterladen und aktivieren„, um neue Apps zu installieren.

7. Unten siehst du die Standardansicht des Nextcloud-Benutzer-Dashboards. Du kannst die Funktionalität deines Dashboards erweitern, indem du zusätzliche Plugins installierst.

Nextcloud Home Dashboard

Nextcloud-Performance-Tuning

Nach der Installation von Nextcloud kannst du einige weitere Schritte unternehmen, um die Leistung von Nextcloud zu erhöhen, indem du den lokalen Speicher-Cache aktivierst und einen Cronjob für Nextcloud selbst einrichtest.

1. Im oberen Abschnitt der PHP-Installation hast du bereits 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 Editor nano.

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

Füge die folgende Konfiguration innerhalb der„array ( .. );„-Klammer wie folgt ein

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

Drücke jetzt die Taste„Strg+x“ und gib„y“ ein, dann drücke„Enter„, um die Konfiguration zu speichern und zu beenden.

2. Ein Nextcloud-System muss regelmäßig und ohne Zutun des Benutzers/Administrators einige Hintergrundaufgaben ausführen. Dazu kannst du den Cronjob für die Aufgabenplanung von Nextcloud verwenden.

Auf dem Debian-Linux-System läuft die Apache-Installation standardmäßig unter dem Benutzer„www-data„. Erstelle mit dem unten stehenden Befehl einen neuen Cronjob für den Benutzer„www-data„.

crontab -u www-data -e

Wenn du mehrere Editoren auf deinem System hast, wähle den Editor, den du am liebsten benutzt. Für diese Anleitung verwenden wir den nano-Editor.

Cron einrichten

Füge die folgende Konfiguration hinzu.

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

Speichere die Konfiguration und beende sie.

Cronjob-Konfiguration, die du kennen musst:

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

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

crontab -u www-data -l

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

Überprüfe cron für Nextcloud

Fazit

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

Das könnte dich auch interessieren …