1. Dashboard
  2. Mitglieder
    1. Letzte Aktivitäten
    2. Benutzer online
    3. Team
    4. Mitgliedersuche
  3. Trophäen
  4. Forum
    1. Unerledigte Themen
  5. Artikel
  6. Lexicon
  • Login or register
  • Search
Software
  • Everywhere
  • Software
  • Articles
  • Pages
  • Forum
  • Lexicon
  • More Options
  1. Deutsches Raspberry Pi Forum
  2. Artikel
  3. Software

Nextcloud mit Apache2, MariaDB und Letsencrypt

  • Franjo G
  • May 9, 2024 at 1:44 PM
  • 4,629 Views
  • 4 Comments

Anleitung zur Installation einer Nextcloud mit einem Apache-Webserver, MariaDB als Datenbank und Letsencrypt

Contents [hideshow]
  1. Was wird für die Installation benötigt
  2. Installation eines Webservers (Apache2 und PHP)
    1. Für OS Bookworm 64bit (PHP 8.2)
  3. Installation eines Datenbankservers (MariaDB)
    1. Secure Install MariaDB
    2. User und Passwort für den Datenbankserver erstellen
  4. Installation von phpMyAdmin
    1. Beseitigung von Fehlermeldungen (Hinweise) in phpMyAdmin
      1. Die Konfigurationsdatei benötigt einen gültigen Schlüssel für die Cookie-Verschlüsselung.
      2. „Auf das $cfg['TempDir'] (./tmp/) kann nicht zugegriffen werden. phpMyAdmin kann keine Templates zwischenspeichern und ist daher langsam.“
      3. Der phpMyAdmin-Konfigurationsspeicher ist nicht vollständig konfiguriert, einige erweiterte Funktionen wurden deaktiviert. Finden Sie heraus warum. Oder wechseln Sie in einer beliebigen Datenbank zum Tab „Operationen“, um die Einstellung dort vorzunehmen.
  5. Nextcloud herunterladen und entpacken
    1. Pfad für Datenverzeichnis festlegen
      1. Mounten der Festplatte
    2. Datenbank mit User und Passwort erstellen
    3. Nextcloud erster Start
  6. Nextcloud Fehlermeldungen
    1. Die PHP-Speichergrenze liegt unterhalb des empfohlenen Wertes von 512MB. Der PHP-OPcache ist nicht richtig konfiguriert.
    2. Es wurde kein Speichercache konfiguriert. Zur Erhöhung der Leistungsfähigkeit kann ein Memory-Cache konfiguriert werden.
    3. Der Strickt Transport-Security http-Header ist nicht auf mindestens 15552000 Sekunden eingestellt……
    4. Dein Web-Server ist nicht richtig eingerichtet um "/.well-known/caldav" ....... aufzulösen.
    5. PHP configuration option output_buffering must be disabled
    6. Dem Modul php-imagick fehlt die SVG-Unterstützung.
    7. Dein Webserver ist nicht ordnungsgemäß für die Auflösung von "/nextcloud/ocm-provider/" eingerichtet..................
    8. Fehler in den Protokollen seit .......
    9. ArgumentCountError: Too few arguments to function OCA\CloudFederationAPI\Capabilities
    10. Der Server hat keine konfigurierte Startzeit für das Wartungsfenster................
    11. Die Datenbank wird zum Sperren von Transaktionsdateien verwendet. Um die Leistung zu verbessern, richte bitte, sofern verfügbar, Memcache ein.
    12. Fehlende Indices
    13. One or more mimetype migrations are available.
    14. Für deine Installation ist keine Standard-Telefonregion festgelegt.
    15. Some headers are not set correctly on your instance - The `X-Robots-Tag` HTTP header is not set to `noindex,nofollow`............................
    16. Your web server is not properly set up to resolve `.well-known` URLs, failed on: `/.well-known/carddav`
  7. Letsencrypt installieren

Vorabinformation:

Dieses Tutorial habe ich am 04.10.2024 komplett überarbeitet, da die mittlerweile aktuelle Version Nextcloud Hub 9 (30.0.0) ansonsten Probleme bereitet.

Änderungen:

Da Nextcloud in rasender Geschwindigkeit immer neue Versionen bereitstellt, die immer umfangreicher werden und immer höhere Anforderungen an die Hardware stellen, werde ich hier nur noch die Installation auf einem Pi 4 oder Pi5 mit einem Ram von >= 4GB in Verbindung mit Bookworm dokumentieren. Für einen Pi <4 gibt es keine Garantie, dass es funktioniert.

Es gibt zwar die Möglichkeit, ein veraltetes Nextcloud zu installieren, welches auf einem Pi 3 läuft, aber ich kann nicht auf alle Systeme..... eingehen.

Nextcloud wird nicht mehr in einem Unterverzeichnis installiert, sondern direkt in /var/www/html
Es gibt ansonsten mehrere Fehler, die nur durch verbiegen des Webroots entfernt werden können.


Sollten Fragen oder Anregungen zu dem Tutorial enststehen, erstellt bitte einen neuen Thread im entsprechenden Unterforum.
Ich werde die Fragen gerne beantworten und gegebenenfalls Änderungen vornehmen.

Alles, was hier dokumentiert ist, habe ich nach bestem Wissen recherchiert. Dennoch kann es vorkommen, dass sich ein Tippfehler..... eingeschlichen hat.

Ebenso entstehen mit jeder neuen Version (fallen wie Äpfel von den Bäumen) von Nextcloud wieder neue Hinweise / Fehlermeldungen, die ich versuche hier schnellstmöglich zu beheben.
Das ist aber nicht immer kurzfristig möglich.


Aktueller Stand 11.04.2025

  • 27.02.2023 (PHP 8.1 hinzugefügt)
  • 03.03.2023 (Aktivierung von ssl (HTTPS) für den Zugriff aus dem Heimnetz (IP-Adresse/Hostname hinzugefügt)
  • 11.10.2023 (PHP 8.2 für Bookworm hinzugefügt)
  • 01.02.2024 (Getestet auf einem Pi5)
  • 25.05.2024 (Neue Fehlermeldungen ab Version 29.0.0 bereinigt)
  • 04.10.2024 Komplettbearbeitung
  • 11.04.2025 OS Bullseye und PHP 7.4 entfernt. (PHP7.4 wird bei der aktuellen Version (HUB 10 V31.x.x von Nextcloud nicht mehr unterstützt.)

Was wird für die Installation benötigt

  • Voraussetzung für die Installation von Nextcloud ist natürlich eine saubere und möglichst sichere Installation des Betriebssystems.
  • Nachzulesen in meiner Anleitung „Grundinstallation RaspberryPi“
  • Installation eines Webservers mit PHP
  • Installation eines mysql-Datenbankservers (MariaDB)
  • Optional Installation von PhpMyAdmin (Webanwendung zur Administration von Mysql-Datenbanken)

Die Installation von PhpMyAdmin nicht unbedingt erforderlich, macht aber Sinn.

Installation eines Webservers (Apache2 und PHP)

Als erstes sollte das System aktualisiert werden, um alle Pakete und das Betriebssystem zu aktualisieren. Dazu gebt ihr folgenden Befehl in der Konsole ein:

sudo apt update && sudo apt full-upgrade

Für die Installation reicht es aus, PHP mit den für Nextcloud erforderlichen Paketen zu installieren.

Sofern vorher kein anderer Webserver installiert war, wird Apache2 automatisch mit installiert.

Wichtiger Hinweis!!

Dieses Tutorial unterstützt nur noch Installationen auf Bookworm in der 64 bit Version auf einem Pi 4 oder Pi 5 Möglichst mit eionem Ram von >= 4GB.

Für OS Bookworm 64bit (PHP 8.2)

Code
sudo apt install php8.2 php8.2-cli php8.2-curl php8.2-gd php8.2-intl php8.2-mbstring php8.2-mysql php8.2-opcache php8.2-readline
 sudo apt install php8.2-xml php8.2-xsl php8.2-zip php8.2-bz2 libapache2-mod-php8.2 php8.2-imagick php8.2-apcu php8.2-bcmath php8.2-gmp

Installation eines Datenbankservers (MariaDB)

sudo apt install mariadb-server mariadb-client

Secure Install MariaDB

Mit folgendem Befehl legt ihr ein root-Passwort sowie Sicherheitseinstellungen für MariaDB fest.

sudo mysql_secure_installation

Es folgen jetzt einige Fragen.

Die erste Frage nach dem aktuellen Root-Passwort könnt ihr einfach mit <ENTER> bestätigen, da bisher noch keins existiert.

Die nächste Frage, ob ein neues Root-Passwort angelegt werden soll, bestätigt ihr mit <Y> Gebt dann 2x (blind) euer neues Passwort ein.

Die folgenden Fragen:

„Remove anonymous users“

„Disallow root login remotely “

“Remove test Database and access to it” “Reload privilege tables now”

könnt ihr alle mit <ENTER> bestätigen, da in allen Fällen Ja (großes Y) vorausgewählt ist.

User und Passwort für den Datenbankserver erstellen

Da ihr euch nicht als root in MariaDB einloggen könnt, legt ihr jetzt noch einen User und ein Passwort an.

Dieses müsst ihr euch merken, da es bei jedem Zugriff auf den Datenbankserver per PhpMyAdmin benötigt wird. Gebt folgenden Befehl ein, um in die Einstellungen von MariaDB zu gelangen.

sudo mysql -u root

Mit den folgenden Befehlen erstellt ihr nun einen Benutzer und vergebt ein Passwort

CREATE USER 'user'@'localhost' IDENTIFIED BY 'Password';

user und Password anpassen

Nun gebt ihr dem Benutzer alle Rechte

GRANT ALL PRIVILEGES ON *.* TO 'user'@'localhost' WITH GRANT OPTION;

user anpassen

Jetzt verlasst ihr die mysql-Einstellungen mit

exit

Den Apache2 einmal neustarten mit folgendem Befehl.

sudo systemctl restart apache2

Installation von phpMyAdmin

(Optional. phpMyadmin wird für die Installation von Nextcloud nicht benötigt)

Für die Installation von phpMyAdmin wechselt ihr jetzt in das Verzeichnis, in das phpMyAdmin installiert werden soll.

cd /usr/share

phpMyAdmin herunterladen (aktuelle Version z.Zt. 5.2.1

sudo wget https://files.phpmyadmin.net/phpMyAdmin/5.2.1/phpMyAdmin-5.2.1-all-languages.zip

ZIP-Datei entpacken

sudo unzip /usr/share/phpMyAdmin-5.2.1-all-languages.zip

Die .zip-Datei wird jetzt nicht mehr benötigt und kann gelöscht werden

sudo rm /usr/share/phpMyAdmin-5.2.1-all-languages.zip

Den entpackten Ordner umbenennen in “phpmyadmin”

sudo mv /usr/share/phpMyAdmin-5.2.1-all-languages /usr/share/phpmyadmin

Die Konfigurationsdatei (phpmyadmin.conf) erstellen.

sudo nano /etc/apache2/conf-available/phpmyadmin.conf

Da die Datei noch nicht existiert, wird sie nun automatisch erstellt.

In dem sich öffnenden leeren Dateifenster gebt ihr nun folgenden Code ein.

Code
# phpmyadmin Apache configuration
Alias /phpmyadmin /usr/share/phpmyadmin
<Directory /usr/share/phpmyadmin> Options SymLinksIfOwnerMatch DirectoryIndex index.php
</Directory>
# Disallow web access to directories that don't need it
<Directory /usr/share/phpmyadmin/templates> Require all denied
</Directory>
<Directory /usr/share/phpmyadmin/libraries> Require all denied
</Directory>
<Directory /usr/share/phpmyadmin/setup/lib> Require all denied
</Directory>
Display More

Wenn ihr den Code dort eingefügt habt, könnt ihr die Datei mit <STRG> und <O> (O wie OTTO) und anschließendem <ENTER> speichern und mit <STRG> und <X> schließen.

Jetzt aktiviert ihr phpMyAdmin

sudo a2enconf phpmyadmin

Startet den Apache2 neu

sudo systemctl restart apache2

Jetzt könnt ihr PhpMyAdmin im Browser starten indem ihr die IP des Raspi eingebt gefolgt von /phpmyadmin

Beispiel:

http://192.168.xxx.xxx/phpmyadmin

Für die Anmeldung nutzt ihr den User und das Passwort, welche ihr vorhin im Abschnitt "User und Passwort für den Datenbankserver erstellen."

Beseitigung von Fehlermeldungen (Hinweise) in phpMyAdmin

In den letzten Versionen von PhpMyAdmin kommt es zu Fehlermeldungen.

Diese könnt ihr sehen, wenn ihr phpmyadmin gestartet habt, dann stehen die am unteren Fensterrand.

Die Konfigurationsdatei benötigt einen gültigen Schlüssel für die Cookie-Verschlüsselung.

Kopieren der Datei config.sample.inc.php nach config.inc.php

sudo cp /usr/share/phpmyadmin/config.sample.inc.php /usr/share/phpmyadmin/config.inc.php

Diese öffnet ihr jetzt mit nano

sudo nano /usr/share/phpmyadmin/config.inc.php

Relativ weit oben findet ihr folgenden Abschnitt

Quote

* This is needed for cookie based authentication to encrypt the cookie.
* Needs to be a 32-bytes long string of random bytes. See FAQ 2.10.
*/
$cfg['blowfish_secret'] = 'ldrtnhzstrehgklodehgdrnhztrsheia'; /* YOU MUST FILL IN THIS FOR COOKIE AUTH! */

Dort tragt ihr eine Zeichenfolge von genau 32 Zeichen ein. (S. Beispiel)

Apache2 einmal neustarten

sudo systemctl restart apache2

und der Fehler ist weg.

„Auf das $cfg['TempDir'] (./tmp/) kann nicht zugegriffen werden. phpMyAdmin kann keine Templates zwischenspeichern und ist daher langsam.“

Erstelle ein Verzeichnis temp in /usr/share/phpmyadmin

sudo mkdir /usr/share/phpmyadmin/temp

Ändere den Eigentümer

sudo chown -R www-data:www-data /usr/share/phpmyadmin/temp

Öffnet die Datei confic.inc.php

sudo nano /usr/share/phpmyadmin/config.inc.php

scrollt bis zum Ende und gebt folgende Zeile ein:

$cfg['TempDir'] = '/usr/share/phpmyadmin/temp';

Apache2 einmal neustarten

sudo systemctl restart apache2


Der phpMyAdmin-Konfigurationsspeicher ist nicht vollständig konfiguriert, einige erweiterte Funktionen wurden deaktiviert. Finden Sie heraus warum. Oder wechseln Sie in einer beliebigen Datenbank zum Tab „Operationen“, um die Einstellung dort vorzunehmen.

Klickt auf den Link "Finden Sie heraus warum".

Dann im nächsten Fenster auf „anlegen“

Nextcloud herunterladen und entpacken

sudo apt update && sudo apt full-upgrade


Nextcloud herunterladen (latest stable Version)

Wichtiger Hinweis!

Bitte nur noch ein 64 bit OS Bullseye oder Bookworm benutzen

Index of /server/releases

Nextcloud herunterladen (home-Verzeichnis)

wget https://download.nextcloud.com/server/releases/latest.zip

Nextcloud ZIP-Datei entpacken

unzip latest.zip

Die ZIP-Datei kann jetzt wieder gelöscht werden

rm latest.zip

Die index.html unter /var/www/html löschen

sudo rm /var/www/html/index.html

Die entpackten Dateien nach /var/www/html verschieben

sudo cp -r nextcloud/. /var/www/html/

sudo rm -R nextcloud

Den Eigentümer und die Gruppe für den Nextcloud-Ordner ändern auf www-data

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

Pfad für Datenverzeichnis festlegen

Als nächstes legt ihr nun den Speicherort für euer Nextcloud Datenverzeichnis fest. Dieses sollte sich nicht im Root-Verzeichnis des Webservers befinden.

Hierdurch erspart ihr euch ein nachträgliches Verschieben. Als Beispiel legt ihr einen neuen Ordner an unter /NC

Datenverzeichnis erstellen

sudo mkdir /NC

Die Rechte anpassen

sudo chown -R www-data:www-data /NC

Solltet ihr das Verzeichnis auf eine extrene Festplatte auslagern wollen, muss diese natürlich vorher gemountet sein.

Falls nicht, den folgenden Teil überspringen und weiter bei "Datenbank mit User und Passwort erstellen"

Mounten der Festplatte

Die Festplatte an den Raspi anschließen.

mit sudo blkid die PARTUUID auslesen

Die steht unter sdx1 ganz am Ende der Zeile

Beispiel:

./dev/sdb1: UUID="8D54-B01A" BLOCK_SIZE="512" TYPE="ext4" PARTUUID="b78de09d-6f19-45fa-94dd-49742a0793c7"

Dann sudo nano /etc/fstab eingeben

In der Datei die dann geöffnet wird, fügt ihr am Ende folgende Zeile an.

Nur mit den Cursortasten navigieren. Nicht mit der Maus

PARTUUID=<PARTUUID> /NC ext4 defaults,noatime,nofail 0 2

Beispiel:

PARTUUID=27f5bc43-02 /NC ext4 defaults,noatime,nofail 0 2

Die PARTUUID und das Filesystem anpassen.

Den Editor beenden mit STRG+O (Otto)

Mit ENTER das Speichern bestätigen.

Dann mit STRG +X den Editor schliessen.

Als Dateisystem empfehle ich eine mit ext4 formatierte Platte.

Falls die Partition in ext4 umformatiert werden soll,

sudo mkfs.ext4 /dev/sdx1

Den Pi einmal rebooten

sudo reboot

Nach dem erneuten Einloggen prüfen, ob die Platte gemountet ist.

lsblk

Dann sollte hinter sdx1 unter Mountpoint /NC stehen.


Datenbank mit User und Passwort erstellen

Jetzt müsst ihr speziell für Nextcloud einen Datenbank-user und eine zugehörige Datenbank anlegen. Dieses ist für die Installation von Nextcloud ab Version 17.0.2 zwingend erforderlich.

sudo mysql -u root

CREATE USER 'nc_user'@'localhost' IDENTIFIED BY 'Passwort';

CREATE DATABASE nextcloud;

GRANT ALL PRIVILEGES on nextcloud.* to 'nc_user'@'localhost' IDENTIFIED BY 'Passwort';

flush privileges;

quit

nc-user und Passwort jeweils anpassen.

Nextcloud erster Start

Öffnet euren Browser und gebt folgende Adresse ein.

http://ip eures pi

Dann öffnet sich folgende Eingabemaske

Unter “Administrator Konto anlegen” könnt ihr einen Administrator und ein Passwort frei festlegen. (Das Admin-Passwort muss min. 10 Zeichen enthalten und sollte möglichst keine Sonderzeichen enthalten, weil nicht alle Sonderzeichen akzeptiert werden.)

Unter “Datenverzeichnis” gebt ihr das unter "Pfad für Datenverzeichnis festlegen"

festgelegte Verzeichnis an.

In diesem Beispiel /NC mit angehängtem /data

Also /NC/data

Unter “Datenbank einrichten” müsst ihr die Daten genauso eingeben, wie bei der Einrichtung der Datenbank unter "Datenbank mit User und Passwort erstellen"

Dann bestätigt ihr mit “Installatiion abschließen.

Die Einrichtung dauert ein paar Minuten


Nextcloud Fehlermeldungen

Nach der Installation kommt es leider zu einigen Fehlermeldungen.

Ich erkläre euch hier, wie ihr diese durch entsprechende Einstellungen loswerdet.

Diese Fehlermeldungen werden angezeigt, wenn ihr in Nextcloud oben rechts auf euer Kontosymbol klickt, dann auf Einstellungen, links in der Mitte unter Verwaltung auf Übersicht.

Die PHP-Speichergrenze liegt unterhalb des empfohlenen Wertes von 512MB. Der PHP-OPcache ist nicht richtig konfiguriert.

Als erstes solltet ihr die Datei php.ini sichern, um sie bei einem Fehler wiederherstellen zu können.

sudo cp /etc/php/8.2/apache2/php.ini /etc/php/8.2/apache2/php.ini.old
php-Version anpassen

Öffnet die Datei php.ini

sudo nano /etc/php/8.2/apache2/php.ini Version (7.4 / 8.2) jeweils anpassen

Sucht dort mit <STRG> und <W> nach “memory_limit” und gebt hier einen Wert von 512M ein.

memory_limit = 512M Bei ausreichend RAM kann der auch auf 1024M erhöht werden.

Dann sucht nach „opcache.enable“ und gebt bei folgenden Zeilen die entsprechenden Werte ein. Bei allen diesen Zeilen muss das Semikolon am Anfang entfernt werden.

Code
opcache.enable=1
opcache.enable_cli=1
opcache.interned_strings_buffer=16
opcache.max_accelerated_files=10000
opcache.memory_consumption=128
opcache.save_comments=1

Datei speichern und schließen. Apache neustarten. Jetzt sollte der Fehler weg sein.

Es wurde kein Speichercache konfiguriert. Zur Erhöhung der Leistungsfähigkeit kann ein Memory-Cache konfiguriert werden.

Nextcloud config.php bearbeiten

sudo nano /var/www/html/config/config.php

Scrollt in der Datei nach unten und gebt oberhalb der letzten schließenden Klammer folgenden Code ein:

'memcache.local' => '\\OC\\Memcache\\APCu',

Die Datei speichern und schließen Dann öffnet ihr die php.ini Version auf die installierte Version anpassen

sudo nano /etc/php/8.2/apache2/php.ini  PHP-Versin anpassen

und tragt ganz am Ende folgenden Code ein.

apc.enable_cli=1

Tragt den Befehl ebenfalls in der Datei /etc/php/8.2/mods-available/apcu.ini (Version anpassen) ein.

Datei speichern und schließen Apache neustarten

systemctl restart apache2

und auch diese Fehlermeldung sollte verschwunden sein.

Der Strickt Transport-Security http-Header ist nicht auf mindestens 15552000 Sekunden eingestellt……

Öffnet die Datei .htaccess im Nextcloud Verzeichnis

sudo nano /var/www/html/.htaccess

Und tragt ganz am Ende folgenden Code ein#

Header set Strict-Transport-Security "max-age=15552000; includeSubDomains;

Datei speichern und schließen Dann öffnet ihr folgende Datei

sudo nano /etc/apache2/sites-enabled/000-default.conf

Nach der Installation von letsencrypt und Zugriff über https auch die folgende

sudo nano /etc/apache2/sites-enabled/000-default-le-ssl.conf

Gebt dort folgenden Code ein

Code
<IfModule mod_headers.c>
Header always add Strict-Transport-Security "max-age=15552000; includeSubDomains; preload"
</IfModule>

Datei speichern und schließen

Headers aktivieren

sudo a2enmod headers

Apache neustarten

sudo systemctl restart apache2

Und der Fehler ist auch Geschichte.

Dein Web-Server ist nicht richtig eingerichtet um "/.well-known/caldav" ....... aufzulösen.

Dein Web-Server ist nicht richtig eingerichtet um "/.well-known/carddav" aufzulösen. Dein Web-Server ist nicht richtig eingerichtet um “/.well-known/webfinger” aufzulösen. Dein Web-Server ist nicht richtig eingerichtet um “/.well-known/nodeinfo” aufzulösen.

Diese Meldungen erscheinen, wenn die Nextcloud-Dateien und Ordner nicht direkt im Webroot-Verzeichnis (var/www/html) liegen sondern in einem Unterverzeichnis wie z.b. /var/www/html/nextcloud

Tragt in der Datei

sudo nano /etc/apache2/apache2.conf

ganz am Ende folgende Zeilen ein.

Code
Redirect 301 /.well-known/carddav /remote.php/dav
Redirect 301 /.well-known/caldav /remote.php/dav
Redirect 301 /.well-known/webfinger /index.php/.well-known/webfinger 
Redirect 301 /.well-known/nodeinfo /index.php/.well-known/nodeinfo

Apache2 einmal neustarten

sudo systemctl restart apache2

PHP configuration option output_buffering must be disabled

sudo nano /etc/php/8.2/apache2/php.ini

Php-Version anpassen

Mit STRG und w suchen nach "output_buffering ="

In der Zeile 220 "output_buffering = 4096"

ein Semikolon einfügen

; output_buffering = 4096

Dem Modul php-imagick fehlt die SVG-Unterstützung.

sudo apt install libmagickcore-6.q16-6-extra

Bei jeder neuen Version können neue Fehlermeldungen hinzukommen, das sind Meldungen über Aktionen, die nicht automatisch ausgeführt werden, weil die je nach Datenbestand eine Weile in Anspruch nehmen können.

Die Beschreibung zur Fehlerbehebung steht normalerweise im Fehlertext. Dieses möchte ich aber noch detaillierter beschreiben.

Wechselt in das Verzeichnis eurer Nextcloud z.B.

cd /var/www/html/nextcloud

gebt dann im Terminalfenster den in der Fehlermeldung genannten Befehl mit vorangestelltem:

sudo -u www-data php (code aus der Fehlermeldung) ein und der Fehler wird nach erfolgreichendem Durchlauf verschwunden sein.

Dein Webserver ist nicht ordnungsgemäß für die Auflösung von "/nextcloud/ocm-provider/" eingerichtet..................

Das liegt daran, dass bei der V. 27.1.2 ein Verzeichnis "ocm-provider fehlt.

https://help.nextcloud.com/t/verzeichniss…handen/171621/2

Behebung:

nextcloud-27.1.1.zip downloaden und unzippen.

wget https://download.nextcloud.com/server/releases/nextcloud-27.1.1.zip

unzip nextcloud-27.1.1.zip

sudo cp -r nextcloud/ocm-provider /var/www/html


apache2 einmal restarten und die Meldung ist weg.


Fehler in den Protokollen seit .......

ArgumentCountError: Too few arguments to function OCA\CloudFederationAPI\Capabilities

Code
ArgumentCountError: Too few arguments to function OCA\CloudFederationAPI\Capabilities::__construct(), 1 passed in /var/www/html/nextcloud/ocm-provider/index.php on line 34 and exactly 2 expected at /var/www/html/nextcloud/apps/cloud_federation_api/lib/Capabilities.php#39 

In der Datei ..../var/www/html/ocm-provider/index.php folgende Zeilen ausblenden. (/* am Anfang und */ am Ende)


Code
/*
if ($isEnabled) {
       // Make sure the routes are loaded
       \OC_App::loadApp('cloud_federation_api');
       $capabilities = new OCA\CloudFederationAPI\Capabilities($server->getURLGenerator());
       header('Content-Type: application/json');
       echo json_encode($capabilities->getCapabilities()['ocm']);
} else {
       header($_SERVER["SERVER_PROTOCOL"]." 501 Not Implemented", true, 501);
        exit("501 Not Implemented");
}
*/
Display More

Danach können noch weitere unkritische Sachen protokolliert werden.
Um das auch noch abzuschalten in der config.php folgenden Eintrag hinzufügen
'loglevel' => 4,


Kritische Fehler werden dann trotzdem protokolliert.

Anschließend einmal die Datei nextcloud.log im data-Verzeichnis löschen.


Der Server hat keine konfigurierte Startzeit für das Wartungsfenster................

Das ist zwar nur ein Hinweis, lässt sich aber leicht ändern.
In der Datei /var/www/html/config/config.php eine Zeile einfügen.
'maintenance_window_start' => '1',

Das bedeutet, dass Zeitintensive Hintergrundaufgaben zwischen 01 und 05 Uhr (UTC) ausgeführt werden. (1 + 4 Std)


Die Datenbank wird zum Sperren von Transaktionsdateien verwendet. Um die Leistung zu verbessern, richte bitte, sofern verfügbar, Memcache ein.

Zu beheben mit einem Eintrag in die config.php von Nextcloud.

Folgende Zeile einfach am Ende vor der letzten schließenden Klammer einfügen und den apache neustarten

Code
'memcache.locking' => '\\OC\\Memcache\\APCu',

Fehlende Indices

sudo -u www-data php /var/www/html/occ db:add-missing-indices

One or more mimetype migrations are available.

sudo -u www-data php /var/www/html/occ maintenance:repair --include-expensive


Für deine Installation ist keine Standard-Telefonregion festgelegt.

In der Datei /var/www/html/config/config.php folgende Zeile einfügen

'default_phone_region' => 'DE',


Some headers are not set correctly on your instance - The `X-Robots-Tag` HTTP header is not set to `noindex,nofollow`............................

In der entsprechendenVirtual Hosts - Datei

/etc/apache2/sites-available/000-default.conf (http)
/etc/apache2/sites-available/default-ssl.conf (https)
/etc/apache2/sites-available/000-default-le-ssl.conf (https mit Letsencrypt-Zertifikat)

Je nachdem, was zutrifft.


folgende Zeilen einfügen. Die stehen normalerweise in der .htaccess-Datei, aber aus irgeneinem Grund wird das ab Version 29.0.0 ignoriert.

Code
 <IfModule mod_env.c>

   Header onsuccess unset Referrer-Policy
   Header always set Referrer-Policy "no-referrer"

   Header onsuccess unset X-Content-Type-Options
   Header always set X-Content-Type-Options "nosniff"
   Header onsuccess unset X-Frame-Options
   Header always set X-Frame-Options "SAMEORIGIN"

   Header onsuccess unset X-Permitted-Cross-Domain-Policies
   Header always set X-Permitted-Cross-Domain-Policies "none"

   Header onsuccess unset X-Robots-Tag
   Header always set X-Robots-Tag "noindex, nofollow"

   Header onsuccess unset X-XSS-Protection
   Header always set X-XSS-Protection "1; mode=block"

   SetEnv modHeadersAvailable true

</IfModule>
Display More

apache neustarten


Your web server is not properly set up to resolve `.well-known` URLs, failed on: `/.well-known/carddav`

In der Datei /etc/apache2/apache2.conf
am Ende in der Zeile Redirect 301 /.well-known/carddav /remote.php/dav hinter .php/dav einen zusätzlichen / anhängen
Das muss dann so ausseehen Redirect 301 /.well-known/carddav /nextcloud/remote.php/dav/


wie immer apache neustarten

Letsencrypt installieren

Um ein SSL Zertifikat von Letsencrypt zu installieren, benötigt ihr erst einmal einen Domainnamen, mit dem euer Server erreichbar ist.

Da ihr sicherlich keine statische IP-Adresse habt, benötigt ihr eine dynamische Adresse (DynDNS) diese gibt es bei vielen Anbietern kostenlos. (z.B. noip, clickIP, Securepoint DynDNS…….

Alternativ könnt ihr auch bei einem Hoster kostengünstig eine Domain (z.b. euerName.de) bestellen. Diese ist dann in der Regel innerhalb von 24 Std registriert und aktiv.

Zum Beispiel Strato bietet eine Domain mit Email-Adresse und Dyndns-Service bereits für unter einen Euro/Monat an. Im ersten Jahr sogar nur 0.08 Euro/Monat.

Da euer Router in den meisten Fällen nach 24 Std. eine neue Ip erhält, gibt dieser die aktuelle IP an den DynDnsDienst weiter. Eure DynDns-Domain wir dann mit der aktuellen IP verknüpft und somit ist euer Server immer erreichbar.

Wenn ihr zum Beispiel eine Fritzbox habt, könnt ihr DynDns dort einrichten. Die Fritzbox gibt dann bei einer Änderung der IP diese automatisch an den DynDns-Dienst weiter.

Wenn euer Router diese Funktion nicht unterstützt, könnt ihr DynDns auch auf eurem Raspi einrichten. Wenn ihr nun eine aktive DynDns-Adresse habt, könnt ihr Letsencrypt einrichten.

Als erstes müsst ihr jetzt auf eurem Router die Ports 80 (http) und 443 (https) auf euren Pi weiterleiten. Loggt euch dann via Putty auf eurem Pi ein. Gebt dann folgende Befehle ein.

sudo apt install python3-certbot-apache

sudo certbot --apache

Jetzt müsst ihr ein paar Daten eingeben. Zunächst eure Emailadresse. (erforderlich)

Eure DynDns-Domain (z.B. eure.domain.de)

Das Letsencrypt Zertifikat hat eine Gültigkeitsdauer von 3 Monaten. Es wird aber automatisch rechtzeitig vor Ablauf erneuert. Ich glaube sogar monatlich.

Jetzt müsst ihr in der config.php von Nextcloud noch eine Einstellung vornehmen, damit die Domain von Nextcloud als vertrauenswürdig eingestuft wird.

sudo nano /var/www/html/config/config.php

Dort scrollt ihr runter bis zu trusted_Domains und gebt unter der letzten Domain (ipadresse von eurem Pi) eure Domain ein.

Code
trusted_domains' =>
array (
0 => 'localhost‘,
1 => '192.168.xxx.xxx‘,
2 => 'deine.domain.de',

Nur ssl aktivieren für Zugriff aus dem Heimnetz per IP-Adresse oder Hostname

Für den Zugriff aus dem Heimnetz (ohne dynDns) reicht es aus, nur ssl zu aktivieren.

(einige Apps z.B. DAV... verlangen zwingend eine ssl Verbindung)

Code
sudo a2enmod ssl
sudo a2ensite default-ssl
sudo systemctl restart apache2

Ich hoffe, ich konnte euch mit dieser Anleitung weiterhelfen

Bei Fragen einfach einen Thread im entsprechenden Unterforum aufmachen.

  • nextcloud
  • apache2
  • RaspberryPi
  • mariadb
  • letsencript
  • Next Article raspiBackup Installation, Grundeinstellungen, Erstes Backup und Restore

Comments 4

Die Kommentarfunktion ist nicht für Fragen/Support gedacht. Sollten Fragen zu dem Artikel enststehen, erstelle bitte einen neuen Thread im entsprechenden Unterforum.
sv00010_svo
May 10, 2025 at 7:23 AM
Quote

"Nachzulesen in meiner Anleitung „Grundinstallation RaspberryPi“

Die Anleitung sollte verlinkt werden.

Ich suche schon mehrere Minuten und finde nichts.

simonz
May 10, 2025 at 7:43 AM

Über die Forumssuche (Einstellung "Alles") zu finden:

Thread

Grundinstallation Raspberry Pi mit dem Pi Imager

forum-raspberrypi.de/attachment/33937/



Stand 24.03.2024

Überarbeitet 05.03.2023

Überarbeitet 24.03.2024 ( Version 1.8.5)

Meine Tutorials

Forumsperlen



Vorwort

Ich zeige euch hier, wie ihr einen RaspberryPi mit dem Raspberry Pi Imager installieren könnt.

Aufgrund der zahlreichen neuen Versionen, dem hinzugekommenen PI 5..... habe ich das Ganze noch einmal überarbeitet.



Inhalt

1.0.0 Benötigte Hardware

1.1.0 Benötigte Software

1.2.0 Installation Betriebssystem mit dem Raspberry Pi Imager

1.4.0 Zugriff auf…
Franjo G
February 13, 2022 at 2:19 PM
uwie
December 18, 2024 at 9:45 PM

Vielen Dank für DIESE ARBEIT !!! Unfassbar. Toll! Einfach genial.

Du hast Dir wirklich enorm viel Mühe gegeben und da macht es richtig Spass manche Dinge dann einfach " auszuprobieren " wenn man so an die Hand genommen wird.

Da ich weiß, wieviel Arbeit Du darin investiert hast traue ich mich kaum Dich zu bitten weiter so mit " Seafile " " Immich " und und und ... zu machen.

Ein glücklicher Anfänger :thumbup::thumbup::thumbup:

ps915
May 24, 2024 at 8:09 PM

Vielen Dank Franjo G für den ersten Artikel hier im Forum!

Kategorien

  1. Hardware 0
  2. Software 4
  3. Testbericht 0
  4. Reset Filter

Schlagwortwolke

  • apache2
  • Backup
  • letsencript
  • mariadb
  • Mount
  • nextcloud
  • RaspberryPi
  • raspiBackup
  • Samba
  • sicherung
  1. Datenschutzerklärung
  2. Impressum

Forenregeln

Powered by WoltLab Suite™