Nextcloud ist eine der beliebtesten Open-Source-Cloud-Lösungen, mit der du deine Daten privat und sicher verwalten kannst. Ob Fotos, Dokumente oder Kalenderdaten – mit einer eigenen Nextcloud behältst du die volle Kontrolle über deine Daten, ohne auf Drittanbieter zurückgreifen zu müssen.
In diesem Artikel zeige ich dir, wie du Nextcloud auf einem eigenen Linux-Server installieren und optimal konfigurieren kannst. Außerdem gebe ich Tipps, wie du wichtige Dienste wie PHP-FPM, Redis und MariaDB so anpasst, dass deine Cloud-Lösung effizient und zuverlässig läuft.
Wenn du Unterstützung benötigst, stehen wir dir mit unserem Nextcloud-Installationsservice gerne zur Seite.

Nextcloud installieren – Voraussetzungen
Technische Anforderungen
- Linux-Server: Ubuntu 22.04 LTS oder 24.04 LTS wird empfohlen.
- Zugang: SSH-Zugang mit root-Rechten oder einem Benutzer mit sudo-Berechtigung.
- Domain: Optional für HTTPS-Zugriff (z. B.
mycloud.example.com
). - Hardware: Mindestens 2 CPU-Kerne, 2 GB RAM, 20 GB Speicherplatz für Testinstallationen. Für produktive Umgebungen: mehr Ressourcen je nach Nutzeranzahl.
Vorbereitungen
- Server-Zugang sicherstellen.
- Sicherstellen, dass der Server aktuelle Updates installiert hat:
sudo apt update && sudo apt upgrade -y
Server vorbereiten
Bevor du Nextcloud installieren kannst, solltest du alle benötigten Pakete und Dienste installieren.
Grundlegende Pakete installieren
sudo apt install apache2 mariadb-server php libapache2-mod-php php-cli php-mysql php-zip php-xml php-curl php-mbstring php-gd php-imagick php-intl unzip curl redis-server php-redis php-fpm -y

Apache Webserver einrichten
Aktiviere die notwendigen Apache-Module
sudo a2enmod rewrite headers env dir mime ssl proxy_fcgi setenvif
Firewall konfigurieren
Falls du die Firewall UFW verwenden möchtest
sudo ufw allow OpenSSH
sudo ufw allow "Apache Full"
sudo ufw enable
Datenbank einrichten
MariaDB ist eine ausgezeichnete Wahl für Nextcloud. Nach der Installation konfigurieren wir die Datenbank.
Sichere Installation von MariaDB
sudo mysql_secure_installation
Folge den Anweisungen, um ein Root-Passwort festzulegen und unsichere Einstellungen zu entfernen.
Datenbank und Benutzer erstellen
Melde dich an der Datenbank an:
sudo mysql -u root -p
Führe im Anschluss die folgenden Befehle aus:
CREATE DATABASE nextcloud;
CREATE USER 'nextclouduser'@'localhost' IDENTIFIED BY 'sicheres-passwort';
GRANT ALL PRIVILEGES ON nextcloud.* TO 'nextclouduser'@'localhost';
FLUSH PRIVILEGES;
EXIT;
Nextcloud herunterladen und konfigurieren
Nextcloud herunterladen
Lade die neueste Version herunter und entpacke die Dateien, um Nextcloud installieren zu können:
wget https://download.nextcloud.com/server/releases/latest.zip
unzip latest.zip
sudo mv nextcloud /var/www/
Berechtigungen setzen
sudo chown -R www-data:www-data /var/www/nextcloud
sudo chmod -R 750 /var/www/nextcloud
Apache Virtual Host einrichten
Erstelle einen Virtual Host in Apache:
sudo nano /etc/apache2/sites-available/nextcloud.conf
Füge nun den folgenden Inhalt ein:
<VirtualHost *:80>
ServerName mycloud.example.com
DocumentRoot /var/www/nextcloud
<Directory /var/www/nextcloud>
Require all granted
AllowOverride All
Options FollowSymLinks MultiViews
</Directory>
<IfModule mod_dav.c>
Dav off
</IfModule>
ErrorLog ${APACHE_LOG_DIR}/nextcloud_error.log
CustomLog ${APACHE_LOG_DIR}/nextcloud_access.log combined
</VirtualHost>
Aktiviere nun deine Konfiguration:
sudo a2ensite nextcloud.conf
sudo systemctl reload apache2
PHP-FPM und OPcache einrichten
PHP-FPM aktivieren
Deaktiviere mod_php und aktiviere PHP-FPM:
sudo a2dismod php
sudo a2enconf php8.3-fpm
sudo systemctl reload apache2
PHP optimieren
Passe die Datei /etc/php/8.3/fpm/php.ini
an:
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
Die optimalen Werte für OPcache hängen vor allem von deinem System ab, auf dem du Nextcloud installieren wirst.
Speicher und Upload-Größe erhöhen
Passe die gleichen PHP-INI-Dateien an, um Upload-Größen und den Speicher zu erhöhen:
sudo nano /etc/php/8.3/fpm/php.ini
sudo nano /etc/php/8.3/cli/php.ini
Ändere die folgenden Werte:
memory_limit = 2G
upload_max_filesize = 16G
post_max_size = 16G
max_execution_time = 3600
Auch hier hängen die Werte von deinem System ab. Ich habe PHP einen Arbeitsspeicher von 2GB zur Verfügung gestellt. Starte PHP-FPM neu, damit die Änderungen wirksam werden:
sudo systemctl restart php8.3-fpm
Redis für Caching einrichten
Redis ist ein schneller Speicher-Caching-Dienst, der die Performance von Nextcloud deutlich verbessern kann. Hier zeige ich dir, wie du Redis auf einem Server-Socket laufen lassen und in Nextcloud integrieren kannst.
Redis für Socket-Verbindung konfigurieren
Öffne die Konfigurationsdatei von Redis:
sudo nano /etc/redis/redis.conf
Suche nach der Zeile # unixsocket /run/redis/redis.sock
und ändere diese wie folgt:
unixsocket /var/run/redis/redis-server.sock
unixsocketperm 770
Deaktiviere den Netzwerkzugriff, um Redis nur lokal verfügbar zu machen:
bind 127.0.0.1 ::1
#port 6379
Passe die Berechtigungen des Sockets an und füge den Apache- oder PHP-FPM-Benutzer zur Redis-Gruppe hinzu:
sudo usermod -aG redis www-data
sudo systemctl restart redis-server
Redis in Nextcloud integrieren
Bearbeite die config.php
von Nextcloud:
sudo nano /var/www/nextcloud/config/config.php
Füge folgende Zeilen hinzu bzw. ändere die Zeilen, um den Redis-Socket zu nutzen:
'memcache.local' => '\\OC\\Memcache\\Redis',
'filelocking.enabled' => true,
'memcache.distributed' => '\\OC\\Memcache\\Redis',
'memcache.locking' => 'OC\\Memcache\\Redis',
'redis' =>
array (
'host' => '/var/run/redis/redis-server.sock',
'port' => 0,
'timeout' => 1.5,
),
Starte Apache und PHP-FPM neu:
sudo systemctl restart apache2 php8.3-fpm
SSL-Verschlüsselung hinzufügen
Mit Let’s Encrypt sicherst du deine Verbindung ab:
sudo apt install certbot python3-certbot-apache
sudo certbot --apache -d mycloud.example.com
Die Zertifikate werden automatisch erneuert.
HTTP/2 in Apache aktivieren
HTTP/2 verbessert die Geschwindigkeit der Datenübertragung durch Multiplexing und andere Optimierungen. Um HTTP/2 zu aktivieren, gehe wie folgt vor:
Schritt 1: Apache-Modul für HTTP/2 aktivieren:
sudo a2enmod http2
sudo systemctl restart apache2
Schritt 2: VirtualHost für HTTP/2 konfigurieren
Öffne die Konfiguration deines VirtualHosts:
sudo nano /etc/apache2/sites-available/nextcloud-le-ssl.conf
Füge in der <VirtualHost>
-Sektion folgende Zeile hinzu:
Protocols h2 http/1.1
Ein vollständiges Beispiel:
<IfModule mod_ssl.c>
<VirtualHost *:443>
ServerName mycloud.example.com
DocumentRoot /var/www/nextcloud
<Directory /var/www/nextcloud>
Require all granted
AllowOverride All
Options FollowSymLinks MultiViews
</Directory>
Protocols h2 http/1.1
SSLEngine on
SSLCertificateFile /etc/letsencrypt/live/mycloud.example.com/fullchain.pem
SSLCertificateKeyFile /etc/letsencrypt/live/mycloud.example.com/privkey.pem
ErrorLog ${APACHE_LOG_DIR}/nextcloud_error.log
CustomLog ${APACHE_LOG_DIR}/nextcloud_access.log combined
</VirtualHost>
</IfModule>
Schritt 3: Apache neustarten
Starte den Apache-Dienst neu, damit die Änderungen wirksam werden:
sudo systemctl restart apache2
Schritt 4: HTTP/2-Unterstützung überprüfen
Überprüfe, ob HTTP/2 aktiviert wurde, mit einem Tool wie curl:
curl -I -k --http2 https://mycloud.example.com
Die Ausgabe sollte HTTP/2 200
enthalten, was bestätigt, dass HTTP/2 aktiv ist.
Vorteile von HTTP/2
- Schnellere Ladezeiten: Multiplexing ermöglicht parallele Übertragung mehrerer Dateien.
- Effizientere Nutzung: Header-Komprimierung und reduzierte Latenz.
Web-Setup abschließen
Öffne die URL https://mycloud.example.com
in deinem Browser. Gib die Datenbankinformationen ein:
- Datenbankbenutzer:
nextclouduser
- Passwort:
sicheres-passwort
- Datenbankname:
nextcloud


Speicherort von Nextcloud Daten ändern
Standardmäßig speichert Nextcloud die Nutzerdaten im Verzeichnis data
, das sich im Installationsordner befindet (z. B. /var/www/nextcloud/data
). Um den Speicherort der Daten zu ändern, z.B. auf einer externen Festplatte, sind einige Anpassungen erforderlich.
Schritt 1: Neues Speicherverzeichnis erstellen
Erstelle ein neues Verzeichnis, in dem die Daten gespeichert werden sollen. Wähle einen Speicherort außerhalb des Webroot (z. B. /mnt/nextcloud-data
):
sudo mkdir -p /mnt/nextcloud-data
sudo chown -R www-data:www-data /mnt/nextcloud-data
sudo chmod -R 750 /mnt/nextcloud-data
Schritt 2: Speicherort beim Setup angeben
Wenn Du zum ersten Mal über den Webinstaller Nextcloud installieren willst, gib den neuen Speicherort in das entsprechende Feld ein:
- Datenverzeichnis:
/mnt/nextcloud-data
Schritt 3: Speicherort nachträglich ändern
Wenn Nextcloud bereits installiert ist und du den Speicherort ändern möchtest:
- Nextcloud in den Wartungsmodus versetzen:
sudo -u www-data php /var/www/nextcloud/occ maintenance:mode --on
- Daten ins neue Verzeichnis verschieben:
sudo rsync -av /var/www/nextcloud/data /mnt/nextcloud-data
- Config-Datei anpassen:
Öffnen Sie die Dateiconfig.php
:sudo nano /var/www/nextcloud/config/config.php
Ändern Sie den Eintrag für das Datenverzeichnis'datadirectory' => '/mnt/nextcloud-data',
- Berechtigungen für das neue Verzeichnis setzen:
Stellen Sie sicher, dass der Webserver-Benutzer Zugriff hat:sudo chown -R www-data:www-data /mnt/nextcloud-data sudo chmod -R 750 /mnt/nextcloud-data
- Wartungsmodus deaktivieren:
sudo -u www-data php /var/www/nextcloud/occ maintenance:mode --off
Hinweis:
- Stelle sicher, dass das neue Verzeichnis ausreichend Speicherplatz bietet.
- Für Netzwerkspeicher (NFS oder SMB) sind zusätzliche Konfigurationen erforderlich, um die Berechtigungen und die Performance zu optimieren.
Feintuning für Performance
Cron-Job einrichten
sudo crontab -u www-data -e
Füge den folgenden Cron-Job hinzu:
*/5 * * * * php -f /var/www/nextcloud/cron.php
MariaDB optimieren
Bearbeite die Datei /etc/mysql/my.cnf
:
[mysqld]
innodb_buffer_pool_size=1G
innodb_log_file_size=256M
innodb_file_per_table=1
innodb_flush_log_at_trx_commit=2
Starte anschließend den Datenbank-Server neu:
sudo systemctl restart mysql