memory_limit bei Cronjobs

  • Hallo zusammen,


    ich habe eine Frage zu dem memory_limit bei den Cronjobs.

    Wenn ich ein php Script ganz normal in das Webverzeichnis lege und über den Browser aufrufe, habe ich ein memory_limit von 1024mb.

    Wenn ich das gleiche Script über den Cronjob starte, habe ich ein memory_limit von 128mb.


    Die Aufgabe habe ich als Aufgabentyp "PHP-Script ausführen" erstellt.


    Gibt es eine Möglichkeit oder Einstellung, dass ich bei den Cronjobs das memory_limit erhöhen kann?


    Vielen lieben Dank und viele Grüße

    Stefan

  • Du könntest stattdessen einen "Befehl ausführen" und dort das PHP-Binary selbst aufrufen inkl. eigenen Argumenten. Zum Beispiel für eine eigene php.ini oder um den Wert des Memory-Limits zu überschreiben.


    Siehe -c bzw. -d Optionen: https://www.php.net/manual/de/…s.commandline.options.php


    Tipp: Den Befehl vorher über SSH testen, das spart Zeit.

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

  • Danke für den Tipp.


    Code
    php "/cron/daily.php" -d memory_limit=256M

    Scheint nicht zu funktionieren.


    Code
    echo ini_get('memory_limit');

    Gibt leider immer noch 128M aus.


    Muss ich noch etwas beachten, bzw. wo könnte der Fehler liegen?

  • Die Reihenfolge ist falsch, das -d ... gehört vor den Dateinamen der PHP-Datei! :)


    So würdest Du es als Argument an Dein PHP-Script übergeben und nicht an den PHP-Interpreter selbst. Entweder Du schreibst es direkt nach php am Anfang rein oder Du gibst die Datei mit -f ... an.


    Eventuell musst Du auch noch die gewünschte PHP-Version explizit angeben: https://www.netcup-wiki.de/wik…erschiedene_PHP-Versionen

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

    Thanks 1