Nextcloud keinen Zugriff mehr auf '/data' nach Update/ .ncdata fehlt

  • Hallo liebe Forengemeinde,

    ich habe vor 4 Jahren erfolgreich Nextcloud auf meinem Webhosting installiert. Lief auch bis heute problemlos über alle Updates hinweg.

    Heute habe ich von Ver 30.0.1 auf 30.0.2 geupdatet. Hat auch erstmal wie gewohnt geklappt und ich konnte ins WebUI, wo mir angezeigt wurde, dass ich über occ mal

    "maintenance:repair --include-expensive" ausführen sollte. Habe ich gemacht und kam danach nicht mehr in WebUI. Mit dem Hinweis:


    Code
    Ihr Datenverzeichnis ist ungültig.
    Stellen Sie sicher, dass eine Datei ".ncdata" im Wurzelverzeichnis des Datenverzeichnisses existiert. Sie sollte folgenden Inhalt haben: "# Nextcloud data directory"

    Bei mir ist liegt die Nextcloud-Installation im Basisverzeichnis/httpsdocs/nextcloud ( = /var/www/vhosts/hostingXXX.aXXX.netcup.net/httpsdocs/nextcloud) und die Daten in Basisverzeichnis/data ( = /var/www/vhosts/hostingXXX.aXXX.netcup.net/data). Im Config-Ordner von Nextcloud liegt neben der normalen Config.php noch dir.config.php mit dem Inhalt:

    dir.config.php verweist auf den ausgelagerten Data-Ordner und das hat auch über die Updates hinweg stabil funktioniert.


    Im Ordner /data ist .ncdata mit dem Inhalt # Nextcloud data directory vorhanden. Die Berechtigungen für den Ordner /data sind rwx rw- ---


    Ich habe im Webhosting heute auf php 8.3 umgestellt. Open_basedir steht auf Standard.

    Bin leider über die Jahre etwas aus dem Thema gekommen und übersehe vielleicht etwas...vielleicht fällt euch ja etwas ein.

    Vielen Dank schonmal! :)


    ps: Ich nutze das Webhosting 4000

  • Schau mal, ob der Eigentümer des Verzeichnis stimmt. Du kannst auch mal Verzeichnis auf 755 bzw. Dateien auf 644 setzen. Zusätzlich kannste auch in der config das Data Verzeichnis festlegen


    Code
    'datadirectory' => '/var/www/nextcloud/data',
  • Schau mal, ob der Eigentümer des Verzeichnis stimmt. Du kannst auch mal Verzeichnis auf 755 bzw. Dateien auf 644 setzen. Zusätzlich kannste auch in der config das Data Verzeichnis festlegen


    Code
    'datadirectory' => '/var/www/nextcloud/data',

    Ja, aber dann war die EInstellung bei jedem Update weg, weshalb ich das in dir.config.php ausgelagert habe. Würde dein Vorschlag für datadirectory nicht auf data verweisen, dass ein Unterordner vom Verzeichnis nextcloud ist?


    Data gehört dem user hostingXXXX aus der Gruppe psacln. Auch wenn ich alles auf 777 setze kommt die selbe Meldung

  • Wenn ich in die config 1:1 'datadirectory' => '/var/www/nextcloud/data', kopiere kriege ich dieselbe Fehlermeldung


    • Ihr Datenverzeichnis ist ungültig.

      Stellen Sie sicher, dass eine Datei ".ncdata" im Wurzelverzeichnis des Datenverzeichnisses existiert. Sie sollte folgenden Inhalt haben: "# Nextcloud data directory"

  • also wie gesagt, das eigentliche data-verzeichnis liegt ja zwei ebenen über dem nextcloud-verzeichnis.

    sorry stand gerade etwas auf dem schlauch, habe in die config mal folgendes eingetragen und die dir.config.php gelöscht:


    'datadirectory' => '/var/www/vhosts/hostingXXXX.XXXX.netcup.net/httpsdocs/nextcloud/data',


    dazu dann den ordner nextcloud/data erstellt und .ncdata abgelegt. jetzt bekomme ich einen internal server error

  • Ja, aber da kann ich nichts hilfreiches entnehmen. Sind auch auf den ersten Blick zu viele Klarnamen drin, um Ihn zu posten. Der Logfile wird weiterhin in den ausgelagerten Data-Ordner geschrieben, auf den Nextcloud laut Fehlermeldung keinen Zugriff hat

  • Da das mit den Pfaden vorher geklappt hat mit der alten PHP-Version, wird es wohl an den PHP-Einstellungen liegen. open_basedir ist da auch ein heißer Kandidat, wähle mal die andere Einstellung mit WEBSPACE_ROOT statt DOCUMENT_ROOT. Vermutlich war das bei der vorherigen PHP-Version so eingestellt. Mit der derzeitigen Defaulteinstellung kannst du per PHP nur auf Dateien und Verzeichnisse zugreifen, die innerhalb der document root liegen, die wohl dein Nextcloud-Verzeichnis ist und auf das temporäre Verzeichnis. Dein Data-Verzeichnis ist ja deiner Aussage nach nicht unterhalb der document root. Mit der anderen Einstellung kannst du auf den gesamten Webspace per PHP zugreifen und ebenfalls auf das außerhalb deines Webspace liegende temporäre Verzeichnis.

  • open_basedir ist da auch ein heißer Kandidat, wähle mal die andere Einstellung mit WEBSPACE_ROOT statt DOCUMENT_ROOT.

    uff, das wars. tausend dank. alles läuft wieder!


    wie vergebe ich denn am besten die zugriffsrechte für den nextcloud und data ordner/datein? ich hab da soviel rumgefummelt, dass ich keine ahnung mehr habe, wie es ursprünglich eingestellt war.


    vielen dank euch beiden!

  • Sorry hatte es oben übersehen, dass du es schon mal gepostet hast.

    Gibt es die Möglichkeit über ssh die Rechte automatisiert zu vergeben oder ist chmod im Webhosting gesperrt? Falls nicht, muss ich dann im CCP alle Berechtigungen händisch abklicken?


    Bin gerade auf Arbeit und kanns nicht prüfen.

  • Code
    find httpsdocs/nextcloud/ -type d -exec chmod 755 {} \;
    find httpsdocs/nextcloud/ -type f -exec chmod 644 {} \;
    
    und
    
    find data/ -type d -exec chmod 755 {} \;
    find data/ -type f -exec chmod 644 {} \;

    Das würde ich dann per SSH aus dem Wurzelverzeichnis meines hostings ausführen. Passt das?

  • ja das passt.


    du kannst an den enden … \; durch … + ersetzen, dann passiert der -exec … jeweils in einem rutsch.

    und mit … chmod -v … siehst du sämtliche änderungen.

    wer's loggen will, hängt noch jeweils ein  | tee -a chmod.log an's ende der find's.

    »Hauptsache BogoMIPS!«

    Fleischfresser

    »This is extremely dangerous to our democracy«

    Edited 2 times, last by Olivetti ().