Nextcloud 29 Installation auf Debian 12 Server

Nextcloud ist eine Open-Source-Plattform für die Dateisynchronisierung und -freigabe sowie für die Zusammenarbeit. Sie ermöglicht Benutzern das Speichern, Synchronisieren und Teilen von Dateien, Kalendern, Kontakten und mehr über verschiedene Geräte hinweg. Nextcloud bietet zudem erweiterbare Funktionen wie Online-Office-Anwendungen, Integration von Drittanbieter-Apps und eine sichere Datenverwaltung auf eigenen Servern oder Cloud-Diensten.

 Grundlagen

Installation

Konfiguration

Cloudsoftware Installation Apache / MySQL Konfiguration Apache Webserver
Installation Nextcloud Konfiguration Nextcloud (config.php)
Installation PHP Cache Konfiguration Nextcloud (.htaccess)
Terminal Befehle Installation der SSL Software Certbot Konfiguration PHP Cache
Tipps und Tricks OnlyOffice ( Office Suite ) Konfiguration Datenbank
———————————————- ———————————————- ———————————————-

Cloudsoftware

Nextcloud ist eine Open-Source-Plattform, die Cloud-Speicher- und Kollaborationsdienste bereitstellt. Sie ermöglicht Benutzern, ihre Dateien, Kalender, Kontakte und mehr in der Cloud zu speichern und von verschiedenen Geräten aus darauf zuzugreifen. Im Gegensatz zu kommerziellen Cloud-Diensten erlaubt Nextcloud die Installation auf eigenen Servern, wodurch Nutzer die Kontrolle über ihre Daten behalten können. Es bietet außerdem Funktionen wie Online-Office-Anwendungen, Ende-zu-Ende-Verschlüsselung und die Möglichkeit zur Integration von Drittanbieter-Apps für erweiterte Funktionalität.


Zurück zur Übersicht


Installation Apache / MySQL

Mit dem folgenden Befehl wird der Apache und MySQL Server sowie einige von Nextcloud benötigte Pakete installiert:

MySQL Datenbank Setupscript für Mariadatenbanken ausführen (obsolet) :

Ausgabe des Setupscripts:

Nextcloud benötigt einige Apache Module sowie das php-fpm Modul. Diese werden wie folgt aktiviert:

und danach das PHP-FPM Modul:


Zurück zur Übersicht


Installation Nextcloud

Die Nextcloudsoftware (v27) kann von der Nextcloud Webseite heruntergeladen werden und wird anschließend in das Webserververzeichnis entpackt und der Zugriff für den Webserver (www-data) gesetzt:


Zurück zur Übersicht


Installation PHP Cache

Caching-Technologien wie OPCache, APCu, Memcache und Redis tragen dazu bei, die Geschwindigkeit, Skalierbarkeit und Reaktionsfähigkeit von Webanwendungen wie z.B. Nextcloud und ähnlichen Anwendungen zu verbessern. Der APCu ist für die Userdaten zuständig, die ansonsten auf der langsameren Disk gespeichert werden müssten. OPCache fungiert als schneller Zwischenspeicher für die PHP-Skripte.

    • OPCache speichert PHP-Code/Skripte im Arb50eitsspeicher, um die Ausführungszeit zu verkürzen.
    • APCu (Alternative PHP Cache userland) ist für die Userdaten zuständig.
    • Memcache und Redis sind In-Memory-Datenbanken, die häufig verwendete Daten und Sitzungsinformationen speichern, um den Zugriff auf Datenbanken zu minimieren.
OPCache APCu MemCache
Verwendungszweck OPCache (Opcode Cache) ist ein PHP-interner Cache, der den kompilierten PHP-Code im Arbeitsspeicher speichert. Er zielt darauf ab, die Ausführungszeit von PHP-Skripten zu verkürzen, indem er den Bedarf an erneuter Kompilierung reduziert. APCu: APCu ist ein PHP-interner Cache, der speziell für das Zwischenspeichern von PHP-Code und Daten innerhalb einer Anwendung entwickelt wurde. Er ist für Anwendungen gedacht, die auf einem einzigen Server laufen. Memcache ist ein verteilter Cache-Speicher, der über das Netzwerk auf mehrere Server verteilt werden kann. Er wird oft verwendet, um häufig verwendete Daten wie Sitzungen oder Datenbankabfragen zwischen verschiedenen Servern zu teilen.
Datenverwaltung Speichert den kompilierten PHP-Code, was die Geschwindigkeit der Ausführung von PHP-Skripten erhöht. APCu speichert Daten im Arbeitsspeicher des Servers, wodurch der Zugriff schneller wird. Es ist gut für den schnellen Zugriff auf Daten innerhalb derselben Anwendung geeignet. Memcache ist für die schnelle Verteilung von Daten zwischen verschiedenen Servern optimiert. Er bietet eine größere Skalierbarkeit und eignet sich gut für Anwendungen mit mehreren Servern.
Anwendungsbereiche Wird verwendet, um die Ausführung von PHP-Code zu beschleunigen, indem der bereits kompilierte Code im Arbeitsspeicher gespeichert wird. Geeignet für Anwendungen, die auf einem einzelnen Server laufen und den PHP-Code und spezifische Anwendungsdaten zwischenspeichern möchten. Geeignet für Anwendungen mit hoher Last und/oder mehreren Servern, die Daten über das Netzwerk verteilen müssen.
Integration Ist ein Teil des PHP-Kerns und wird standardmäßig in modernen PHP-Versionen aktiviert. Ist eine PHP-interne Cache-Erweiterung und erfordert keine separate Cache-Server-Installation. Es ist spezifisch für PHP-Anwendungen. Ist ein eigenständiger Cache-Server und erfordert eine separate Installation und Konfiguration. Er kann von verschiedenen Anwendungen und Programmiersprachen genutzt werden.
Installation sudo apt install php-opcache sudo apt install php-ACPu sudo apt install php-memcache

Danach wird der Apache Webserver und PHP-fpm neu gestartet:


Zurück zur Übersicht


Installation der SSL Software Certbot

Die Verwaltung von SSL Zertifikaten übernimmt der LetsEncrypt Certbot mit Hilfe des Apache Plugins.


Zurück zur Übersicht


Konfiguration Apache Webserver

Die grundlegende Apache Konfiguration wird in der Datei /etc/apache2/apache2.conf vorgenommen. Um alle .htaccess Datein im Verzeichnis /var/www/ zu berücksichtigen, muss folgender Eintrag geändert oder ergänzt werden:

<Directory /var/www/>
Options Indexes FollowSymLinks
AllowOverride None
Require all granted
</Directory>
 

=>

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

ACHTUNG! Diese Konfiguration erteilt sämtlichen Verzeichnisssen innerhalb des Webserver DCROOT /var/www/… alle Rechte

Aus diesem Grund sollte die Konfiguration der entsprechen Webseite direkt in der Apachekonfiguration (/etc/apache/apache.conf) oder in der entsprechen Websitekonfiguration (etc/apache2/sites-available/<websitename>.conf) eingrtagen werden:

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

 


Damit die Nextcloud Dateien (/var/www/nextcloud) mit dem Apache Webserver verarbeitet werden können, muss hierzu eine Apache Konfigurationsdatei erstellt werden. Die Konfigurationsdateien für Webseiten befinden sich im Verzeichnis /etc/apache/sites-available. Innerhalb dieses Verzeichnisses wird dann die Nextcloud Webseiten Konfiguration (/etc/apache2/sites-available/nextcloud.conf) mit folgendem Inhalt erstellt.


Um HTTP/2 zu aktivieren, muss die /etc/apache2/apache2.conf Datei um folgende Zeile ergänzt werden:

Damit ist die Apache Konfiguration abgeschlossen.


Zurück zur Übersicht


Konfiguration Nextcloud (config.php)

Die Konfiguration von Nextcloud selbst wird über die Datei /var/www/nextcloud/config/config.php festgelegt. Ist die Datei nicht vorhanden (Neuinstallation) kann mittels Kopieren der vorkonfigurieten config.sample.php (/var/www/nextcloud/config/config.sample.php) die config.php erstellt werden. Folgende Änderungen sollten an der vorkonfigurieten config.php vorgenommen werden

    • Datenbankkonfiguration
    • Zugriff konfigurieren
    • Cache aktivieren ( APCu )


       

Zurück zur Übersicht


Konfiguration Nextcloud (.htaccess)

Ergänzende Konfigurationsparameter von Nextcloud für den Apache Webserver werden in der .htaccess-Datei festgelegt (/var/www/nextcloud/.htaccess). Die meisten dieser Konfigurationsparameter sind auch über die oben genannten Apache-Konfigurationen (/etc/apache2/apache2.conf oder /etc/apache2/sites-available/<websitedir>) realisierbar. Allerdings befinden sich in der .htaccess teils installationsspezifische Parameter, die nur für die Nextcloud-Installation relevant sind und daher nicht allgemein in die Apache-Konfiguration integriert werden sollten. Die .htaccess Datei einer Nextcloudinstallation (29.0.7) im DCROOT des Webservers (/var/www/nextcloud) sieht wie folgt aus:

Der Codeblock „<IfModule mod_rewrite.c>“ ist dabei relevant für Umleitungen von CardDav, WebDav, WebFinger u.a. auf den korrekten Endpunkt bei Installationen außerhalb des Webserver Dcroot.

Konfiguration für DCROOT Installation:

Konfiguration für Installation in Unterverzeichnis DCROOT/nextcloud:


Zurück zur Übersicht


Konfiguration PHP Cache

Der Einsatz von Cache Systemen, wie beispielsweise ACPu oder MemCache, beschleunigt den Zugriff und die Leistung von Anwendungen. Im Gegensatz zu MemCache beschleunigt APCu auch Skriptausführungszeiten und bereits kompilirten PHP Code. Dies ermöglicht beispielsweise die Nutzung von APCu zur Steigerung der Ausführungsleistung, während gleichzeitig MemCache für die Zwischenspeicherung verwendet wird. ACPu ist auf lokale Ausführungen beschränkt, wodurch ACPu schneller ist als MemCache, aber dafür weniger skalierbar. Im Gegensatz zu MemCache geht bei einem System- oder Dienstneustart von ACPu der Cacheinhalt verloren.

https://speefak.spdns.de/oss_lifestyle/nextcloud-23-installation-auf-debian-11-server/Die PHP (v8.2) Konfiguration ist in der Datei /etc/php/8.2/fpm/php.ini enthalten. Welche PHP Konfigurationsdatei aktuell geladen wurde, kann mit folgendem Befehl angezeigt werden:

Auflistung aktivierter PHP Optionen:

PHP Caching für PHP 8.2 aktivieren

APCu Cache aktivieren

Danach wird der Apache Webserver und PHP-fpm neu gestartet:


Infosource : docs.nextcloud.com | bobcares.com | addictedtocode.de


Zurück zur Übersicht


Konfiguration Datenbank

Nextcloud benötigt eine SQL Datenbank. Dazu wird ein Datenbenutzer ( nextcloud_user ) mit dem dazugehörigen Passwort ( password ) sowie die Datenbank ( nextcloud_db1 ) mit folgendem Befehl erstellt:

Wenn das Passwort Sonderzeichen enthält kann dies unter Umständen zu Fehlern führen: ERROR 1064 (42000) at line 1: You have an error in your SQL syntax;

Die Datenbank samt Benutzer und Passwort kann alternativ mit einem grafischen Werkzeug wie beispielsweise phpmyadmin erstellt werden.

Somit ist alles für die abschließende Einrichtung der Nextcloud Software eingerichtet und die finale Konfiguration kann nun über den Browser erfolgen. Ein Aufruf ( http://<URL/ServerIP>/nextcloud) der Server URL/IP gefolgt von dem in der Datei /etc/apache2/sites-available/nextcloud.conf definierten Apache Alias ( Alias /nextcloud „/var/www/nextcloud/“) verweist nun auf das Nextcloud Installations Interface/Webseite. Hier wird das Nextcloud Administrator Konto erstellt sowie der Datenbankzugriff konfiguriert und die Datenbank mit den Nextcloud spezifischen Daten erstellt.


Zurück zur Übersicht


Terminal Befehle

Nextcloud erfordert unter Umständen, wie z.B. dem Ausfall des Webinterfaces einige Terminaleingaben. Die wichtigsten sind im Folgenden gelistet:

  • Installierte Nextcloud Version anzeigen:
  • Datenverzeichnis aller oder eines User neu einlesen:

  • Nextcloud update via Terminal:

  • .htaccess Datei aktualisieren / generieren
  • Maintenance Modus / Nextcloud-Online-Updater zurücksetzen

 


Zurück zur Übersicht


Tipps und Tricks

    • Systemfehlermeldung

      Lösung :
    • Zugriff auf das Hostdateisystem
      Mit der „External storage support“ Erweiterung ist der Zugriff auf lokale oder entfernte Dateisysteme möglich. Für den lokalen Zugriff müssen jedoch die Rechte der entsprechenden Verzeichnisse korrekt gesetzt sein. Soll beispielsweise der Lese sowie Schreibzugriff auf das Verzeichnis /home/user/Archiv über das Nextcloud Webinterface gewährt werden, müssen Lese- und Schreibrechte auf das Verzeichniss für den Webserverbenutzer (www-data) ermöglicht werden:

      Um dem Benutzer <user> ebenfalls vollen Zugriff auf das Verzeichnis /home/user/Archiv zu gewähren, muss dieser der Gruppe www-data hinzugefügt werden

      und Lese-, sowie Schreibrechte sämtlicher Verzeichnisse und Dateien innhalb von /home/user/Archiv für den Besitzer (www-data) und die Gruppe (www-data) gewährt werden

      ACHTUNG ! Vollzugriff des Webserverbenutzers auf Verzeichnisstrukuren außerhalb des Verzeichnisses /var/www können ein Sicherheitsrikio darstellen
    • Nextcloud-Online-Updater zurücksetzenMit unter kann es passieren, dass ein Nextcloud Update nicht korrekt durchläuft und bei einem Schritt (step) hängen bleibt. Es gibt zwei Möglichkeiten den Updateprozesse zurückzusezten:
      • 1. Shellbefehl: sudo -u www-data php /var/www/nextcloud/occ maintenance:repair
      • 2. den Ordner /var/www/nextcloud/updater-<various string> komplett löschen
    • Kontakte im Adressbuch sind Schreibgeschützt: https://help.nextcloud.com/t/einen-kontakt-loschen-der-schreibgeschutzt-ist/102435/8

Zurück zur Übersicht


Fehlermeldungen

  • Für deine Installation ist keine Standard-Telefonregion festgelegt. Dies ist erforderlich, um Telefonnummern in den Profileinstellungen ohne Ländercode überprüfen zu können.
  • Der Server hat keine konfigurierte Startzeit für das Wartungsfenster. Das bedeutet, dass ressourcenintensive tägliche Hintergrundaufgaben auch während deiner Hauptnutzungszeit ausgeführt werden. Wir empfehlen, das Wartungsfenster auf eine Zeit mit geringer Nutzung festzulegen, damit Benutzer weniger von der Belastung durch diese umfangreichen Aufgaben beeinträchtigt werden. Weitere Informationen findest du in der Dokumentation .
  • Deine Remote-Adresse wurde als „77.181.221.9“ erkannt und wird derzeit durch die Brute-Force-Erkennung gedrosselt, was die Leistung verschiedener Anfragen verlangsamt. Wenn die Remote-Adresse nicht deine Adresse ist, kann dies ein Hinweis darauf sein, dass ein Proxy nicht richtig konfiguriert ist. Weitere Informationen findest du in der Dokumentation.

 


Zurück zur Übersicht


Sonstiges

      • Nextcloud Installations Skript: https://www.c-rieger.de/nextcloud-installation-mit-nur-einem-skript-zero-sh/
      • Externe Datenverzeichnisse in nextcloud  automatisch einlesen: https://decatec.de/home-server/nextcloud-direkter-zugriff-auf-dateien-ueber-das-dateisystem/
      • Nextcloud v21 PHP8 nachrüsten: https://www.c-rieger.de/nextcloud-21-mit-php-8-0-nachruesten/
      • Nextcloud v21 installieren und updaten: https://www.c-rieger.de/manuelles-nextcloud-upgrade/

PHP Version für nextcloud festlegen

Um Nextcloud mit einer abweichenden PHP Version als der auf dem Server voreingestellen Version zu nutzen, kann die PHP Version in der entsprechenden Apache Konfiguration ( z.b /etc/apache2/sites-available/website.conf ) festgelegt werden. Dazu wird folgender Absatz für die Nutzung von PHP 8.2 in Apachekonfigurationsdatei ( etc/apache2/sites-available/nextcloud.conf ) hinzugefügt:


Zurück zur Übersicht


CC_BY_NC_SAby Speefak | www.markus-blog.de | docs.nextcloud.com | www.c-rieger.de | www.digitalocean.com | www.howtoforge.de | PHP-FPM Calculator


Schreibe einen Kommentar

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

Back To Top