Nextcloud Installation leicht gemacht: Ein Leitfaden für die eigene Cloud

Inhalt

Nextcloud ist eine leistungsstarke Open-Source-Plattform für die Dateisynchronisation und -freigabe sowie für die Zusammenarbeit und den Zugriff auf Dateien über das Internet. Mit Nextcloud kannst du deine eigenen privaten Cloud-Services auf einem eigenen Server oder einer Cloud-Infrastruktur betreiben. Es ermöglicht dir, Dateien zu speichern, zu organisieren und von überall auf der Welt darauf zuzugreifen.

Nextcloud bietet eine Vielzahl von Funktionen, die es zu einer flexiblen Lösung für die Dateiverwaltung machen. Du kannst Dateien und Ordner freigeben, Kalender und Kontakte verwalten, Dokumente bearbeiten, Notizen erstellen und vieles mehr. Es verfügt auch über eine benutzerfreundliche Web-Oberfläche und unterstützt eine breite Palette von Desktop- und mobilen Geräten.

Eine der großen Vorteile von Nextcloud ist die hohe Sicherheit und Datenschutz. Du behältst die volle Kontrolle über deine Daten, da sie auf deinem eigenen Server oder der von dir gewählten Infrastruktur gespeichert werden. Du kannst auch zusätzliche Sicherheitsmaßnahmen wie die Zwei-Faktor-Authentifizierung und die Verschlüsselung deiner Daten implementieren.

Die Installation von Nextcloud auf einem Ubuntu Server ist vergleichsweise einfach und ermöglicht es dir, die Vorteile dieser leistungsstarken Plattform zu nutzen. In diesem Blogbeitrag zeige ich dir wie man Nextcloud auf einem Ubuntu 22.02 installiert. Für die Installation ist es wichtig, dass du root-Rechte auf dem Ubuntu-System besitzt.

Überprüfe vor der Installation die Hardwarevoraussetzungen von NextCloud:
Hardwarevoraussetzungen prüfen

Aktualisierung des Systems

Wir starten auf unserem Linux Ubuntu 22.04. Die Aktualisierung deines Ubuntu 22.04-Systems ist ein wichtiger erster Schritt vor der Installation von Nextcloud. Durch das Aktualisieren der Paketlisten und das Durchführen des Upgrades stellst du sicher, dass du die neuesten Softwareversionen und Sicherheitsverbesserungen erhältst. Dies ist entscheidend, um eine stabile und sichere Nextcloud-Umgebung zu gewährleisten.

Ubuntu aktualisieren und upgraden: So geht’s einfach und schnell

Installation der erforderlichen Pakete

Nachdem wir unser Ubuntu 22.04 aktualisiert haben, können wir nun mit der eigentlichen Installation von Nextcloud fortfahren. Die Installation der erforderlichen Pakete ist der nächste Schritt. Befolge die nachstehenden Anweisungen, um fortzufahren:

Installation Apache2

Öffne ein Terminalfenster und führe den folgenden Befehl aus, um den Apache-Webserver zu installieren

sudo apt install apache2

Der Apache-Webserver ist eine bewährte und leistungsstarke Lösung für den Hosting von Websites und Webanwendungen. Nextcloud benötigt den Apache-Webserver, um Dateien über das Internet bereitzustellen und den Zugriff auf die Cloud-Plattform zu ermöglichen.

Installation & Konfiguration MariaDB

Installiere die Datenbankkomponente MySQL/MariaDB, die von Nextcloud zur Speicherung von Benutzerdaten, Einstellungen und Metadaten verwendet wird. Führe dazu den folgenden Befehl aus:

sudo apt install mariadb-server

Nach der Installation solltest du den MariaDB-Dienst starten und sicherstellen, dass er beim Systemstart automatisch gestartet wird. Führe die folgenden Befehle aus:

sudo systemctl start mariadb
sudo systemctl enable mariadb

Nachdem der Dienst gestartet wurde, führe die Grundkonfiguration der MariaDB aus. Gebe Hierfür folgenden Befehl ein:

sudo mysql_secure_installation

Der Assistent führt dich durch verschiedene Schritte zur Verbesserung der Sicherheit deines MySQL Servers.

MySQL Installationsassistent Cheat Sheat:
Enter current password for root (enter for none): ENTER
Switch to unix_socket authentication: N
Change the root password? [Y/n]: Y
New Password: Gebe dein neues Root Passwort ein
Re-enter new Password: Bestätige dein neues Root Passwort ein
Remove anonymous users? [Y/n]: Y
Remove test database and access to it? [Y/n] Y
Reload privilege tables now? [Y/n] Y

Nach der Grundkonfiguration von MySQL wurde nun das MySQL Root Passwort gesetzt und alle Sicherheitseinstellungen in der Grundkonfiguration getroffen. Da nun MySQL Genutzt werden kann, muss die Datenbank und der Benutzer für NextCloud angelegt werden. Öffne dafür das MariaDB-Shell-Tool, indem du den folgenden Befehl ausführst:

sudo mysql -u root -p

Gib dein Root-Passwort ein, um Zugriff auf die Datenbankkonsole zu erhalten.
Erstelle dann eine neue Datenbank für Nextcloud:

CREATE DATABASE nextcloud;

Erstelle daraufhin einen neuen Benutzer und weise ihm Berechtigungen für die Nextcloud-Datenbank zu:

CREATE USER 'nextclouduser'@'localhost' IDENTIFIED BY 'dein sicheres Passwort';
GRANT ALL PRIVILEGES ON nextcloud.* TO 'nextclouduser'@'localhost';
FLUSH PRIVILEGES;

Ersetze 'dein sicheres Passwort' durch ein starkes Passwort für den Nextcloud-Benutzer.

Nachdem die Datenbank und der Benutzer angelegt wurde, kannst du das MariaDB-Shell-Tool verlassen.
Gebe hierzu folgende Befehle ein:

EXIT;

Installation & Konfiguration von PHP

apt install software-properties-common
add-apt-repository ppa:ondrej/php
apt update

PHP ist eine serverseitige Skriptsprache, die von Nextcloud benötigt wird, um dynamische Inhalte zu erzeugen und mit der Datenbank zu kommunizieren. Die unten genannten PHP-Erweiterungen stellen sicher, dass Nextcloud reibungslos funktioniert und alle erforderlichen Funktionen bereitstellt.

apt install php8.1 php8.1-curl php-pear php8.1-bcmath php8.1-xml php-dompdf php8.1-mbstring libmagickcore-6.q16-6-extra php8.1-zip php8.1-imagick php8.1-zip php8.1-intl php8.1-gd php8.1-redis php8.1-cli php8.1-mbstring php8.1-xml php8.1-mysql php8.1-curl php8.1-apcu php8.1-gmp php8.1-gd libapache2-mod-php8.1

Überprüfe, ob die Installation erfolgreich war, indem du die Versionen von Apache, MySQL/MariaDB und PHP überprüfst. Du solltest die Versionsnummern der installierten Komponenten sehen, um sicherzustellen, dass alles korrekt installiert wurde.

apache2 -v
mysql --version
php -v

Um PHP zu optimieren, muss die PHP.ini angepasst werden. Gebe hierzu folgenden Befehl ein:

nano /etc/php/8.1/apache2/php.ini

Suche nun nach folgenden Begriffen (Shortcut STRG + W) und ändere die Werte nach folgender Tabelle ab. Sobald du fertig bist kannst du die Datei abspeichern (Shortcut STRG + O) und schließen (Shortcut STRG + X)

SUCHBEGRIFF WERT:
memory_limit 1024M
upload_max_filesize 16G
post_max_size 16G
date.timezone Europe/Berlin
output_buffering Off

Konfiguration Apache2

Um sicherzustellen, dass der Apache-Webserver ordnungsgemäß mit Nextcloud funktioniert, müssen bestimmte Module aktiviert werden. Darüber hinaus ist es empfehlenswert, eine separate Konfigurationsdatei für Nextcloud zu erstellen, um die spezifischen Einstellungen zu verwalten.

Öffne ein Terminalfenster und führe den folgenden Befehl aus, um die erforderlichen Apache-Module zu aktivieren:

sudo a2enmod rewrite
sudo a2enmod headers
sudo a2enmod env
sudo a2enmod dir
sudo a2enmod mime

Dieser Befehl aktiviert die Module „rewrite“, „headers“, „env“, „dir“ und „mime“, die von Nextcloud benötigt werden, um die Anforderungen ordnungsgemäß zu verarbeiten. Diese Module ermöglichen das Umschreiben von URLs, die Verarbeitung von HTTP-Headern, das Setzen von Umgebungsvariablen, die Behandlung von Verzeichnissen und die Verarbeitung von MIME-Typen.

Erstelle eine neue Konfigurationsdatei für Nextcloud. Führe den folgenden Befehl aus, um eine neue Konfigurationsdatei für Nextcloud zu erstellen:

sudo nano /etc/apache2/sites-available/nextcloud.conf

Dieser Befehl öffnet den Nano-Texteditor und erstellt eine neue Datei mit dem Namen „nextcloud.conf“ im Verzeichnis „/etc/apache2/sites-available/“. Füge den folgenden Inhalt in die „nextcloud.conf“-Datei ein:

<VirtualHost *:80>
     ServerAdmin postmaster@DOMAIN.de
     DocumentRoot /var/www/nextcloud/
     ServerName SUBDOMAIN.DOMAIN.DE

     <Directory /var/www/nextcloud/>
        Options +FollowSymlinks
        AllowOverride All
        Require all granted
          <IfModule mod_dav.c>
            Dav off
          </IfModule>
        SetEnv HOME /var/www/nextcloud
        SetEnv HTTP_HOME /var/www/nextcloud
     </Directory>
     ErrorLog ${APACHE_LOG_DIR}/error.log
     CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>

Dieser Konfigurationsblock definiert einen virtuellen Host für Nextcloud, der den richtigen Serveradmin, das Dokumentenverzeichnis, den Alias und die Verzeichniseinstellungen festlegt. Stelle sicher, dass du die E-Mail-Adresse des Serveradministrators und die Domain entsprechend änderst.

Speichere die Datei und schließe den Nano-Editor:
Drücke die Tastenkombination „Ctrl + O„, um die Datei zu speichern, und dann „Ctrl + X„, um den Nano-Editor zu schließen.

Aktiviere die Nextcloud-Konfigurationsdatei. Führe den folgenden Befehl aus, um die Nextcloud-Konfigurationsdatei zu aktivieren:

sudo a2ensite nextcloud.conf

Dieser Befehl erstellt einen symbolischen Link zur Konfigurationsdatei im Verzeichnis „/etc/apache2/sites-enabled/“, um sie zu aktivieren.

Starte den Apache-Webserver neu. Um die Änderungen zu übernehmen, musst du den Apache-Webserver neu starten. Führe den folgenden Befehl aus:

sudo systemctl restart apache2

Damit werden die Aktivierung der Module und die Nextcloud-Konfiguration wirksam.

Installation NextCloud

Nachdem du die erforderlichen Vorbereitungen getroffen hast, ist es an der Zeit, Nextcloud selbst zu installieren. Befolge die folgenden Schritte, um Nextcloud auf deinem Ubuntu 22.04-Server zu installieren.Lade das Nextcloud-Installationspaket herunter. Öffne ein Terminalfenster und wechsle in das Verzeichnis „/tmp“, um temporäre Dateien abzulegen:

cd /tmp

Lade das Nextcloud-Installationspaket mit dem folgenden Befehl herunter (überprüfe die offizielle Nextcloud-Website, um die neueste Version zu finden):

wget https://download.nextcloud.com/server/releases/latest.zip
sudo unzip latest.zip
sudo mv nextcloud /var/www/

Weise die richtigen Berechtigungen dem Nextcloud-Verzeichnis zu. Setze die Berechtigungen für den Nextcloud-Ordner mit dem folgenden Befehl. Damit wird der Benutzer und die Gruppe „www-data“ (die vom Apache-Webserver verwendet wird) als Eigentümer des Nextcloud-Ordners festgelegt.

sudo chown -R www-data:www-data /var/www/nextcloud

NextCloud Dateiverzeichnis vorbereiten

Erstelle ein Verzeichnis außerhalb des Webserver-Dokumentenverzeichnisses, in dem die Nextcloud-Daten gespeichert werden sollen. Du kannst den folgenden Befehl verwenden, um ein neues Verzeichnis mit dem Namen „nextcloud-data“ im Homeverzeichnis zu erstellen:

sudo mkdir /home/nextcloud-data

Setze die Berechtigungen für das Nextcloud-Datenverzeichnis mit dem folgenden Befehl:

sudo chown -R www-data:www-data /home/nextcloud-data

Abschließende Konfiguration über den Webbrowser:
Öffne einen Webbrowser und navigiere zu deinem Server, gefolgt von „/nextcloud“ (z. B. http://SERVER-IP/nextcloud). Du solltest die Nextcloud-Installationsseite sehen.

Folge den Anweisungen auf dem Bildschirm, um die erforderlichen Informationen einzugeben, wie die Datenbankdetails (Datenbanktyp, Datenbankbenutzername, Datenbankpasswort) und das Verzeichnis für die Nextcloud-Daten (z. B. „/home/nextcloud-data“). Wähle außerdem einen Administratorbenutzernamen und ein Passwort für den Nextcloud-Administratorzugriff.

Nachdem du alle Informationen eingegeben hast, klicke auf „Installieren„, um den Installationsvorgang abzuschließen.

TLDR

# Install Packages
sudo apt install apache2
sudo apt install mariadb-server

# MariaDB Service Start
sudo systemctl start mariadb 
sudo systemctl enable mariadb

# MariaDB Install
sudo mysql_secure_installation

# MySQL Installationsassistent Cheat Sheat
Enter current password for root (enter for none): ENTER
Switch to unix_socket authentication: N
Change the root password? [Y/n]: Y
New Password: Gebe dein neues Root Passwort ein
Re-enter new Password: Bestätige dein neues Root Passwort ein
Remove anonymous users? [Y/n]: Y
Remove test database and access to it? [Y/n] Y
Reload privilege tables now? [Y/n] Y

# Configuring MariaDB
CREATE DATABASE nextcloud;
CREATE USER 'nextclouduser'@'localhost' IDENTIFIED BY 'dein sicheres Passwort'; 
GRANT ALL PRIVILEGES ON nextcloud.* TO 'nextclouduser'@'localhost';
FLUSH PRIVILEGES;
EXIT;

# Install PHP
apt install software-properties-common
add-apt-repository ppa:ondrej/php
apt update
apt install php8.1 php8.1-curl php-pear php8.1-bcmath php8.1-xml php-dompdf php8.1-mbstring libmagickcore-6.q16-6-extra php8.1-zip php8.1-imagick php8.1-zip php8.1-intl php8.1-gd php8.1-redis php8.1-cli php8.1-mbstring php8.1-xml php8.1-mysql php8.1-curl php8.1-apcu php8.1-gmp php8.1-gd libapache2-mod-php8.1

# Configuring php.ini
nano /etc/php/8.1/apache2/php.ini

SUCHBEGRIFF                   WERT:
memory_limit                  1024M
upload_max_filesize           16G
post_max_size                 16G
date.timezone                 Europe/Berlin
output_buffering              Off

# Configuring Apache2
sudo a2enmod rewrite
sudo a2enmod headers
sudo a2enmod env
sudo a2enmod dir
sudo a2enmod mime

sudo nano /etc/apache2/sites-available/nextcloud.conf

# Inhalt nextcloud.conf
<VirtualHost *:80>
     ServerAdmin postmaster@DOMAIN.de
     DocumentRoot /var/www/nextcloud/
     ServerName SUBDOMAIN.DOMAIN.DE

     <Directory /var/www/nextcloud/>
        Options +FollowSymlinks
        AllowOverride All
        Require all granted
          <IfModule mod_dav.c>
            Dav off
          </IfModule>
        SetEnv HOME /var/www/nextcloud
        SetEnv HTTP_HOME /var/www/nextcloud
     </Directory>
     ErrorLog ${APACHE_LOG_DIR}/error.log
     CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>

# Enable NextCloud Site
sudo a2ensite nextcloud.conf
sudo systemctl restart apache2

# Install NextCloud
cd /tmp
wget https://download.nextcloud.com/server/releases/latest.zip 
sudo unzip latest.zip 
sudo mv nextcloud /var/www/
sudo chown -R www-data:www-data /var/www/nextcloud

# NextCloud Datenverzeichnis
sudo mkdir /home/nextcloud-data
sudo chown -R www-data:www-data /home/nextcloud-data

3 Antworten

  1. Prima Beschreibung!

    Aber ein paar Sachen mussten bei mir noch angepasst werden:
    – Checken der Versionsnummern von MySQL mit „mysql -–version“ statt „mysql -version“.
    – In der „/etc/apache2/sites-available/000-default.conf“ musste ich noch den „DocumentRoot“ von „/var/www/html“ auf „/var/www“ umstellen, sonst geht keine Webseite auf zum Installieren auf der Nextcloud-Seite

    1. Vielen Dank für deinen Kommentar.
      Die Zeile der MySQL Version war tatsächlich ein Formatierungsfehler.
      Code Zeilen sind nun als „Inline-Code“ formatiert. Jetzt sollten alle Sonderzeichen richtig dargestellt werden.

  2. Super Beschreibung, danke !! Fast reibungslos 😉
    Ein paar Kleinigkeiten sind zusätzlich zu beachten, wenn der Apache bereits eine existierende Website bedient (im wesentlichen Verzeichnisse und Berechtigungen).
    Z.B. hat bei mir
    sudo chown -R www-data:www-data /var/www/html/nextcloud.de nicht funktioniert
    (Installationsroutine von nextcloud konnte nicht auf das Konfigurations-Verzeichnis zugreifen)
    sondern nur:
    sudo chown -R $USER:$USER /var/www/html/nextcloud.de
    zusätzlich noch
    sudo chmod -R 755 /var/www/html/nextcloud.de

Schreibe einen Kommentar

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

Entdecke weitere Beiträge