SpawnpunktSpawnpunkt
Nextcloud Logo
Linux

Nextcloud auf einem Linux Server installieren

von aNDJESUS·08/13/2026
Linux Tutorial

Nextcloud auf Linux Server installieren

Diese Anleitung zeigt dir Schritt für Schritt, wie du Nextcloud auf einem Linux-Server mit Apache, PHP und MariaDB installierst und anschließend sicher über HTTPS betreibst.

SicherPrivatSelbst gehostet
Betriebssystem
Ubuntu Server 24.04 LTS
Schwierigkeit
Mittel
Dauer
ca. 20–30 Minuten
Zugriff
Root/sudo erforderlich

Voraussetzungen

Voraussetzungen

  • Ubuntu Server 24.04 LTS
  • Root- oder sudo-Zugriff
  • Eigene Domain oder Subdomain
  • Öffentliche IPv4- oder IPv6-Adresse
  • Mindestens 2 GB RAM empfohlen
  • Ports 80 und 443 erreichbar
  • DNS-Eintrag auf den Server

Für größere Nextcloud-Installationen mit mehreren Benutzern sollte entsprechend mehr RAM und CPU-Leistung eingeplant werden.

Server vorbereiten

Aktualisiere zunächst das Betriebssystem und installiere vorhandene Sicherheits- und Paketupdates.

bash
sudo apt update
sudo apt upgrade -y
sudo apt autoremove -y

Firewall konfigurieren

SSH immer zuerst freigeben, bevor UFW aktiviert wird, damit der Administrator sich nicht selbst vom Server aussperrt.

bash
sudo ufw allow OpenSSH
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp
sudo ufw enable
sudo ufw status

Apache, MariaDB und PHP installieren

Installiere Apache, MariaDB sowie die von Nextcloud benötigten PHP-Erweiterungen.

bash
sudo apt install -y \
apache2 \
mariadb-server \
libapache2-mod-php \
php \
php-cli \
php-common \
php-gd \
php-mysql \
php-curl \
php-mbstring \
php-intl \
php-gmp \
php-xml \
php-imagick \
php-zip \
php-bcmath \
php-apcu \
unzip \
bzip2 \
curl \
wget

Danach:

bash
php -v

Dienste aktivieren:

bash
sudo systemctl enable --now apache2
sudo systemctl enable --now mariadb

Status prüfen:

bash
sudo systemctl status apache2
sudo systemctl status mariadb

Datenbank erstellen

MariaDB absichern

bash
sudo mariadb-secure-installation

Dabei sollten anonyme Benutzer entfernt, der Remote-Root-Login deaktiviert, die Testdatenbank entfernt und die Privilegien neu geladen werden.

Nextcloud-Datenbank erstellen

bash
sudo mariadb
SQL
CREATE DATABASE nextcloud CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;

CREATE USER 'nextcloud'@'localhost'
IDENTIFIED BY 'DEIN_SICHERES_PASSWORT';

GRANT ALL PRIVILEGES ON nextcloud.*
TO 'nextcloud'@'localhost';

FLUSH PRIVILEGES;

EXIT;

"DEIN_SICHERES_PASSWORT" muss durch ein eigenes langes und sicheres Passwort ersetzt werden.

Nextcloud herunterladen

bash
cd /tmp
wget https://download.nextcloud.com/server/releases/latest.tar.bz2
wget https://download.nextcloud.com/server/releases/latest.tar.bz2.sha256

Danach Prüfsumme kontrollieren:

bash
sha256sum -c latest.tar.bz2.sha256

Erwartete Ausgabe:

Plain Text
latest.tar.bz2: OK

Archiv entpacken:

bash
tar -xjf latest.tar.bz2
sudo mv nextcloud /var/www/nextcloud
sudo chown -R www-data:www-data /var/www/nextcloud

Apache konfigurieren

Nextcloud-Datenverzeichnis

Das Datenverzeichnis liegt aus Sicherheitsgründen außerhalb des öffentlich erreichbaren Webverzeichnisses.

bash
sudo mkdir -p /srv/nextcloud-data
sudo chown -R www-data:www-data /srv/nextcloud-data
sudo chmod 750 /srv/nextcloud-data

In /srv/nextcloud-data werden später die eigentlichen Dateien der Nextcloud-Benutzer gespeichert.

Apache Virtual Host

bash
sudo nano /etc/apache2/sites-available/nextcloud.conf
apache
<VirtualHost *:80>

    ServerName cloud.deinedomain.de
    DocumentRoot /var/www/nextcloud

    <Directory /var/www/nextcloud/>
        Require all granted
        AllowOverride All
        Options FollowSymLinks MultiViews

        <IfModule mod_dav.c>
            Dav off
        </IfModule>
    </Directory>

    ErrorLog ${APACHE_LOG_DIR}/nextcloud_error.log
    CustomLog ${APACHE_LOG_DIR}/nextcloud_access.log combined

</VirtualHost>
bash
sudo a2enmod rewrite headers env dir mime
sudo a2ensite nextcloud.conf
sudo apache2ctl configtest
sudo systemctl reload apache2

Bei erfolgreicher Prüfung sollte "Syntax OK" erscheinen.

Nextcloud installieren

Die Installation wird über die Kommandozeile (occ) abgeschlossen.

bash
cd /var/www/nextcloud
bash
sudo -E -u www-data php occ maintenance:install \
--database "mysql" \
--database-name "nextcloud" \
--database-user "nextcloud" \
--database-pass "DEIN_SICHERES_PASSWORT" \
--admin-user "admin" \
--admin-pass "DEIN_ADMIN_PASSWORT" \
--data-dir "/srv/nextcloud-data"

"DEIN_SICHERES_PASSWORT" und "DEIN_ADMIN_PASSWORT" müssen vor dem Ausführen durch eigene, sichere Passwörter ersetzt werden.

Domain konfigurieren

bash
sudo -u www-data php /var/www/nextcloud/occ \
config:system:set trusted_domains 1 \
--value=cloud.deinedomain.de

Danach zur Kontrolle:

bash
sudo -u www-data php /var/www/nextcloud/occ \
config:system:get trusted_domains

HTTPS aktivieren

Sichere deine Nextcloud mit einem kostenlosen TLS-Zertifikat von Let’s Encrypt ab.

bash
sudo apt install -y snapd
sudo snap install --classic certbot
sudo ln -s /snap/bin/certbot /usr/local/bin/certbot
sudo certbot --apache -d cloud.deinedomain.de

Zertifikatsverlängerung testen:

bash
sudo certbot renew --dry-run

Deine Nextcloud sollte anschließend ausschließlich über HTTPS aufgerufen werden.

HTTPS in Nextcloud hinterlegen

bash
sudo -u www-data php /var/www/nextcloud/occ \
config:system:set overwrite.cli.url \
--value="https://cloud.deinedomain.de"
bash
sudo -u www-data php /var/www/nextcloud/occ \
config:system:set overwriteprotocol \
--value="https"
bash
sudo -E -u www-data php \
/var/www/nextcloud/occ maintenance:update:htaccess

Cron konfigurieren

Hintergrundaufgaben sollten im produktiven Betrieb über Cron statt AJAX ausgeführt werden.

bash
sudo -u www-data php /var/www/nextcloud/occ background:cron
bash
sudo crontab -u www-data -e
cron
*/5 * * * * php -f /var/www/nextcloud/cron.php

Dieser Cronjob führt die Nextcloud-Hintergrundaufgaben alle fünf Minuten aus.

PHP optimieren

bash
sudo nano /etc/php/8.3/apache2/php.ini

Empfohlene Beispielwerte:

ini
memory_limit = 512M
upload_max_filesize = 2G
post_max_size = 2G
max_execution_time = 3600
max_input_time = 3600
bash
sudo systemctl restart apache2

Die optimalen Werte hängen von Serverleistung, Benutzerzahl und maximaler Uploadgröße ab.

APCu-Caching aktivieren

bash
php -m | grep -i apcu
bash
sudo apt install -y php-apcu
sudo systemctl restart apache2
bash
sudo -u www-data php /var/www/nextcloud/occ \
config:system:set memcache.local \
--value='\OC\Memcache\APCu'

Installation überprüfen

bash
sudo -u www-data php /var/www/nextcloud/occ status

Beispielausgabe:

Plain Text
installed: true
maintenance: false
needsDbUpgrade: false
bash
sudo apache2ctl configtest
sudo systemctl reload apache2

Nützliche Befehle

Apache Status
sudo systemctl status apache2
Apache Neustart
sudo systemctl restart apache2
Nextcloud Status
sudo -u www-data php /var/www/nextcloud/occ status
PHP-Version
php -v
Apache prüfen
sudo apache2ctl configtest
Nextcloud Log
tail -n 100 /srv/nextcloud-data/nextcloud.log
Wartungsmodus an
sudo -u www-data php /var/www/nextcloud/occ maintenance:mode --on
Wartungsmodus aus
sudo -u www-data php /var/www/nextcloud/occ maintenance:mode --off

Deine Nextcloud ist danach unter deiner konfigurierten Domain erreichbar, als Platzhalter hier gezeigt:

https://cloud.deinedomain.de — ersetze dies durch deine eigene Domain, keine echte/anklickbare Adresse.

Fehlerbehebung

Häufige Probleme und ihre Lösungen — zum Aufklappen anklicken.

Access through untrusted domain

Lösung: die eigene Domain als vertrauenswürdig eintragen.

bash
sudo -u www-data php /var/www/nextcloud/occ \
config:system:set trusted_domains 1 \
--value=cloud.deinedomain.de
Apache zeigt die Standardseite statt Nextcloud
bash
sudo a2ensite nextcloud.conf
sudo a2dissite 000-default.conf
sudo systemctl reload apache2
HTTP Error 500

Apache-Log prüfen:

bash
sudo tail -n 100 /var/log/apache2/nextcloud_error.log

Nextcloud-Log prüfen:

bash
sudo tail -n 100 /srv/nextcloud-data/nextcloud.log
Datenverzeichnis nicht beschreibbar
bash
sudo chown -R www-data:www-data /srv/nextcloud-data
sudo chmod 750 /srv/nextcloud-data

Sicherheit und Backups

Server absichern

  • Betriebssystem regelmäßig aktualisieren
  • Nextcloud regelmäßig aktualisieren
  • Apps aktuell halten
  • Starke Passwörter verwenden
  • Zwei-Faktor-Authentifizierung aktivieren
  • SSH-Key-Login verwenden
  • Nicht benötigte Ports schließen
  • Regelmäßige Backups erstellen
  • Datenbank sichern
  • Nextcloud-Daten sichern
  • config.php sichern
  • Backups regelmäßig testen

Was muss gesichert werden?

Diese Verzeichnisse:

  • /var/www/nextcloud/config
  • /srv/nextcloud-data

Sowie die Datenbank "nextcloud", zum Beispiel:

bash
sudo mariadb-dump nextcloud > /root/nextcloud-database.sql

Ein Backup sollte niemals ausschließlich auf demselben Server gespeichert werden wie die produktive Nextcloud.

Installation abgeschlossen

Deine Nextcloud ist jetzt installiert und über deine Domain erreichbar. Öffne nach dem ersten Login die Nextcloud-Verwaltung unter „Verwaltungseinstellungen → Übersicht“ und kontrolliere alle dort angezeigten Sicherheits- und Konfigurationshinweise.

ApacheMariaDBPHPHTTPSCronAPCu
Nextcloud auf Linux installieren – Ubuntu Server Anleitung | Spawnpunkt.de