Nextcloud installieren: Eine Schritt-für-Schritt-Anleitung für deinen Linux-Server

Nextcloud auf eigenem Linux-Server installieren

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 auf eigenem Linux-Server installieren
Mit Nextcloud erhältst du volle Kontrolle über deine Daten

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

  1. Server-Zugang sicherstellen.
  2. 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
Linux, Apache, PHP und MySQL bilden den LAMP-Server, die Grundlage für Nextcloud
Der LAMP-Server bildet die Grundlage für deine Nextcloud-Installation

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
Erste Anmeldung an deiner Nextcloud
Erste Anmeldung
Verbindung der Nextcloud mit der Datenbank
Verbindung Datenbank

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:

  1. Nextcloud in den Wartungsmodus versetzen:
    sudo -u www-data php /var/www/nextcloud/occ maintenance:mode --on
  2. Daten ins neue Verzeichnis verschieben:
    sudo rsync -av /var/www/nextcloud/data /mnt/nextcloud-data
  3. Config-Datei anpassen:
    Öffnen Sie die Datei config.php:
    sudo nano /var/www/nextcloud/config/config.php
    Ändern Sie den Eintrag für das Datenverzeichnis
    'datadirectory' => '/mnt/nextcloud-data',
  4. 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
  5. 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

Fazit

Die eigene Cloud steht

Mit dieser Anleitung kannst du auf einem Linux-Server erfolgreich deine eigene Nextcloud installieren. Für zusätzliche Optimierungen oder komplexere Anforderungen kannst du unseren Nextcloud-Installationsservice in Anspruch nehmen. Kontaktiere uns noch heute!

Kommentar verfassen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

Nach oben scrollen