Nextcloud 19 Installationsprobleme

  • Ich habe das Webhostingpaket 2000 und hatte längere Zeit eine funktionierende Nextcloud Version 15 auf einer Subdomain am laufen, abgesichert durch ein LetsEncrypt Zertifikat.

    Ich habe jetzt die Version 15 inklusive Datenbank gelöscht, und die neue Version 19 von der Nextcloud Homepage als zip kopiert, entpackt und mit SFTP auf die Subdomain in das Verzeichnis .../cloud hochgeladen (PHP-Version 7.4). Die index.php lässt sich dann auch problemlos aufrufen. Wenn ich die notwendigen Angaben (DatenbankUser, DatenbankName, usw.) eingeben erhalte ich die Fehlermeldung: „Interner Serverfehler. Der Server konnte die Anfrage nicht fertigstellen. Details siehe Server-Protokoll.“


    Ich habe das mehrfach wiederholt und festgestellt, dass bereits genau in dem Augenblick, wenn ich die index.php aufrufe (also ohne irgendwelche config-Einträge gemacht zu haben) in der log-Datei des Servers Fehlermeldungen erscheinen:


    Fehlercodes bei IPv4 Zugriffen von meinem Client zuhause :

    400 (Bad Request) bei „GET /status.php HTTP/1.1“. Quelle ist „SSL/TLS-Zugriff für nginx“


    Fehlercodes bei Netcup internen IPv6 Zugriffen:

    403 (Forbidden) bei „GET /data/htaccesstest.txt HTTP/1.0“ Quelle ist Apache-Zugriff.

    Nachricht: AH01797: client denied by server configuration: /var/www/vhosts/hostingxxxxx.netcup.net/cloud/data/htaccesstest.txt. Quelle ist „Apache-Fehler“.


    Wie gesagt: Meine Konfigurationseinstellungen für die Nextcloud können nicht falsch sein, weil ich sie zum Zeitpunkt der Fehlermeldung noch garnicht eingetragen habe. Die allgemeinen Apache-Einstellung stehen auf „Standard“. Nginx ist im Proxymodus. Ob alle für Nextcloud notwendigen PHP Module geladen sind, kann ich nicht feststellen.


    Meine Interpretation bis dahin: Der Apache Webserver will mit IPv6 Zugriff auf die Datei htaccesstest.txt oder will sie erstellen, das geht aber nicht, deshalb die Fehlermeldungen. In der .htaccess für dieses Verzeichnis steht auch was von : Order Allow,Deny, Deny from all, Satisfy All


    Hat jemand eine Lösungsidee oder Suchhinweis ?


    PS: Es wäre doch sicherlich für viele „normale“ User sehr hilfreich, wenn Netcup die Nextcloud als einfach zu installieren Web Anwendung anbieten würde. Im Bereich virtueller Server bieten sie doch auch ein Image mit integrierter Nextcloud an. Eine eigene Cloud wäre für viele Normaluser sicherlich wünschenswert. Der Weg dorthin muss aber einfach sein. :)

  • Jedes Update führt gefühlt zu Problemen.

    Welche Probleme hattest Du denn? Ich habe zwar erst 3-4 Updates innerhalb von v18 hinter mir, aber da gab es nichts zu meckern…

    "Wer nur noch Enten sieht, hat die Kontrolle über seine Server verloren." (Netzentenfund)

  • hallo TomasChr,

    die Datei htaccesstest.txt gibt es nicht.

    deshalb dachte ich, die sollte erstellt werden und wg. fehlender Zugriffrechte hat es nicht funktioniert.


    nun ja Updates: Das Update von version 15 auf Version 19 hat nicht funktioniert. Deshalb die Neuinstallation.

  • Zumindest früher war es so, dass sie bei so großen Versionssprüngen empfohlen hatten, erst innerhalb der Major (bei Dir also 15) auf die letzte Verison upzudaten und dann Schritt für Schritt von Major zu Major (also zu 16 letzte Release, dann zu 17 letzte Release usw.), weil es ansonsten zu Problemen kommen kann. Ich könnte mir gut vorstellen, dass die 19 sich nicht mehr darum kümmert, was im 15er Datenmodell noch anzupassen ist, damit es in 16 lief. Deshalb habe ich auch immer die Updates, wenn sie einen Major-Sprung enthielten, auf der Konsole und nicht mit dem Web-Updater gemacht.


    Also ich habe jetzt meine 16er nextcloud vom 1&1 Webhosting zu netcup Webhosting übersiedelt und es läuft hier auch nicht schlechter also zuvor. Update zu 17 werde ich im Laufe des Tages machen, dann wieder einen Tag laufen lassen und Probleme beheben und dann Update auf 18. Die 19 ist mir noch etwas zu heiß.


    Habe aber im Rahmen von Tests auch eine 19 frisch installiert und hatte nicht das von Dir beschriebene Problem, dafür aber andere. Mit einem GET auf eine .txt Datei die vermutlich statische Datei meist nur geladen. Man könnte zwar über einen Rewrite doch auch ein Skript dahinter ausführen lassen, aber für eine frisch installierte nextcloud unwahrschenlich. Was mich etwas wundert: meine ist auch in /cloud/ installiert, aber ich habe auch überall nur GET /cloud/... in meinen Logs stehen. Hatte aber auch den Webinstaller statt dem ZIP genutzt sie zu installieren. Kann mir deshalb keinen Reim darauf machen, woher die Zugriffe auf /status.php und /data/htaccesstest.txt kommen.

  • Dass man Upgrades genau so schrittweise durchführen soll, ist nicht ungewöhnlich und völlig normal in der Softwarewelt. :)


    jni Ist die Verarbeitung von statischen Dateien durch Nginx bei Dir deaktiviert, wie auf diesem Screenshot ersichtlich?


    https://github.com/froonix/web…shots/plesk/webserver.png


    Wenn man Nginx nicht nur als reinen Proxy verwendet, kann es meiner Erfahrung nach beim Webhosting mit mächtigen PHP-Anwendungen zu sehr skurrilen Problemen kommen. Letzten Endes nachvollziehbar, aber wissen muss man es halt.

    "Wer nur noch Enten sieht, hat die Kontrolle über seine Server verloren." (Netzentenfund)

  • Welche Probleme hattest Du denn? Ich habe zwar erst 3-4 Updates innerhalb von v18 hinter mir, aber da gab es nichts zu meckern…


    Solange die Cloud klein war lief alles problemslos... aber wehe man musste mal in die Shell. Da musste davor und danach verschiedenster Kram angepast werden (gibt auch einige Threads hier im Forum). Und wenn ich die fallweise Unterscheidung mal am laufen hatte ging es irgendwann doch wieder nicht.


    Aber ist auch ne EiWoMiSau. Habe es dann irgendwann mehr oder weniger aufgegeben ;)

  • Da musste davor und danach verschiedenster Kram angepast werden (gibt auch einige Threads hier im Forum). Und wenn ich die fallweise Unterscheidung mal am laufen hatte ging es irgendwann doch wieder nicht.

    Dafür gibt es übrigens eine elegantere Lösung: Man kann die notwendige Konfigurationsänderung auch in eine eigene Datei packen, dann bleibt sie bei Updates o.ä. garantiert erhalten! :)


    Siehe: https://github.com/froonix/web…ud/config/data.config.php


    (In diesem Repository habe ich alle Anpassungen abgelegt, die mit Nextcloud beim Webhosting zu tun haben.)

    "Wer nur noch Enten sieht, hat die Kontrolle über seine Server verloren." (Netzentenfund)

  • Leider habe ich bisher weder von telefonischen Netcup-Support noch vom Forumsteilnehmern Lösungshinweise bekommen. Die Fehlermeldung „AH01797: client denied by server configuration“ und der darin enthaltene Hinweis auf die Datei „htaccesstest.txt“ ist auch etwas irreführend und nicht unbedingt ein Hinweis auf eine Lösung.


    Durch mehrere Stunden Recherche und viel Ausprobieren habe ich die Lösung gefunden:


    Das Unterverzeichnis, in dem die Nextcloud installiert werden soll, muss die Zugriffsberechtigungen 775 haben. Die Zahl 5 bedeutet dabei, dass Zugriffe aus dem Internet (read, execute) für dieses Verzeichnis erlaubt sein müssen, um die Nextcloud zu installieren.

    Ich hatte das Unterverzeichnis mit dem FTP-Programm Filezilla erstellt. Filezilla erstellt neue Verzeichnisse standardmäßig mit der Berechtigung 770. Die Zahl 0 bedeutet dabei, dass auf dieses Verzeichnis aus dem Internet nicht zugegriffen werden kann. Deswegen ist es mir auch nicht gelungen die Nextcloud- Konfigurationsdaten einzutragen. Außerdem war es nicht möglich das Datenverzeichnis der Nextcloud (z.B.: /data) zu erstellen, in dem die Userkonten und Userdateien abgespeichert werden. Die Fehlermeldung „client denied by server configuration“ er gibt daher durchaus einen Sinn.

    Die Lösung besteht also darin, das Verzeichnis, in dem die Nextcloud installiert werden soll, mit Filezilla zu erstellen und anschließend die Berechtigung auf 775 zu ändern. Oder direkt mit dem Netcup-Dateimanager zu erstellen. Dieser vergibt für neue Verzeichnisse standardmäßig die Berechtigung 775.


    Aber Achtung: Wenn man das Datenverzeichnis der Nextcloud seperat manuell mit dem Netcup-Dateimanager erstellt, hat dieses dann ebenfalls die Berechtigung 775. Dies würde einen anonymen Zugriff aus dem Internet auf die gespeicherten Daten ermöglichen und ist daher natürlich nicht erwünscht. Das Datenverzeichnis der Nextcloud sollte daher im Rahmen des Installationsprozesses erstellt werden. Dieses hat dann auch die zutreffende Berechtigung 770.


    Ein kleiner Tipp am Rande: Anstatt die 12000 Nextcloud-Dateien mit einem FTP-Programm auf den Server hochzuladen, könnte man mit dem Netcup-Dateimanager nur die eine Nextcloud-zip-Datei hochladen und diese dann auf dem zu Server entpacken. Das geht wesentlich schneller.


    Eine konkrete Zusatzfrage habe ich noch:

    Im Netcup-Dateimanager sind für jedes Verzeichnis und für jede Datei eine Gruppenzugehörigkeit eingetragen. Die Einträge sind „root“, „psaserver“ und „psacln“. Was bedeuten die Gruppenbezeichnungen „psaserver“ und „psacln“ ?

  • Also dass das letzte der drei Rechte für Zugriff aus dem Internet steht würd ich jetzt so ned ganz unterschreiben :)


    Aber lies doch selbst: https://wiki.ubuntuusers.de/Rechte/


    tl;dr:

    Die Rechte sind:

    - Besitzer

    - Gruppe des Besitzers

    - Jeder


    Wobei Jeder nicht "jeder aus dem Internet" sondern jeder Linux Systemuser bedeutet.

    In dem Fall ist der Jeder-User wahrscheinlich der Webserver-User (www-data). Wenn der Ordner also dem User "www-data" gehört dann müssen die Rechte für Jeder nicht angefasst werden.


    Kurzum: Es ist kompliziert...

  • Hallo Thomas, ich habe deinen Link gelesen. Der User „www-data“ ist definitiv der Benutzer des Webservers Apache. Mit meinem bisschen Halbwissen interpretiere ich das sehr wohl als „alle die auf Nutzerdaten des Webservers zugreifen“ also: jeder aus dem Internet.

    Wie dem auch sei. Das Problem ist genau mit dieser Aktion, nämlich die Änderung der Rechte des Nextcloud-Verzeichnisses von 770 auf 775, gelöst worden. Ich habe die Lösung dieses Problems auf einer anderen Subdomain reproduziert. Mit gleichem, positiven Ergebnis.

    Oder hat jemand eine andere Erklärung?

    Es wäre schon ganz nett, wenn es für die Installation von Nextcloud in einem Webhostingpaket von Netcup ein bisschen mehr Klarheit geben würde.

    Noch ein Nachtrag:

    Nextcloud möchte gerne auch ein Verzeichnis /tmp und gibt Fehlermeldungen heraus, wenn dieses Verzeichnis nicht vorhanden ist. Im Rahmen der Installation wird dieses Verzeichnis nicht erstellt. Es wäre deshalb sinnvoll dieses Verzeichnis vor Beginn der Installation manuell zu erstellen.

  • Die (PHP) Skripte der Kunden werden im Shared Hosting Bereich aber garantiert nicht als www-data ausgeführt. Das war bei vielen Hostern früher so, als mod_php verwendet wurde. Durch FastCGI laufen sie immer unter dem jeweiligen Hosting-User.


    Die letzte Stelle der oktalen Rechte bedeutet somit auch nicht, dass jeder Zugriff hat. Das ist alleine schon dadurch ausgeschlossen, dass Dein Root-Ordner (das Ausgangsverzeichnis im Chroot) keine dementsprechenden Rechte gesetzt hat. Die Berechtigungen müssen ja für jeden Ordner bis hinab zur Datei stimmen, um Zugriff zu bekommen.


    Ich vermute bei der erwähnten Datei übrigens, dass es sich um einen Test handelt, ob die enthaltene .htaccess-Datei HTTP-Zugriffe auf den data-Ordner korrekt verhindert. Insofern ist der Error 403 vollkommen korrekt und wichtig!

    Ein kleiner Tipp am Rande: Anstatt die 12000 Nextcloud-Dateien mit einem FTP-Programm auf den Server hochzuladen, könnte man mit dem Netcup-Dateimanager nur die eine Nextcloud-zip-Datei hochladen und diese dann auf dem zu Server entpacken. Das geht wesentlich schneller.

    Oder gleich mittels SSH einloggen, über wget die ZIP-Datei runterladen und mit unzip entpacken. ;)


    (Vorher cd ins richtige Verzeichnis nicht vergessen.)

    "Wer nur noch Enten sieht, hat die Kontrolle über seine Server verloren." (Netzentenfund)

  • hallo sla, über deine Aussage bin ich etwas irritiert. Ich weiß natürlich nicht, wer irgendwas gedacht hat. Auf der Webseite wirbt Netcup jedenfalls für seine Webhosting-Pakete mit dem sogenannten „Application Hosting“ und nennt dazu auch als Beispiele: phpbb (Forum), Magento, osCommerce (Online-Shops), Piwik (Statistik) oder Mediawiki. Die Installation von Serversoftware durch Kunden gehört also sehr wohl zur Geschäftspolitik von Netcup.

    Und: Nextcloud funktioniert ja auch bei Netcup im Rahmen eines Webhostingpaketes. Warum also nicht installieren? Bei anderen soliden Mitbewerbern funktioniert es doch auch mit ein paar Mausklicks.

    Ich denke, die Nachfrage nach eigener Cloud ist sehr groß. Für die allermeisten ist die Installation eines eigenen Rootservers eindeutig eine zu hohe Hürde. Insofern ist doch eine Nextcloud im Rahmen eines Webhostingpaketes eine super Sache.

  • Hallo killerbees19,

    ich verstehe dich insofern, dass die PHP-Skripte der Nextcloud-Software durch den jeweiligen Hosting-User ausgeführt werden.

    Ich habe das mit den Berechtigungen wie folgt verstanden: die 1. Zahl ist das Recht des Hosting-Users, der Zugriff auf ein Verzeichnis oder eine Datei haben muss und ein Skript ausführen will. Soweit so klar.

    Die 2. Zahl ist das Recht der besitzenden Gruppe und die dritte Zahl ist das Recht von „other“. Wenn also die Rechte eines Verzeichnisses auf 750 gesetzt sind, dann hat der Hosting-User das Recht 7, die Gruppe psaserv bzw. oder psacln das Recht 5. Wer ist denn „other“ ? Wer hat denn das Recht 0 ?

    Danke für den Hinweis auf Error 403. Das sehe ich auch so.

  • Other sind alle anderen Linux Nutzer auf dem System. ...................

    ja gut, dann doch auch alle User, die vom Internet aus auf die Verzeichnisse und Dateien zugreifen, oder ?

    killerbees19 hatte das ja weiter oben anders dargestellt.

    Was stimmt denn nun ?

    Wie sind denn die Berechtigungen für User aus dem Internet ansonsten geregelt ? (wenn nicht mit der 3. Ziffer)

  • Es gibt keine Berechtigung für User die aus dem Internet zugreifen. Solche User gibt es in einem Linux System nicht.

    User die aus dem Internet zugreifen tun das mit einem Programm welches auf dem Server läuft und sich dann als ein User der Betriebssystems "anmeldet".

    Wer deine Website aufruft läuft also entweder als der User der den Webserver gestartet hat (www-data) oder als dein User (wenn ein php Programm mit eigenem Userkontext wie heutzutage üblich).