Teil 3: Nextcloud herunterladen, installieren und einrichten
In diesem Abschnitt installieren wir Nextcloud vollständig auf dem vorbereiteten Debian-13-System. Dazu richten wir den LAMP-Stack ein, konfigurieren Apache und PHP passend für Nextcloud, binden das Datenverzeichnis außerhalb des Webroots ein und schließen die Installation inklusive grundlegender Optimierungen ab.
Am Ende dieses Abschnitts:
- läuft Nextcloud unter cloud.zn80.net
- liegen alle Nutzerdaten sauber unter /srv/cloud.zn80.net/data
- ist die Datenbank abgesichert und angebunden
- sind Caching, Proxy-Betrieb und optionale Performance-Features vorbereitet
System aktualisieren
Bevor wir mit der eigentlichen Installation beginnen, bringen wir das System auf den aktuellen Stand.
sudo apt update && sudo apt upgrade -y
MariaDB installieren und absichern
Zuerst installieren wir den Datenbankserver und den Client.
sudo apt install mariadb-server mariadb-client-compat
Anschließend wechseln wir in die MariaDB-Shell und legen die Datenbank für Nextcloud an.
sudo mariadb
Innerhalb der MariaDB-Shell:
CREATE DATABASE nextcloud;
GRANT ALL PRIVILEGES ON nextcloud.* TO 'nextcloud'@'localhost' IDENTIFIED BY '<DATENBANK_PASSWORT>';
FLUSH PRIVILEGES;
EXIT;
Nun sichern wir die MariaDB-Installation ab.
sudo mysql_secure_installation
Empfohlene Antworten:
- unix_socket authentication: n
- root-Passwort setzen: Y
- anonyme Nutzer entfernen: Y
- Remote-Root-Login verbieten: Y
- Testdatenbank entfernen: Y
- Privilegien neu laden: Y
Apache, PHP und benötigte Erweiterungen installieren
Wir installieren Apache indirekt über die PHP-Pakete sowie alle für Nextcloud notwendigen Erweiterungen.
sudo apt install imagemagick-7.q16 php php-apcu php-bcmath php-cli php-common php-curl php-gd php-gmp php-imagick php-intl php-mbstring php-mysql php-zip php-bz2 php-xml
Anschließend aktivieren wir die benötigten PHP-Module.
sudo phpenmod apcu bcmath gmp imagick intl unzip
Zusätzlich stellen wir sicher, dass unzip und wget vorhanden sind.
sudo apt install unzip wget
Nextcloud herunterladen und vorbereiten
Nun laden wir die aktuelle Nextcloud-Version herunter und entpacken sie.
wget https://download.nextcloud.com/server/releases/latest.zip
unzip latest.zip
Das entpackte Verzeichnis benennen wir auf den FQDN des Dienstes um und verschieben es in das Apache-Webverzeichnis.
mv nextcloud cloud.zn80.net
sudo chown -R www-data:www-data cloud.zn80.net
sudo mv cloud.zn80.net /var/www/
Die Apache-Standardseite deaktivieren wir.
sudo a2dissite 000-default.conf
Benötigte Apache-Module aktivieren wir ebenfalls.
sudo a2enmod dir env headers mime rewrite ssl
sudo systemctl restart apache2
Apache Virtual Host für Nextcloud anlegen
Wir erstellen nun die Apache-Konfiguration für cloud.zn80.net.
sudo nano /etc/apache2/sites-available/cloud.zn80.net.conf
Inhalt der Datei:
<VirtualHost *:80>
ServerAdmin mail@cbrueggenolte.de
DocumentRoot "/var/www/cloud.zn80.net"
ServerName cloud.zn80.net
<Directory "/var/www/cloud.zn80.net/">
Options FollowSymLinks
AllowOverride All
Header always set Referrer-Policy "no-referrer"
Require all granted
SetEnv HOME /var/www/cloud.zn80.net
SetEnv HTTP_HOME /var/www/cloud.zn80.net
</Directory>
TransferLog /var/log/apache2/cloud.zn80.net_access.log
ErrorLog /var/log/apache2/cloud.zn80.net_error.log
</VirtualHost>
Die Site wird noch nicht aktiviert.
PHP für Nextcloud optimieren
Wir passen nun die PHP-Konfiguration an.
sudo nano /etc/php/8.4/apache2/php.ini
Folgende Werte setzen oder anpassen:
memory_limit = 512M
upload_max_filesize = 200M
post_max_size = 200M
max_execution_time = 360
date.timezone = Europe/Amsterdam
opcache.enable=1
opcache.memory_consumption=128
opcache.interned_strings_buffer=16
opcache.max_accelerated_files=10000
opcache.revalidate_freq=1
opcache.save_comments=1
Nun aktivieren wir die Site und laden Apache neu.
sudo a2ensite cloud.zn80.net.conf
sudo systemctl restart apache2
Für CLI-Caching aktivieren wir APCu.
sudo nano /etc/php/8.4/mods-available/apcu.ini
Am Ende ergänzen:
apc.enable_cli=1
Apache erneut neu starten.
sudo systemctl restart apache2
Datenverzeichnis vorbereiten
Das Nextcloud-Datenverzeichnis darf/sollte nicht im Webroot liegen.
Zuerst stellen wir sicher, dass das Mount-Ziel existiert.
sudo mkdir -p /srv/cloud.zn80.net
In der /etc/fstab ist die Datenfestplatte bereits eingetragen.
Nun testen wir den Mount.
sudo mount -a
df -h /srv/cloud.zn80.net
Anschließend erstellen wir das eigentliche Datenverzeichnis und setzen sichere Berechtigungen.
sudo mkdir /srv/cloud.zn80.net/data
sudo chown -R www-data:www-data /srv/cloud.zn80.net/data
sudo chmod -R 750 /srv/cloud.zn80.net/data
Web-Installation von Nextcloud
Rufe im Browser http://cloud.zn80.net auf.
Einzugeben sind:
Admin-Benutzer:
- Benutzername:
nextcloud_admin - Passwort: eigenes, sicheres Passwort
Datenverzeichnis:
/srv/cloud.zn80.net/data
Datenbank:
- Benutzer:
nextcloud - Datenbank:
nextcloud - Passwort: Datenbank-Passwort
- Server:
localhost:3306
Nextcloud Apps
Ich habe hier für mich entschieden, nur Kalender, Kontakte, Notizen und Talk zu behalten. Die anderen beiden benötige ich vorerst nicht. Man kann sie bei Bedarf aber jederzeit nachinstallieren.
Danach ist ist dieser Teil vorerst abgeschlossen. Wir gehen wieder zurück auf die Kommandozeile.
Post-Install-Optimierungen
Obwohl wir gerade das Installationsprogramm durchgesehen haben, gibt es ein paar Dinge, die Nextcloud bei einer Neuinstallation nicht macht. Um diese Optimierungen zu implementieren, markieren Sie zuerst das ausführbare occ-Skript (achten Sie darauf, den Pfad so zu aktualisieren, dass er mit Ihrem übereinstimmt):
Optimieren der Nextcloud-Datenbank
Zuerst machen wir das occ-CLI-Tool temporär ausführbar.
sudo chmod +x /var/www/cloud.zn80.net/occ
Fehlende Datenbank-Indizes ergänzen:
sudo /var/www/cloud.zn80.net/occ db:add-missing-indices
Reparaturen durchführen:
sudo /var/www/cloud.zn80.net/occ maintenance:repair --include-expensive
Anschließend das Ausführungsbit wieder entfernen.
sudo chmod -x /var/www/cloud.zn80.net/occ
Die Konfigurationsdatei absichern:
sudo chown root:www-data /var/www/cloud.zn80.net/config/config.php
sudo chmod 660 /var/www/cloud.zn80.net/config/config.php
Trusted Proxies und Caching konfigurieren
Die Konfigurationsdatei öffnen:
sudo nano /var/www/cloud.zn80.net/config/config.php
Geeignet ergänzen:
'trusted_proxies' => [
'192.168.10.105',
],
'memcache.local' => '\OC\Memcache\APCu',
'default_phone_region' => 'DE',
Die Proxy-IP ist die Adresse des Reverse Proxys (z. B. Nginx Proxy Manager).
Redis installieren (optional, empfohlen)
Redis verbessert Performance und Dateisperren deutlich.
Installation:
sudo apt install redis-server php-redis
Redis konfigurieren:
sudo nano /etc/redis/redis.conf
Anpassen:
port 6379→port 0# unixsocket /run/redis/redis-server.sock→ auskommentieren# unixsocketperm 700→unixsocketperm 770
www-data zur redis-Gruppe hinzufügen:
sudo usermod -aG redis www-data
Nextcloud-Konfiguration ergänzen:
'filelocking.enabled' => true,
'memcache.locking' => '\OC\Memcache\Redis',
'redis' => [
'host' => '/run/redis/redis-server.sock',
'port' => 0,
'timeout' => 0.0,
],
Dienste neu starten:
sudo systemctl restart redis
sudo systemctl restart apache2
Optionaler Test:
sudo redis-cli -s /run/redis/redis-server.sock MONITOR
Damit ist die Nextcloud-Installation abgeschlossen und sauber aufgesetzt.

