PHP 7.2.6 verfügar, Widersprüche beim memory_limit

  • Hi, ich habe ein Webhosting 2000 SE-Paket gebucht. PHP7.2.6 ist dabei, das ist gut so. Im CCP sehe ich ein memory_limit von 512MB (gut!), und auch die php.ini besagt dasselbe. Nun bricht bei der Installation des CMS Contao der Installer ab, der PHP Composer bricht ab mit dem Hinweis "Check https://getcomposer.org/doc/ar…ng.md#memory-limit-errors".


    512MB ist ein guter Wert, doch hier stimmt etwas anderes nicht: auf der Shell ergibt sich ein anderer Wert:

    Code
    1. bash-4.3$ php -r "echo ini_get('memory_limit').PHP_EOL;"
    2. 128M

    D.h. ich habe widersprüchlich Angaben, und vermute die 128MB die ich auf der Shell habe gelten. Stimmt das? 128MB wären arg knapp.


    Nutzt jemand Contao hier? (Früher hieß das Ding mal TypoLite). Bin für alle Hinweise dankbar.

  • Ach so, die 512MB bzw 128M stehen auch nicht im Widerspruch miteinander. Für die Konsole sind 128M voreingestellt, man kann aber wie oben gezeigt das Limit erhöhen. Mit dem wirklichen Limit, also wieviel RAM dein Konsolenprozess maximal nutzen kann, hat das sowieso nicht wirklich viel zu tun. Klar ist nur, PHP wird allerdings von sich aus nicht mehr als das eingestellte memory_limit nutzen und bei Überschreitung mit Fehlermeldung abbrechen. Erhöht man dann das memory_limit, kann der Prozess eventuell mehr RAM nutzen. Wieviel das beim Webhosting 2000 maximal sein kann und wovon das möglicherweise alles abhängt (augenblickliche Auslastung des Servers, Webhostingpaket, ...) weiss ich nicht. Dein Prozess kann auch schon vor Erreichen des eingestellten memory_limits mehr oder weniger unsanft beendet werden. Für Webprozesse sind dagegen dagegen 512M memory_limit eingestellt. Das lässt sich meines Wissens auch nicht wirklich erhöhen.

  • PHP 7 braucht jedenfalls dabei und auch allgemein deutlich weniger Speicher als 5.6. Wie bereits geschrieben, mit PHP 7.2 und unter Benutzung des Contao-Managers ist die Installation ohne weiteres möglich. Bei einem Update mit ein paar Erweiterungen habe ich heute vom Cloud-Resolver einen Peakwert von mehr als 2.4GB RAM angezeigt bekommen. Aber damit muss der Cloud-Server klarkommen, nicht mein Hostingpaket. Als ich hier angefangen habe, ging es auch in meinem kleinsten Hostingpaket (Webhosting 16 Years) noch problemlos mit Composer und Manager ohne Cloud-Resolver, den es da auch noch gar nicht gab. Jetzt hätte ich da schon Bedenken, probiert habe ich es aber in den letzten Wochen nicht. Wäre auch höchstens eine Befriedigung meiner Neugier.

    Ok, vielleicht mache ich es gerade deswegen mal. Ich bin ja nicht neugierig! Aber interessieren würde es mich schon. ;):D

  • Ich hab jetzt alle drei über das CCP wählbaren Variante von PHP und Webserver durch:

    * Apache mit fastCGI

    * Apache mit FPM

    * Nginx mit FPM

    ...wobei mir technisch die letztere am liebsten ist, die setze ich auch woanders ein. Jedenfalls alle ohne Erfolg. Auch das direkte Ausführen des Installers ergibt dabei keine kluge Fehlermeldung, mit Anhebung des memory_limits oder ohne, weder im Log im CCP noch direkt auf der Konsole.


    Wähle ich PHP 7.3 (da wird nur Apache angeboten) erhalte ich "ERROR 500 The Process class relies on proc_open, which is not available on your PHP installation."


    Ich glaub ich hab für dieses Seitenprojekt zu billig angefangen. Da ist wohl ein Upgrade fällig. VPS 500 G8 klingt deutlich stärker und sollte die Probleme nicht mehr haben (und mir mehr Kontrolle bieten). ^^


    /me geht mal buchen.

  • Musst du im WCP/Plesk in den PHP-Einstellungen erlauben (leere Liste auswählen). Auch die open_basedir Einstellung muss geändert werden, da ist die zweite Auswahlmöglichkeit notwendig, die Defaulteinstellung reicht nicht.

  • Nichts gegen einen vServer, habe selbst einen gebucht. Aber für eine halbwegs "normale" Contao Website wirst Du ihn nicht brauchen. Außer Du hast wirklich sehr viele Zugriffe. Wenn es mal installiert ist, dann wird da bei weitem nicht mehr so viel RAM benötigt wie bei der Installation. Da kommt man sogar mit 128MB memory_limit meist schon recht weit. Der RAM-Fresser ist ja nur die Auflösung der Abhängigkeiten durch Composer. Da hast du mit dem Webhosting 2000 sehr wahrscheinlich schon die richtige Wahl getroffen.


    Kannst ja mal berichten ob das mit nginx klappt. Falls ja probiere ich das auch mal. Ich hatte die Befürchtung, dass man da Einstellungen machen muss, die hier im Webhosting nicht möglich sind. Deswegen arbeite ich momentan mit PHP 7.2 und Apache/FPM.

  • Ich fand gerade diese Anleitung, die den Umgang mit netcup erklärt https://github.com/contao/contao-manager/wiki/netcup - das Paket Webhosting 2000 ist als funktionierend aufgeführt.


    Im Browser schlägt die Installation fehl; zuvor sieht man für einen kurzen Moment was von peak value 2347M Speicherbedarf.


    Auf der Konsole gehts: php -d memory_limit=2048M '-q' '/httpdocs/contao-manager.phar.php' 'composer' 'update' 'contao/conflicts' 'contao/manager-bundle' '--with-dependencies' '--prefer-dist' '--no-dev' '--no-progress' '--no-suggest' '--no-ansi' '--no-interaction' '--optimize-autoloader' 2>&1


    Ich stecke jetzt fest. Ich habe eine Domain, und sehe den Contao Manager, alle System Check-Flächen "sind grün". Irgendwas verhindert dass ich hinter dem Menüpunkt "Contao Backend" auch eine Webseite sehe - ich bekomme ein 404.

  • Die document root - oder wie es im WCP heißt das Dokumentenstammverzeichnis - hast du aber schon auf das Unterverzeichnis "web" gesetzt? Datenbank-Update durchgeführt? Ansonsten ist der 404er die typische Konsequenz bei falscher document root. Ich habe mir übrigens ein Webhosting 1000 zugelegt, weil ich es einfach mal sehen wollte ob es auch damit noch geht. Und ja, es geht. Mit Contao-Manager und aktiviertem Cloud-Resolver. Peak-value bei der Installation > 2.5 GB =O. Zum Glück ist das dann das Problem des Cloudservers und nicht das meines Hostings. Ich komme auch ins Backend ;). Allerdings stelle ich eben PHP 7.2 Apache FPM ein, nginx nur als Proxy. Wenn ich FPM mit nginx wähle, finde ich keine Möglichkeit eine nginx-Konfiguration zu setzen. Und das kann dann vermutlich nicht klappen.


    Mit welcher Fehlermeldung schlägt die Installation per Contao-Manager bei dir fehl? Sollte man eigentlich sehen können, wenn man die Konsolenanzeige im Manager aufklappt.

  • Geschafft. Problem war, dass ich ganz aus altem Instinkt wie sonst auch allein mit nginx arbeiten wollte - unter Umgehung des Apachen. Damit kommen aber die unflexiblen Rewrite-Regeln con Contao nicht klar. In der .htaccess wird strikt nur der Apache mit Rewrite-Regeln gefüttert.


    Lange Rede, kurzer Sinn:

    * CCP -> Websites & Domains -> Einstellungen für Apache & nginx -> nginx-Einstellungen -> Proxymodus Häkchen setzen

    * CCP -> Websites & Domains -> Webskripte und Statistiken -> PHP-Unterstützung (PHP-Version 7.2.6), PHP ausführen als XXX "von Apache bedient" einstellen


    Nur dann wird Frontend und Backend überhaupt ausgeliefert.

  • Nginx kann vieles besser, und htaccess kann er auch; ich hab Projekte da beansprucht der auch nur eine handvoll MB. Meine default choice.

    Für mich war die Überraschung, dass Contao in den htaccess streng auf apache-only getrimmt ist. Muss man ja nur wissen.

    Einmal verstanden, übers WCP umkonfiguriert, fertig. :) :)


    DIe Performance des 2000er-Pakets scheint bisher vollkommen ausreichend zu sein.