Anleitung: nextcloud mit nginx reverse proxy und LetsEncrypt auf Docker

  • Moin eol25


    ich hab deine docker-compose Datei verwendet, bekomme folgenden Fehler:

    Code
    ERROR: yaml.scanner.ScannerError: while scanning for the next token found character '\t' that cannot start any token in "./docker-compose.yml", line 14, column 4

    Lasse ich die besagte Zeile weg bekomme ich keine Fehlermeldung mehr, jedoch wird MariaDB dadurch nicht mehr installiert.

    Die Installation von xgadscu läuft ohne Probleme, jedoch kann ich mich nach kurzer Zeit nicht mehr über WebDAV auf die Nextcloud zugreifen. Habe die letzten Tage versucht den Fehler zu reproduzieren, was mir jedoch leider bisher noch nicht gelungen ist.



    Vielleicht könnt ihr mir helfen. Gruß Finn

  • Hallo, klicke mich schon mehrere Tage erfolglos durchs Web und habe jetzt Dein doch etwas anspruchsvolleres Composer file gesehen.

    Was ich möchte: Eine Umgebung (also Container-Applikation), die aus php8, httpd (Apache) und phpmyAdmin besteht einrichten.

    Hintergrund ist eine per Containerstation gezogene Joomla-Installation, an der ich arbeite und die jetzt mal wieder einen PHP-Update benötigt hat. Bei dem Update habe ich mir fast die Entwcklungsarbeit von 2 Jahren kaputt gemacht, weil das ein Kombi-Image aus Joomla und PHP ist und Joomla bei der Neuinstallation fast alles kaputt gemacht hätte.

    Also will ich einfach nur eine Applikation, mit der ich die aktuellen Versionen von php, Apache und php myAdmin habe - Ohne Joomla. Außerdem um einiges an PHP-Programmierung zu testen.


    Nach vielen Stunden habe ich ein Docker Compose file, das folgendermaßen aussieht:

    Mit Erstellen->Applikation in der Container Station kann ich damit auch die Applikation erstellen, aber nur der phpmyAdmin und der Apache-Container laufen, php will um Verrecken nicht starten.


    Hat irgendjemand eine Idee? Braucht es einen Entrypoint wie bei der manuellen Erstellung eines Containers? Wenn ja, was sollte dieser sein? Ist der command:php in Ordnung so?


    Leider muss man sich mit den Uralt-Versionen von php auf QNAP immer mit so was rumschlagen. Jeder Tipp st sehr willkommen!

  • Hallo,


    ich habe Nextcloud nach dieser Anweisung installiert und es lauft auch alles. Ich kann auch über die Subdomain problemlos auf Nextcloud zugreifen.


    Wie aber kann ich lokal auf Nextcloud und Phpmyadmin zugreifen? Ich hatte vorher eine Installation (auch aus dem Forum), wo ich die Container über die Containerstation installiert habe (ohne NGING), da hatte jeder Container eine lokale IP, über die ich auf die Anwendung zugreifen konnte. Wie funktioniert das hier? Alle meine Versuche sind bisher gescheitert, kein Zugriff.


    Gruß QNAPspider

  • Also bei mir läuft sie in veränderter Form aktuell ohne Probleme. Aber vom Kern her habe ich die Anleitung genutzt ja

  • Hallo,


    ich habe auf 5.0 aktualisiert und erhalte jetzt folgenden Fehler:

    Code
    Internal Server Error
    
    The server encountered an internal error and was unable to complete your request.
    Please contact the server administrator if this error reappears multiple times, please include the technical details below in your report.
    More details can be found in the server log.

    Habt Ihr eine Empfehlung, in welchen logs (wo?) ich mehr Informationen bekommen


    Vielen Dank

  • ist dort nginx vorgeschalten? dann wäre dort einmal zu suchen und danach in der log der nextcloud. ich bekomme die meldung auch aber nur kurz, wenn der container gestartet wird

  • Hi,


    ich bin auf etwas gestoßen.

    Code
    docker-compose exec --user www-data app php occ check
    
    An unhandled exception has been thrown:
    Doctrine\DBAL\Exception: Failed to connect to the database: An exception occurred in the driver: SQLSTATE[HY000] [2002] Connection refused in /var/www/html/lib/private/DB/Connection.php:87
    Stack trace:
    #0 /var/www/html/3rdparty/doctrine/dbal/src/Connection.php(1519): OC\DB\Connection->connect()

    Allerdings bin ich mir unklar, warum das jetzt auftritt.


    Was muss ich anpassen?

  • Das sagt aus, dass keine Verbindung zur Datenbank hergestellt werden kann. Du musst also die Konfigurationsdaten dafür prüfen. Übrigens hatte ich mit MariaDB auch Probleme mit der Datenbank. Seitdem ich postgrsql als Datenbankserver nutze, habe ich solche Probleme nicht mehr.

  • Ja, das habe ich verstanden. Ich würde den Fehler nur gerne eingrenzen, z.B. der connection-string falsch ist oder ob der nextcloud-user nicht die richtigen Rechte hat oder ob einfach das Passwort falsch ist. Hast Du einen Tipp?


    Inzwischen bekomme ich auch einen anderen Fehler:

    Code
    An unhandled exception has been thrown:
    Doctrine\DBAL\Exception: Failed to connect to the database: An exception occurred in the driver: SQLSTATE[HY000] [2006] MySQL server has gone away in /var/www/html/lib/private/DB/Connection.php:87
    Stack trace:
    #0 /var/www/html/3rdparty/doctrine/dbal/src/Connection.php(1519): OC\DB\Connection->connect()

    Was ich gefunden habe, ist die my.cnf anzupassen:

    Code
    [mysqld]
    wait_timeout = 60
    reconnect = 1

    Aber welche my.cnf nehme ich für die MariaDB10? /opt/etc/mysql/my.cnf oder /opt/etc/mysql/conf.d/*.cnf - gerade weil in beiden ein Port (3306) steht, der nicht genutzt wird. (Ich verwende 3307.)

    2 Mal editiert, zuletzt von H4An9mThJp ()

  • Der Fehler SQLSTATE[HY000] [2006] spricht dafür, dass die Verbindung zur Datenbank gar nicht erst aufgebaut werden kann. Das ist ein Timeout, weil keine Rückmeldung vom Datenbankserver kommt. Es gibt noch eine andere Möglichkeit, dass die Datenbank mit der Größe der Pakete nicht klar kommt.


    Die Konfiguration solltest du auch nur in der config.php mit den richtigen Zugangsdaten vornehmen. Dort sollte doch auch der dbhost eingetragen sein und der entsprechende Port? Wie ist der dort hinterlegt? Ich würde dort beide Varianten mit den Ports versuchen. Der Wert sollte dort unter dbhost mit dem Port auch eingtragen sein also zb. 192.168.0.21:3306 oder ähnliches.


    Was du auch versuchen kannst, den wait_timeout Wert zu erhöhen. Eventuell hilft das schon. Was mich bei dir jedoch stutzig macht... nutzt du mysql und die nextcloud db im mysql von qts oder hast du eine eigene mysql-instanz als docker laufen (dann wäre die Frage, warum das nach dem Update passiert)?

    Einmal editiert, zuletzt von Robin_B ()

  • Hi,


    ich habe 192.168.0.17:3307 eingetragen. Der Port 3307 hat sich wohl mit MariaDB10 geändert. Danke für den Hinweis: Ich verwende die MariaDB auf dem Host, da ich dachte, das wäre performanter.

  • Nein, meine Aussage bezog sich auf meine bestehende Konfiguration. Dort ist es schon entsprechend eingetragen. Aber wie Du schon angemerkt hast, erreiche ich die Datenbank auf dem Host nicht. Was vor dem Update ohne Problem ging.

  • Dann hilft ja nur das Ausschlussverfahren. Prüfen, ob der Datenbankserver überhaupt ansprechbar ist. Es gab bei dem Update auf QTS 5.0 verschiedene Änderungen gerade bezogen auf Sicherheitsmechanismen.

  • Jetzt hab ich's.


    Ich weiß nicht genau, was es war aber zwei Dinge brachten die Lösung.


    Einmal in der docker-compose.yml die Erweiterung des Eintrags für die App:

    Code
        extra_hosts:
          - "host.docker.internal:host-gateway"

    plus eine Anpassung in der Datenbank. Damit der User von extern darauf zugreifen darf.


    Nochmal vielen Dank für Deine begleitende Unterstützung.

  • Hi again,


    jetzt wo ich mich wieder etwas mehr reingefuchst habe, würde ich gerne APCU aktivieren. Dazu soll "apc.enable_cli=1" in die

    /usr/local/etc/php/conf.d/docker-php-ext-apcu.ini schreiben. Wo kann ich das konfigurieren, damit das in den Container übernommen wird?

  • Hallo, Also ich musste das nicht extra aktivieren zumindest ist es bei mir aktiviert. In der config.php sollte es aktiviert sein auf jeden Fall. Sollte es bei dir standardmäßig nicht installiert sein.... musst du das nicht vorher auch mit installieren in dem image?


    was für infos stehen bei dir zu apcu in der php info?

  • Guter Hinweis, also laut der php -info aus dem Container ist APCU aktiviert.


    Dann habe ich wahrscheinlich ein andres Thema. Ich bekomme auf der Kommandozeile einen Fehler wenn ich Previews anlegen lasse:

    Code
     PHP Fatal error:  Allowed memory size of 536870912 bytes exhausted (tried to allocate 94208 bytes) in /var/www/html/lib/private/legacy/OC_Image.php on line 579

    Und ich hatte unter https://help.nextcloud.com/t/s…xx-bytes-exhausted/108521 gefunden, dass dies am nicht aktivierten APCU liegen würde, aber das scheint ja dann nicht der Fall zu sein.

  • Das sieht aber mehr nach einen Fehler aus, den mehrere anfangs haben. In nextcloud ist glaube ich ein Limit von 512 MB eingestellt anfangs. Sehr oft habe ich da gelesen, dass sowas in einer php. ini umgestellt werden muss. Ich selbst war da aber noch nicht dran an dem Thema. Das gibt es aber haufenweise. musst du mal googlen. Ich wäre aber gespannt auf deine Rückmeldung, denn irgendwie ist das mit den Dockern gar nicht so einfach, da viele die php.ini gar nicht erst finden.


    Ich habe bei mir gerade ein wenig experimentiert. Ich hatte auch ein Limit von 51M drinnen. Ich habe das aber durch erstellen einer eigenen ini und dem hinzufügen der Datei zu dem Image bei mir verändern können. Vielleicht musst du das auch so machen, damit das alles ok ist

    Einmal editiert, zuletzt von Robin_B ()