In diesem Tutorial zeige ich euch, wie ihr Schritt für Schritt Nextcloud auf eurem Debian 12 System installieren können.
Schritt 1 – Vorbereitung
Zuerst sorgen wir dafür, dass auf unserem Server eine saubere Debian 12 Version installiert wurde.
Danach loggen wir uns mit SSH auf unserer Concole ein und führen dann dort den folgenden Befehl aus:
apt-get install sudo
und danach einfach:
sudo apt update

Damit können wir nun auch ganz sicher sein, dass auf unserem Server die aktuellste Debian 12 Version installiert ist.
Schritt 2 – Apache installieren
Jetzt müssen wir Apache auf unserem Server installiert, dafür führen wir den folgenden Befehl in unserer Console aus:
sudo apt install apache2
Hinweis:
Bestätige die Installation mit der Taste [y] und drücke im Anschluss [Enter], um die Installation einzuleiten.
Jetzt überprüfen wir, ob unsere Installation von Apache erfolgreich gewesen ist mit folgenden zwei Befehlen:
sudo systemctl is-enabled apache2
sudo systemctl status apache2

Schritt 3 – Firewall einrichten
Nun müssen wir unsere Firewall einrichten.
Mit der passenden Firewall schützt du dein System und deine Daten. Empfehlenswert ist die Uncomplicated Firewall (UFW), die du als Standard einrichten kannst. Dazu solltest du die Ports für OpenSSH, HTTP sowie HTTPS öffnen. Installiere bitte zunächst das UFW-Paket mit dem folgenden Befehl:
sudo apt install ufw
Hinweis:
Bestätige auch hier wieder mit [y] und schließe die Installation mit [Enter] ab. Im Anschluss aktiviere OpenSSH und UFW mit diesen zwei Commands:
sudo ufw allow OpenSSH
sudo ufw enable
Hinweis:
Um UFW zu starten, bestätige mit [y]. Nun erscheint die Ausgabe „Firewall is active and enabled on system startup“. Danach füge den HTTP- und den HTTPS-Port hinzu, die vom Webserver genutzt werden sollen. Dafür führen Sie diesen Befehl aus:
sudo ufw allow "WWW Full"
Bitte lade nun UFW mit den folgenden Befehl neu:
sudo ufw reload
Um sich die aktivierten Regeln nun anzuschauen, rufe bitte den Status von UFW ab. Hier sollte nun WWW Full aktiviert sein. Nutze hierfür bitte den folgenden Befehl:
sudo ufw status

Schritt 4 – PHP 8.2 aktivieren
Für die bestmögliche Performance und maximale Kompatibilität empfiehlt Nextcloud selbst PHP 8.2. Dies ist standardmäßig in Debian 12 enthalten, sodass du die notwendigen Pakete nur noch installieren musst. Dies ist der entsprechende Befehl dafür:
sudo 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 libmagickcore-dev
Hinweis:
Bestätige mit [y] und [Enter]. Anschließend überprüfe die PHP-Version und aktivieren die Erweiterungen:
php --version
php -m

Bitte öffne nun mit dem Nano-Editor die Konfigurationsdatei von PHP:
sudo nano /etc/php/8.2/apache2/php.ini
Jetzt nehme einige Änderungen vor und passen die Konfiguration an deine Erfordernisse an. Je nachdem, wie du Nextcloud mit Debian 12 nutzen möchtest, können andere Werte empfehlenswert sein. In diesem Fall verändere die Einstellungen nach deinen Vorstellungen. Die jeweiligen Befehle sehen wie folgt aus:
Stelle im ersten Schritt die Zeitzone ein:
data.timezone = Europe/Amsterdam
Ändere die Parameter für memory_limit, upload_max_filesize, post-max_size und max_execution_time:
memory_limit = 512M
upload_max_filesize = 500M
post_max_size = 600M
max_execution_time = 300
Aktivere nun file_uploads und allow_url_fopen. In beiden Fällen sollte der Wert auf „On“ gesetzt werden:
file_uploads = On
allow_url_fopen = On
Deaktiviere jetzt display_errors und output_buffering und stelle die jeweiligen Werte auf „Off“:
display_errors = Off
output_buffering = Off
Aktiviere nun noch PHP OPCache mit diesem Befehl:
zend_extension=opcache
Füge die Konfiguration im Abschnitt opcache ein, die von Nextcloud für Debian 12 empfohlen wird. Diese sieht so aus:
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 jetzt bitte die Datei abschließend und beende den Nano-Editor. Starte nun den Apache2-Dienst neu mit folgenden Befehl:
sudo systemctl restart apache2

Schritt 5 – MariaDB-Server aufsetzen
Als Datenbank verwendet Nextcloud einen MariaDB-Server. Du installierst und überprüfst ihn mit den folgenden Befehlen:
sudo apt install mariadb-server
Hinweis:
Bestätige mit [y] und [Enter]. Nach der erfolgreichen Installation gebe bitte den folgenden zwei Befehle ein:
sudo systemctl is-enabled mariadb
sudo systemctl status mariadb

Läuft der Server ordnungsgemäß, sichere bitte das System ab. Nutze den folgenden Befehl, um ein Root-Passwort zu erstellen, anonyme Nutzer zu entfernen und die Test-Datenbank zu löschen:
sudo mariadb-secure-installation
Hinweis:
Die Einstellungen nimmst du vor, indem du [y] zum Zustimmen und [n] zum Ablehnen drückst.
Schritt 6 – Datenbank und Nutzer erstellen
Jetzt erstellen wir eine neue Datenbank und den dazugehörigen Nutzer. Um sich auf dem MariaDB-Server anzumelden, verwende diesen Command und gebe bitte dein Root-Passwort ein:
sudo mariadb -u root -p
Nutze bitte nun die folgenden Befehle, um eine neue Datenbank, einen User und das dazugehörige Passwort zu erstellen:
CREATE DATABASE nextcloud_db;
CREATE USER nextclouduser@localhost IDENTIFIED BY 'DeinPasswort';
GRANT ALL PRIVILEGES ON nextcloud_db.* TO nextclouduser@localhost;
FLUSH PRIVILEGES;
Hinweis:
Ersetze dabei ‚DeinPasswort‘ durch ein eigenes, starkes Passwort. Abschließend überprüfe, ob „nextclouduser“ Zugriff auf die Datenbank „nextcloud_db“ hat mit folgenden Befehl:
SHOW GRANTS FOR nextclouduser@localhost;

Jetzt können wir uns mit dem folgenden Befehl einfach wieder aus unserer Datenbank ausloggen:
exit
Schritt 7 – Aktuelle Quellcodes downloaden
Downloade jetzt die aktuellen Quellcodes, um Nextcloud unter Debian 12 optimal nutzen zu können. Nutze zunächst bitte den folgenden Befehl:
sudo apt install curl unzip -y
Wechsel dann in das Verzeichnis /var/www und downloade den neuesten Quellcode:
cd /var/www/
curl -o nextcloud.zip https://download.nextcloud.com/server/releases/latest.zip
Entpacke nun die Datei und ändere dann die Eigentümer des Verzeichnisses unter www-data mit den folgenden zwei Befehlen:
unzip nextcloud.zip
sudo chown -R www-data:www-data nextcloud

Schritt 8 – Apache2-Host konfigurieren
Nun konfigurieren wir einen virtuellen Apache2-Host. Dafür verwenden wir jetzt diesen Nano-Befehl:
sudo nano /etc/apache2/sites-available/nextcloud.conf
Hinweis:
Bitte passe den Domainnamen und die beiden Parameter ErrorLog und CustomLog an. Dabei ersetze den Platzhalter „beispiel“ mit deinem Domainnamen.
<VirtualHost *:80>
ServerName nextcloud.beispiel.io
DocumentRoot /var/www/nextcloud/
# log files
ErrorLog /var/log/apache2/files.beispiel.io-error.log
CustomLog /var/log/apache2/files.beispiel.io-access.log combined
<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>
Speichere die Änderungen und beende den Editor. Aktiviere danach die Konfiguration mit dem folgenden Befehl und überprüfe diese:
sudo a2ensite nextcloud.conf
sudo apachectl configtest

Wenn du die Ausgabe „Syntax OK“ erhälst, starte Apache2 neu. Hierbei wird unsere Konfiguration vom System übernommen und ausgeführt:
sudo systemctl restart apache2
Schritt 9 – Absicherung mit SSL/TLS
Ohne weitere Einstellungen nutzt du Nextcloud auf Debian 12 nun über ein ungesichertes HTTP-Protokoll. Zum Schutz deiner Daten richte bitte daher am besten HTTPS ein. Nutze dafür bitte den folgenden Befehl:
sudo apt install certbot python3-certbot-apache
Generiere dann ein SSL-Zertifikat. Dafür ersetzt du erneut den Platzhalter „beispiel“ durch deinen tatsächlichen Domainnamen:
sudo certbot --apache --agree-tos --redirect --hsts --staple-ocsp --email user@beispiel.io -d nextcloud.beispiel.io
Schritt 10 – Abschluss der Installation von Nextcloud unter Debian 12
Jetzt ist es endlich soweit, wir schließen nun die Installation von Nextcloud auf Debian 12 ab. Dafür öffnen wir den Webbrowser und rufe den Domainnamen deiner Nextcloud-Installation auf. Gebe einen Benutzernamen und dein Passwort ein, um einen Administrator zu erstellen.
Füge dann den Namen deiner Datenbank, den Nutzernamen und das Passwort ein und klicke auf „Install“. Im Anschluss kannst du wahlweise einige kompatible Apps downloaden oder diesen Punkt vorerst überspringen.
Nun wirst du zu deinem Dashboard weitergeleitet und kannst Nextcloud für deine Daten verwenden.