Ergebnis 1 bis 8 von 8

Thema: Probleme bei Installation von Contao 4.9.x in Docker Container

  1. #1
    Contao-Nutzer
    Registriert seit
    03.03.2012.
    Beiträge
    5

    Standard Probleme bei Installation von Contao 4.9.x in Docker Container

    Hallo zusammen,

    ich versuche Contao 4.9 innerhalb eines Docker Containers lokal auf meinem Rechner zu installieren. Das Host System ist Ubuntu 20.04.

    Wenn ich versuche, Contao mit der "contao-manager.phar.php" zu installieren, bekomme ich die Fehlermeldung
    Code:
    ERROR 500 Failed to create "/var/www/html/contao-manager": mkdir(): Permission denied.
    Wenn ich versuche, Contao mit Composer innerhalb des Containers über die Kommandozeile zu installieren, bricht die Installation mit folgender Fehlermeldung ab:

    Code:
    contao/manager-plugin: ...done generating plugin class
    > Contao\ManagerBundle\Composer\ScriptHandler::initializeApplication
    
    In FileLoader.php line 180:
                                                                                   
      The file "/var/www/html/vendor/contao/manager-bundle/src/Resources/skeleton  
      /config/config.yml" does not contain valid YAML: The constant "PDO::MYSQL_A  
      TTR_MULTI_STATEMENTS" is not defined at line 50 (near "!php/const PDO::MYSQ  
      L_ATTR_MULTI_STATEMENTS: false") in /var/www/html/vendor/contao/manager-bun  
      dle/src/Resources/skeleton/config/config.yml (which is being imported from   
      "/var/www/html/vendor/contao/manager-bundle/src/Resources/skeleton/config/c  
      onfig_prod.yml").                                                            
                                                                                   
    
    In YamlFileLoader.php line 693:
                                                                                   
      The file "/var/www/html/vendor/contao/manager-bundle/src/Resources/skeleton  
      /config/config.yml" does not contain valid YAML: The constant "PDO::MYSQL_A  
      TTR_MULTI_STATEMENTS" is not defined at line 50 (near "!php/const PDO::MYSQ  
      L_ATTR_MULTI_STATEMENTS: false").                                            
                                                                                   
    
    In Inline.php line 615:
                                                                                   
      The constant "PDO::MYSQL_ATTR_MULTI_STATEMENTS" is not defined at line 50 (  
      near "!php/const PDO::MYSQL_ATTR_MULTI_STATEMENTS: false").                  
                                                                                   
    
    Script Contao\ManagerBundle\Composer\ScriptHandler::initializeApplication handling the post-update-cmd event terminated with an exception
    
                                                                                                       
      [RuntimeException]                                                                               
      An error occurred while executing the "contao:install-web-dir" command:                          
      In FileLoader.php line 180:                                                            
                                                                                       
        The file "/var/www/html/vendor/contao/manager-bundle/src/Resources/skeleton    
        /config/config.yml" does not contain valid YAML: The constant "PDO::MYSQL_A    
        TTR_MULTI_STATEMENTS" is not defined at line 50 (near "!php/const PDO::MYSQ    
        L_ATTR_MULTI_STATEMENTS: false") in /var/www/html/vendor/contao/manager-bun    
        dle/src/Resources/skeleton/config/config.yml (which is being imported from     
        "/var/www/html/vendor/contao/manager-bundle/src/Resources/skeleton/config/c    
        onfig_prod.yml").                                                              
                                                                                       
                                                                                                       
      In YamlFileLoader.php line 693:                                                        
                                                                                       
        The file "/var/www/html/vendor/contao/manager-bundle/src/Resources/skeleton    
        /config/config.yml" does not contain valid YAML: The constant "PDO::MYSQL_A    
        TTR_MULTI_STATEMENTS" is not defined at line 50 (near "!php/const PDO::MYSQ    
        L_ATTR_MULTI_STATEMENTS: false").                                              
                                                                                       
                                                                                                       
      In Inline.php line 615:                                                                
                                                                                       
        The constant "PDO::MYSQL_ATTR_MULTI_STATEMENTS" is not defined at line 50 (    
        near "!php/const PDO::MYSQL_ATTR_MULTI_STATEMENTS: false").
    Ich hatte zuvor schon Probleme mit dem Speicher bei Composer, so dass ich den Befehl folgendermaßen angepasst hatte:

    Code:
    php -d memory_limit=-1 /usr/local/bin/composer create-project contao/managed-edition . 4.9
    Das Problem liegt eindeutig in der Datei "/var/www/html/vendor/contao/manager-bundle/src/Resources/skeleton
    /config/config.yml". Ich weiß aber nicht, was ich da machen kann. Im Editor wird mir auch angezeigt, dass die Datei keinen validen YAML-Code enthält.

    Danke schon mal für eure Hilfe!

  2. #2
    Wandelndes Contao-Lexikon Avatar von BugBuster
    Registriert seit
    15.06.2009.
    Ort
    Berlin
    Beiträge
    10.513
    User beschenken
    Wunschliste

    Standard

    Zitat Zitat von cleaulem Beitrag anzeigen
    Hallo zusammen,

    ich versuche Contao 4.9 innerhalb eines Docker Containers lokal auf meinem Rechner zu installieren. Das Host System ist Ubuntu 20.04.

    Wenn ich versuche, Contao mit der "contao-manager.phar.php" zu installieren, bekomme ich die Fehlermeldung
    Code:
    ERROR 500 Failed to create "/var/www/html/contao-manager": mkdir(): Permission denied.
    Logisch, /var/www/html gehört dem User root, wenn du die contao-manager.phar.php über den Webbrowser aufrufst, läuft das als www-data, also Rechte anpassen und gut ist. Das ist aber kein Contao Problem sondern ganz allgemein PHP Schreibrechte im Document Root Verzeichnis, hier /var/www/html.
    Geändert von BugBuster (30.04.2020 um 22:45 Uhr)
    Grüße, BugBuster
    "view source" is your guide.
    Danke an alle Amazon Wunschlisten Erfüller

  3. #3
    Wandelndes Contao-Lexikon Avatar von BugBuster
    Registriert seit
    15.06.2009.
    Ort
    Berlin
    Beiträge
    10.513
    User beschenken
    Wunschliste

    Standard

    Zitat Zitat von cleaulem Beitrag anzeigen
    Ich hatte zuvor schon Probleme mit dem Speicher bei Composer, so dass ich den Befehl folgendermaßen angepasst hatte:

    Code:
    php -d memory_limit=-1 /usr/local/bin/composer create-project contao/managed-edition . 4.9
    Das Problem liegt eindeutig in der Datei "/var/www/html/vendor/contao/manager-bundle/src/Resources/skeleton
    /config/config.yml". Ich weiß aber nicht, was ich da machen kann. Im Editor wird mir auch angezeigt, dass die Datei keinen validen YAML-Code enthält.

    Danke schon mal für eure Hilfe!
    Wie hast du deinen Container gebaut?
    Ich habe das gestern zufällig auch getan, da ich eine PHP 7.4 Umgebung zum testen brauchte.

    Code:
    docker run --name ubuntucontao -p 81:80 -it ubuntu:latest /bin/bash
    (da bei mir schon Port 80 belegt war, habe ich hier 81 genommen und lasse das mappen)

    Danach musste ich natürlich noch einige Pakate nachinstallieren (Apache, php, php Erweiterungen, mysql server, composer)

    Dann wie gesagt, die Rechte anpassen, Apache mod_rewrite aktivieren und konfigurieren, Document Root nach /var/www/html/web konfigurieren, Apache restarten, mysql-server konfigurieren, DB und user anlegen.
    Dann habe ich mich als user www-data angemeldet im container und dann, jetzt erst:
    Code:
    cd /var/www/html/
    composer create-project contao/managed-edition .
    Danach contao/install aufgerufen und alles läuft super.

    Alternativ wäre ein mkdir web, dort den Contao Manager rein kopieren und über Webbrowser aufrufen und die Installation starten.
    Grüße, BugBuster
    "view source" is your guide.
    Danke an alle Amazon Wunschlisten Erfüller

  4. #4
    Contao-Nutzer
    Registriert seit
    03.03.2012.
    Beiträge
    5

    Standard

    Danke BugBuster für deine Antworten!

    Das Anpassen der Rechte hat sehr geholfen. Immerhin bekam ich den contao-manager zum Laufen.

    Aber ich habe immer noch dasselbe Problem wie bei der Installation mit composer. Die Datei ""/var/www/html/vendor/contao/manager-bundle/src/Resources/skeleton/config/config.yml" enthält nicht-validen YAML-Code, so dass die Installation mit einer Fehlermeldung abbricht. Sowohl in composer im Container als auch im contao-manager tritt dieses Problem auf. Die entsprechende Zeile sieht so aus:

    Code:
                    options:
                        !php/const PDO::MYSQL_ATTR_MULTI_STATEMENTS: false
    Ich weiß jetzt nicht, ob das ein Contao-spezifisches Problem ist, ob das jetzt mit dem Docker-Container zusammenhängt oder ob es doch eine Sache mit den Zugriffsrechten ist.

    Weil du mich gefragt hattest: Ich habe den Container mit Docker Compose gebaut. In meiner "docker-compose.yml" habe ich die MySQL-Umgebung und ein phpMyAdmin-Modul konfiguriert. Das php-apache Modul habe ich dann in der compose-Datei auf die Dockerfile verlinkt, in der ich dann auch die entsprechenden Erweiterungen installiert habe.


    Nachtrag: Ich habe das Problem im Thread https://community.contao.org/de/show...LTI_STATEMENTS gefunden, wobei dort auch einige Ratlosigkeit herrscht. Ich werde probieren, was ich erreichen kann.
    Geändert von cleaulem (01.05.2020 um 13:09 Uhr)

  5. #5
    Wandelndes Contao-Lexikon Avatar von BugBuster
    Registriert seit
    15.06.2009.
    Ort
    Berlin
    Beiträge
    10.513
    User beschenken
    Wunschliste

    Standard

    Ich hatte andere Probleme anfangs, da lag es daran, dass einige PHP Erweiterungen nicht installiert waren, bei mir waren das php-xml und php-zip.
    Grüße, BugBuster
    "view source" is your guide.
    Danke an alle Amazon Wunschlisten Erfüller

  6. #6
    Contao-Nutzer
    Registriert seit
    03.03.2012.
    Beiträge
    5

    Standard

    Hm, das ist bei mir nicht das Problem. Anfangs hatten mir tatsächlich einige Erweiterungen gefehlt, die ich dann aber einfach nachinstalliert habe. Der Contao-Manager zeigt mir in der Hinsicht auch grünes Licht.

    Bildschirmfoto von 2020-05-01 17-24-39.png

    Das Problem tritt auf, wenn ich versuche, die Contao-Installation einzurichten. Genau derselbe Fehler wurde in dem verlinkten Forumsbeitrag behandelt, die Hinweise dort waren für mich aber nicht allzu hilfreich. Ich versuche mich gerade an den Servereinstellungen. Vielleicht ist auch etwas mit der MySQL-Datenbank faul, da dort SSL nicht aktiviert ist.

  7. #7
    Wandelndes Contao-Lexikon Avatar von BugBuster
    Registriert seit
    15.06.2009.
    Ort
    Berlin
    Beiträge
    10.513
    User beschenken
    Wunschliste

    Standard

    MYSQL_ATTR_MULTI_STATEMENTS ist eine Konstante die in PHP genauer in der PDO-Mysql Erweiterung gesetzt wird. Dann müsste ja was mit der PHP Version bei dir was nicht stimmen.
    https://www.php.net/manual/en/ref.pdo-mysql.php
    Grüße, BugBuster
    "view source" is your guide.
    Danke an alle Amazon Wunschlisten Erfüller

  8. #8
    Contao-Nutzer
    Registriert seit
    03.03.2012.
    Beiträge
    5

    Standard

    Oh mein Gott! Das war der entscheidende Hinweis. Ich habe "pdo_mysql" über die Dockerfile installiert, und dann ging es. Naja, es ging nicht direkt, ich hatte noch ein wenig Schluckauf mit der .htaccess im Ordner "web", aber jetzt habe ich eine funktionierende Contao-Installation in meinem Docker-Container.

    Nochmal vielen Dank. Deine Tipps haben mir sehr geholfen!
    Geändert von cleaulem (01.05.2020 um 19:08 Uhr)

Aktive Benutzer

Aktive Benutzer

Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)

Lesezeichen

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •