Nextcloud 23 auf Ubuntu 20.04 Server installieren

Nextcloud ist neben OwnCloud wohl die bekannteste Open Source Cloud – Made in Germany. Nextcloud ermöglicht einfaches Filesharing und Synchronisation durch die vielen Apps- und Syncclients. Außerdem überzeugt Nextcloud vor allem durch die umfangreichen Funktionen, wie OnlyOffice, Collabora Online, Kalender- und Aufgaben Apps und viele weitere nützliche Apps. In der neuen Version 23 gibt es einige interessante Neuerungen, die Nextcloud noch einmal attraktiver als private Cloud machen.

Nextcloud Logo.svg

Neues in der Nextcloud Version 23 (Hub 2)

⚡️

Dateien: Profil-Seiten für alle Benutzer, Synchronisation von Dateien wurde beschleunigt

👥

Groupware: Termin-Blocker, Mail App wurde verbessert

💬

Talk: Hintergrundunschärfe, Geräte check bei Besprechungsbeitritt, Berechtigungen und weitere

♻️

Backups: integrierte Backup App für Peer-to-Peer Backups

Empfohlene Systemanforderungen:

  • Ubuntu 20.04 LTS
  • MariaDB 10.5 Datenbank
  • Apache 2.4 Webserver
  • PHP 7.4
  • 512 MB RAM

Paketlisten updaten und Pakete upgraden

Damit wir die aktuellsten Versionen von Apache, PHP, MySQL, etc. erhalten, updaten wir als erstes unsere Paketquellen und updaten im gleichen Zug auch alle installierten Pakete.

sudo apt-get update && sudo apt-get upgrade -y && sudo apt autoremove -y 

Apache Webserver installieren

Als ersten Schritt installieren wir Apache als Webserver.

sudo apt install apache2 -y 

Außerdem müssen wir noch eine Anpassung an der apache2.conf vornehmen.

sed -i "s/Options Indexes FollowSymLinks/Options FollowSymLinks/" /etc/apache2/apache2.conf 

Zum Schluss starten wir den Webserver.

sudo systemctl start apache2 

MySQL (MariaDB) installieren

Als Datenbank für Nextcloud wählen wir die etwas kompaktere Community Version von MySQL, MariaDB. Diese ist einfacher zu konfigurieren und kostenlos.

Wir installieren hier gleich Version 10.5 von mariaDB. Dazu musst du folgende Commands abschicken, um die neue Repository hinzuzufügen.

cd /tmp && wget https://downloads.mariadb.com/MariaDB/mariadb_repo_setup 
chmod +x mariadb_repo_setup 
sudo ./mariadb_repo_setup \
   --mariadb-server-version="mariadb-10.5" 
sudo apt update 
sudo apt install mariadb-server -y && sudo apt install mariadb-client -y 

Mit diesem Befehl starten wir den Konfigurationsprozess um den Admin Benutzer zu konfigurieren und um ein paar Einstellungen zu ändern. 

mysql_secure_installation 

Es öffnet sich folgender Dialog, den wir wie folgt durchgehen:

Enter current password for root (enter for none): Enter
Set root password? [Y/n]: Y
New password: De1ns1cheresPassw0rt
Re-enter new password: De1ns1cheresPassw0rt
Remove anonymous users? [Y/n]: Y
Disallow root login remotely? [Y/n]: Y
Remove test database and access to it? [Y/n]: Y
Reload privilege tables now? [Y/n]: Y 

Nachdem wir die Konfiguration von MariaDB abgeschlossen haben, starten wir den gesamten Datenbank-Dienst neu.

sudo systemctl restart mariadb 

PHP installieren

Als letztes, zu installierendes Paket, bleibt PHP. Wir installieren hier Version 7.4 mit allen benötigten Modulen, die für Nextcloud notwendig sind.

sudo apt install php7.4 libapache2-mod-php7.4 php7.4-common php7.4-gmp php7.4-curl php7.4-intl php7.4-mbstring php7.4-xmlrpc php7.4-mysql php7.4-gd php7.4-xml php7.4-cli php7.4-zip php7.4-imagick php7.4-bcmath imagemagick -y 

Nun haben wir PHP installiert. Jetzt ändern wir noch ein paar Werte in der php.ini Datei, um Nextcloud die richtige Zeitzone und mehr Arbeitsspeicher mitzugeben.

nano /etc/php/7.4/apache2/php.ini 

Mit folgender Tastenkombination kannst du in der sehr großen php.ini Datei suchen.

Strg + W 

Ändere nun folgende Parameter in die richtigen Werte ab.

memory_limit = 1024M
upload_max_filesize = 16G
post_max_size = 16G
date.timezone = Europe/Berlin 

„memory_limit“: Hier kannst du angeben, wie viel RAM PHP zur Verfügung gestellt bekommen soll. Wir wählen hier bei einem Host, der 4GB RAM hat 1024M.

„upload_max_filesize“: Hier wird die Größe angegeben die maximal in einem PHP-Prozess hochgeladen werden kann.

„post_max_filesize“: Dieser Wert sollte genau gleich groß wie „upload_max_filesize“ sein.

„date.timezone“: Hier wird die Zeitzone bestimmt, in der der Server ist. Wir geben hier „Europe/Berlin“ für Deutschland an.

MariaDB Datenbanken und Benutzer konfigurieren

Als letzten Schritt, bevor wir Nextcloud herunterladen, konfigurieren wir die Nextcloud Datenbank und den Datenbank-Benutzer. Wir öffnen mit folgendem Befehl den MariaDB Dialog.

mysql 

Wir erstellen als ersten Schritt die Datenbank. Den Namen der Datenbank, Datenbank Benutzer und das Passwort muss später bei der Nextcloud Installation angegeben werden.

CREATE DATABASE nextcloud; 

Mit diesem Befehl erstellen wir den Nextcloud-Datenbank-Benutzer. Gebe hier anstatt „passwort_hier_eingeben“ ein sicheres Passwort.

CREATE USER 'nextclouduser'@'localhost' IDENTIFIED BY 'password_hier_eingeben'; 

Jetzt setzen wir noch alle Rechte der Nextcloud-Datenbank auf den Nextcloud-Datenbank-Benutzer.

GRANT ALL ON nextcloud.* TO 'nextclouduser'@'localhost' IDENTIFIED BY 'password_hier_eingeben' WITH GRANT OPTION; 

Zum Schluss laden wir die Benutzerdaten neu und verlassen den MariaDB Dialog.

FLUSH PRIVILEGES; 
EXIT; 

Nextcloud herunterladen

Als vorletzten Schritt der Installation auf der Server-Seite, müssen wir nun Nextcloud von nextcloud.com herunterladen und in den Apache Webserver Ordner verschieben.

cd /tmp && wget https://download.nextcloud.com/server/releases/nextcloud-23.0.2.zip 

Da wir unsere Anleitungen nicht immer aktuell halten können, lohnt es sich, wenn du vorher auf den Button unten klickst, um auf der Nextcloud Website die neueste Version von Nextcloud herunterzuladen. Kopiere den Link von der Website und ersetze den oben stehenden Link.

Da Nextcloud ein .zip File ist, brauchen wir jetzt noch das Paket „unzip“.

sudo apt-get install unzip -y 

Mit diesem Befehl entpackst du den Download.

unzip nextcloud* 

Verschiebe Nextcloud anaschließend noch in das Apache Webverzeichnis.

mv nextcloud* /var/www/ 

Apache konfigurieren

Als letzten Schritt auf der Server-Seite, müssen wir nun noch ein Apache .conf File anlegen, damit wir auf Nextcloud über den Browser zugreifen können.

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

Wir fügen folgende Zeilen in die Datei ein.

<VirtualHost *:80>
   ServerAdmin xxx@yourdomain.com
   DocumentRoot /var/www/nextcloud/
   ServerName yourdomain.com
   ServerAlias www.yourdomain.com
<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> 

Ersetze „yourdomain.com“ mit deiner Domain.

Die Mail Adresse für den Webserver „xxx@yourdomain.com“ solltest du auch auf deine abändern.

Nun müssen wir die .conf Datei aktivieren und einige Module zulassen. Zum Schluss starten wir Apache noch einmal neu, um alle Konfigurationsänderungen anzuwenden.

a2ensite nextcloud.conf && a2enmod rewrite && a2enmod headers && a2enmod env && a2enmod dir && a2enmod mime && a2dissite 000-default.conf 
chown -R www-data:www-data /var/www/nextcloud/ && chmod -R 755 /var/www/nextcloud/ 
sudo systemctl restart apache2 

Nextcloud Dateispeicherort ändern (Optional, aber empfohlen)

Der Standardspeicherort von Nextcloud liegt im Webverzeichnis. Allerdings ist dies eher schlecht, da alle Dateien so in einem öffentlich zugänglichen Bereich liegen. Dieser ist zwar theoretisch geschützt, trotzdem bietet ein Speicherort außerhalb des Webdirectory eine höhere Sicherheit. Der folgende Befehl erstellt diesen Speicherort unter /home/data/.

cd /home && mkdir /home/data/ && chown -R www-data:www-data /home/data/ 

Nextcloud unter der angegebenen Domain aufrufen

Rufe als letzten Schritt im Web deine im Schritt „Apache konfigurieren“ angegebene Domain auf. Es sollte folgender Screen auftauchen, mit dem du die Installation abschließen kannst.

„admin“: Gebe einen Benutzernamen deiner Wahl an. Dieser ist dann der Benutzername für Admin, der die gesamte Cloud im Web verwaltet.

„••••••••“: Gebe ein sehr sicheres Passwort deiner Wahl an. Dieses ist dann das Passwort für den Admin Benutzer, der die gesamte Cloud im Web verwaltet.

„/home/data/“: Wenn du den optionalen Schritt „Nextcloud Dateispeicherort ändern (Optional, aber empfohlen)“ durchgeführt hast, musst du hier „/home/data/“ angeben. Ansonsten kannst du das Feld beim Standardwert belassen.

Die unteren Felder sind für die MariaDB Konfiguration da.

Trage alles wie im Screenshot stehend ein, bis auf das Passwort (••••••••••••••••••). Dieses musst du mit deinem eingegebenen bei der mariaDB Konfiguration ersetzen.

Nach dem klick auf „Installation abschließen“ werden in Nextcloud Version 23 noch die wichtigsten Collaborationsapps installiert, wenn du den entsprechenden Haken im Schritt davor gesetzt hast.

Danach wirst du in deine Nextcloud weitergeleitet.

Fertig!

Zufrieden? Dann schreib gerne einen Kommentar.

Diesen Beitrag teilen:

19 Kommentare

  • Hallo HowToDoTech-Team.

    Zunächst erstmal Danke für dieses Tutorial. Alles ist sehr gut erklärt und kinderleicht nachzumachen.
    Allerdings habe ich als GNU/Linux-Einsteiger ein Talent dafür, auf Probleme zu stoßen.
    Beim öffnen von NextCloud: Internal Server Error
    error.log gibt 6 Meldungen aus.
    Die ersten 4 beziehen sich paarweise auf das Erstellen und Öffnen der config-Dateien.
    Fehler Nr. 5 betrifft die DB: „Failed to connect…“ „…could not find driver“.
    Die letzte Meldung bezieht sich auf nextcloud.log, welche ebenfalls nicht geöffnet/gefunden werden kann.
    Um nicht (wieder) alles zu verhunzen und für Sicherheitslücken zu sorgen muss ich da nachfragen, gehe aber davon aus, dass sich alle Fehler aufgrund fehlender Rechte ergeben.

    Antworten
    • Hallo Jimbo,

      hast du den Schritt „Nextcloud Dateispeicherort ändern“ durchgeführt?
      Wenn nicht schicke mal den folgenden Command ab:
      sudo chown -R www-data:www-data /var/www/nextcloud/ && sudo chmod -R 755 /var/www/nextcloud/

      Dieser sollte alle Rechte richtig setzen.

      Ggf. musst du danach noch Apache und MariaDB neu starten. Das kannst du mit dem folgenden folgenden Befehl machen:
      sudo systemctl restart apache2 && sudo systemctl restart mariadb

      Viele Grüße

      Johann aus dem HowToDoTech Team

      Antworten
      • Funktioniert perfekt, Danke 🙂
        Nein, den Speicherort hatte ich noch nicht geändert, da ich dafür einen anderen Datenträger dafür nutzen möchte und ich noch nicht weiß wie das zu machen ist.

        Jedenfalls Danke nochmal für die schnelle Antwort!

        Sonnige Grüße aus Thüringen 🙂

        Antworten
        • Okay perfekt 😄

          Die Anleitung muss noch um diesen Schritt erweitert werden. Ist ein Fehler unsererseits.

          Danke für deinen Kommentar.

          Viele Grüße
          Johann aus dem HowToDoTech Team

          Antworten
  • Hallo HowToDoTech Team,

    eine Installation nach dieser Anleitung ist Kinderleicht und selbst für Anfänger geeignet. Die Nextcloud läuft bei mir auf einer 4TB SSD an einem Raspberry Pi 4. Raspberry Pi OS Debian 11 (Bullseye). Leider vermisse ich die Desktop Konfigurationsoberfläche (Wizard) der Cloud an sich, um beispielsweise Einstellungen für ein Datenbank Backup, FileBan oder HTTPS vornehmen zu können. Bei einer Testinstallation damals auf einer MicroSD hatte ich mal NextcloudPI (als fertiges Image) getestet und für gut befunden. Bei der Testinstallation war es möglich aus dem Dashboard in die Aminoberfläche zu wecheln. Versuche ich dies jetzt per …./index.php/settings/admin/wizard erhalte ich die Fehlermeldung: „Zugriff verboten“.

    Gruß aus Schrobenhausen

    Jesko

    Antworten
    • Hallo Jesko,

      wie meinst du „aus dem Dashboard in die Adminoberfläche zu wechseln“?
      Das Nextcloud Admin Dashboard kannst du aufrufen, indem du mit dem Benutzer, den du bei der Installation angegeben hast, dich auf deiner Nextcloud anmeldest und dann in die Einstellungen wechselst.
      Ich denke, das „/wizard“ ist der Fehler in der URL. …index.php/settings/admin/overview sollte funktionieren.

      Ich hoffe ich konnte dir weiterhelfen, wenn nicht schreibe gerne nochmal einen Kommentar.

      Viele Grüße

      Johann aus dem HowToDoTech Team

      Antworten
  • Hallo, vielen Dank für die tolle Anleitung. Die Installation hat prima damit funktioniert. Danke für Eure Arbeit.

    Habt Ihr eine Idee, wie man das Data-Verzeichnis auf ein (Synology)-NAS auslagern kann?

    Ich habe auf dem NAS eine NFS-Freigabe gemacht und es in der /etc/fstab meiner NextCloud-VM eingebunden.
    Nachdem ich in der config.php unter „data_directory“ meinen Pfad angepasst habe, zeigt mir Nextcloud ordentlich alle dorthin kopierten Daten. Leider schreibgeschützt.
    Problem scheinen mir verschiedene UIDs auf den beiden Systemen zu sein. Ein „chown -R www-data:www-data“ meines gemounteten Datenverzeichnisses ergibt auf dem Synology als Besitzer keine Namensangabe bei Benutzer und Gruppe, sondern eine unvergebene ID 33. Und die hat natürlich auf dem NAS keine Rechte.

    Habt Ihr eine Idee, wie das korrigiert werden kann? Ich habe als Workaround erstmal auf dem NAS das Verzeichnis für jeden freigegeben, was aber natürlich nicht empfehlenswert ist.

    Danke Euch.

    Antworten
    • Hallo Siesel,

      wir haben leider keine Erfahrung mit gemounteten NFS Volumes. So wie es hier https://stackoverflow.com/questions/53604706/mount-network-share-with-nfs-with-username-password beschrieben ist, gibt es anscheinend keine „einfache“ User und Passwort authentifizierung für NFS.

      Auf der Synology gibt es ja auch die Möglichkeit einen SMB / CIFS Share zu erstellen. Diesen kann man dann mit Username und Passwort in der VM einbinden und das Data Directory der Nextcloud auf den angegebenen Mount Path legen.

      Falls es für dich also nicht zwingend notwendig ist, NFS zu verwenden, würden wir empfehlen CIFS zu benutzen.

      Wir würden wie folgt vorgehen:
      1. CIFS / SMB Share auf der Synology anlegen mit Username und Passwort
      2. Share auf der VM mounten: https://howtodotech.de/proxmox-6-3-remote-smb-backup-directory-hinzufugen/#mountsmbshare (da müsstest du nur den Mount Schritt aus der Anleitung beachten)
      3. Nextcloud Maintenance Mode aktivieren (https://docs.nextcloud.com/server/latest/admin_manual/configuration_server/occ_command.html#maintenance-commands-label)
      4. Daten des Nextcloud Data Directories in diesen Pfad kopieren (! Beachte dabei auch die Versteckten Dateien wie die .htaccess und .ocdata im Verzeichnis)
      5. In der Nextcloud Config Pfad ändern
      6. Apache neu starten (systemctl restart apache2)
      7. Nextcloud Maintenance Mode deaktivieren (siehe Schritt 3.)
      8. Sollte funktionieren, wenn nicht gerne nochmal einen Kommentar schreiben (:

      Viele Grüße
      dein HowToDoTech Team

      Antworten
      • Hallo, vielen, lieben Dank für die superschnelle Antwort zum Sonntag. 🙂

        selbstverständlich brauche ich NFS nicht unbedingt. Ich hatte es auch schon mit einem CIFS-Mount probiert.

        1) User „nextcloud“ auf NAS angelegt.
        2) Verzeichnis gemountet
        3) funktioniert nicht:
        „root@vmnextcloud:/mnt/NextCloud# sudo -u www-data php occ maintenance:mode –on
        PHP Warning: PHP Startup: Unable to load dynamic library ‚pdo_pgsql‘ (tried: /usr/lib/php/20190902/pdo_pgsql (/usr/lib/php/20190902/pdo_pgsql: cannot open shared object file: No such file or directory), /usr/lib/php/20190902/pdo_pgsql.so (/usr/lib/php/20190902/pdo_pgsql.so: undefined symbol: pdo_parse_params)) in Unknown on line 0
        Could not open input file: occ“

        Ich muss dazu sagen, daß PostgreSQL in einem anderen Container „erfolgreich“ läuft. Also NextCloud mit externem PostgreSQL und /var/www/nextcloud/data funktioniert.
        4) gemacht. Dateien haben dann aber als Besitzer meine Users auf der NextCloud-VM, der kopiert hat
        5) erledigt
        6) startet problemlos
        7) analog zu 3) geht nicht.

        Mache ich also ein „ls -al /mnt/NextCloud“ haben alle DIRs und Dateien meinen lokalen Benutzer als Besitzer und nicht mehr www-data, was zu einem schreibgeschützten Nextcloud führt.
        Ein „chown -R www-data:www-data /mnt/NextCloud“ ändert nichts an dem Besitzer.

        Habe ich etwas Grundlegendes vergessen?

        Danke.

        Antworten
        • Hallo,

          kein Problem 😉

          zu 3) du musst um OCC Befehle ausführen zu können in den Root Folder der Nextcloud. Also normalerweise /var/www/nextcloud

          Dann sollte der OCC command laufen.

          Zu dem chown Befehl, hast du sudo Rechte? Vielleicht mal den Command wie folgt versuchen:

          „sudo chown -R www-data:www-data /mnt/NextCloud“

          Viele Grüße
          dein HowToDoTech Team

          Antworten
  • Hallo,

    diese Anleitung ist spitze. Sie hat mir sehr gut geholfen. Habe alles nach und nach abgearbeitet, und bis auf ein par Kleinigkeiten lief das System auch sofort ohne jegliche Fehlermeldungen. Bei dem rest wurde mir netterweise geholfen. Vielen Dank dafür an HowToDoTech.

    Mark-Peter

    Antworten
    • Hallo Mark-Peter,

      vielen Dank für dein positives Feedback 🙂

      Viele Grüße

      das HowToDoTech Team

      Antworten
  • Liebe Dame, lieber Herr vom howtodotech.de,

    Die Installation unter Ubuntu-Server 20.04 LTS hat mit einigen kleineren Fehlern, aber sonst einwandfrei funktioniert.
    Dafür möchte ich mich ganz herzlich bei Ihnen für Ihre Mühe bedanken.
    Kleinere Fehler:
    – http-header soll… (gelöst)
    -Es wurde kein PHP Memory Cache konfiguriert … (Eigene Lösungen führte immer wieder zum internen Fehler)
    -default phon region … (gelöst)

    Sonst alles bestens,
    vielen lieben Dank für die Mühe
    Viele Grüße aus Gießen

    Antworten
    • Hallo PaarSaa,

      vielen Dank für dein positives Feedback!

      Die Fehler bzw. Warnungen, die nach der Installation von Nextcloud im Admin-Panel erscheinen sind von Instanz zu Instanz unterschiedlich. Daher können wir nicht für alle auftretenden Fehler eine Anleitung erstellen 🙂

      Lediglich die PHP Memory Cache Warnung erscheint normalerweise überall. Jedoch müssen wir zugeben, das wir noch keine Fehlerfreie Lösung für die Installation und Konfiguration des Memory Cache gefunden haben.

      Viele Grüße,

      dein howtodotech.de Team

      Antworten
    • Hallo Dirk,

      vielen Dank für dein positives Feedback 😉

      Viele Grüße

      dein HowToDoTech Team

      Antworten

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht.

Nach oben