Contao 4.9 Installation geht nicht

  • ich versuche gerade auf einem Webhosting 1000 Contao 4.9 zu installieren.

    die Webroot der Domain (nennen wir sie hier example.de) habe ich im CCP auf httpdocs/web eingestellt, die Datei contao-manager.phar.php dahin hochgeladen.

    Der Aufruf von http://example.de/contao-manager.phar.php funktioniert, der Manager wird ausgeführt, alle Prüfungen (php Pfad, Version...) laufen durch und sind ok.

    Dann beim Versuch, Contao 4.9 auszuwählen, will der Manager ein Verzeichnis hosting123456..../example.de/web anlegen, was erstens falsch ist, und zweitens schief geht, wenn man es dennoch aktiviert (Error 500).

    Weiss jemand einen Workaround ?

  • Go to Best Answer
  • Die Verzeichnisse müssen leer sein. Plesk legt da eine index.html zumindest rein ins document root (httpdocs/web). Wenn irgendwas in einem der beiden Verzeichnisse drin ist, was der Manager nicht kennt/akzeptiert, dann nimmt er vorsichtshalber nicht dein eingestelltes document root um nichts da drin möglicherweise zu überschreiben. In dem Fall erzeugt er dann selbst ein Unterverzeichnis und will das nachher als document root haben.

    Abhilfe: Darauf achten dass in httpdocs nichts außer dem Unterverzeichnis web liegt und in web nichts außer der contao-manager.phar.php. Dann klappts auch mit deinem gewählten document root ;)^^.

  • ...nachdem das zuletzt ja funktioniert hatte, wollte ich nun an einem anderen Webhosting 1000SE contao4.9 installieren.

    also den Dokumentenstamm auf /httpdocs4/web eingestellt und contao-manager.phar.php dorthin kopiert.

    sonst keine Dateien oder Ordner unter /httpdocs4 .

    dann den Manager im Browser aufgerufen, dieser startet kurz und erzeugt dann einen Error500, siehe screenshot.

    Die Berechtigung des Ordners httpdocs4 ist 0750 - also genau wie an der o.g. Referenz-Installation wo es funktioniert.

    weiss hier jemand Rat ?ksnip_20220331-173321.png

    • Best Answer

    open_basedir legt fest, auf welche Verzeichnisse PHP zugreifen kann. In den PHP-Einstellungen muss hier die zweite Wahlmöglichkeit ausgewählt sein,die mit {WEBSPACEROOT} anfängt und NICHT die erste, die Defaulteinstellung, die mit {DOCROOT} anfängt.

  • ah, ok, ist eine PHP Einstellung, die fängt mit {DOCROOT} an

    jetzt stelle ich mal {WEBSPACEROOT} ein....

    und schon klappts :)


    vielen Dank für den Tip, da wäre ich jetzt nicht so schnell drauf gekommen !

    (ich frage mich nur, warum das dann bei der erwähnten Referenz-Installation funktioniert hat, da ist auch Variante 1 eingestellt...)

  • vielen Dank für den Tip, da wäre ich jetzt nicht so schnell drauf gekommen !

    (ich frage mich nur, warum das dann bei der erwähnten Referenz-Installation funktioniert hat, da ist auch Variante 1 eingestellt...)

    Das sollte aber definitiv nicht so eingestellt sein, das wird sonst früher oder später Ärger machen, spätestens bei der nächsten Erweiterungsinstallation oder beim Update.

  • Nur mal eine grobe Idee, Du schreibst

    Dokumentenstamm auf /httpdocs4/web eingestellt

    in der Fehlermeldung ist der Pfad dann aber /httpdocs4/contao-manager.


    Das ist doch schon ein versuchter Ausbruch aus dem docroot.


    /httpdocs4/web/contao-manager müsste hingegen funktionieren.


    Oder bin ich da jetzt auch auf dem falschen Trip?

  • Ich fürchte ja, falscher Trip. Das Verzeichnis contao-manager ist absichtlich außerhalb des document root. Wenn open_basedir nicht aktiv ist oder eben das Verzeichnis oberhalb der document root freigibt, ist das kein Problem. Das ganze basiert auf Symfony, da ist die Verzeichnisstruktur üblicherweise so.

  • Ich fürchte ja, falscher Trip. Das Verzeichnis contao-manager ist absichtlich außerhalb des document root. Wenn open_basedir nicht aktiv ist oder eben das Verzeichnis oberhalb der document root freigibt, ist das kein Problem. Das ganze basiert auf Symfony, da ist die Verzeichnisstruktur üblicherweise so.

    Ok, aber dann ist das doch die Ursache für den beschriebenen 500 beim Installer.

    Zu Threadstart war doch open basedir auf DOCROOT gestellt und damit wird ein mkdir außerhalb abgestraft.


  • Ok, aber dann ist das doch die Ursache für den beschriebenen 500 beim Installer.

    Zu Threadstart war doch open basedir auf DOCROOT gestellt und damit wird ein mkdir außerhalb abgestraft.

    Ja, das war ja auch die Ursache und ist mit der "richtigen" Einstellung behoben, siehe Beitrag von hoernerfranz.

  • genau so ist es, tab.

    also nochmal danke an alle die hier geholfen haben, ich fand das jetzt relativ schwierig zu lösen anhand des Fehlers.

    was mich neben der älteren Installation, die ja trotz der falschen Einstellung funktioniert hat, wundert, ist dass hier nichts ähnliches zu finden war.

    kann eigentlich nur heissen, dass niemand hier ein aktuelles Contao auf einem Webhosting installiert

    (was ja offenbar mit den Standard-Einstellungen nicht geht), oder dass die, die es machen,

    das Problem kennen bzw. gleich wissen wie es zu lösen ist.

  • Die open_basedir Einstellung ist schon seit Contao 4.0 bei netcup notwendig. Warum es bei der alten Installation ohne diese Einstellung ging, sofern diese nicht noch Contao 3 war, kann ich mir nur so erklären, dass zur Zeit der Installation open_basedir entsprechend eingestellt war und später wieder umgestellt wurde. Ich kenne auch Kunden, denen es öfter mal passiert, dass sich die PHP-Einstellungen gelegentlich von selbst auf Default zurücksetzen, wenn man in die PHP-Einstellungen reinschaut und wieder rausgeht ohne zu speichern. Mir selbst ist es noch nicht passiert, aber ausschliessen kann ich es auch nicht.

  • Hay,

    gelegentlich von selbst auf Default zurücksetzen

    das kann auch im Rahmen eines PHP Updates passieren oder dem Wechsel zwischen FPM und FastCGI Modul.


    CU, Peter

    Peter Kleemann // https://www.pkleemann.de // +49 621 1806222-0 // Kann Programme, Internet, Netzwerke und Telefon.