Unlogische Fehlermeldung

  • Hallo Zusammen,


    kann mir bitte jemand helfen, die folgende Fehlermeldung zu verstehen, die ich momentan ständig per Mail bekomme, danke:

    Betreff:

    Code
    Cron <hostingxxxxxx@aexxe> (/usr/local/php81/bin/php -f '/var/www/vhosts/hostingxxxxxx.aexxe.netcup.net/xxxx.xxxx.de/httpdocs/cron.php' -- 'php' '-d' 'memory_limit=512M') > /dev/null

    Mailtext:

    Code
    PHP Fatal error:  Allowed memory size of 134217728 bytes exhausted (tried to allocate 2621440 bytes) in /var/www/vhosts/hostingxxxxxx.aexxe.netcup.net/xxxx.xxxx.de/httpdocs/apps/photos/lib/Service/ReverseGeoCoderService.php on line 80

    Ich verstehe die Meldung im Mailtext so:

    Ein Skript hat versucht, ~2,6MB zu reservieren (diese Zahl variiert), was nicht möglich ist, da der maximal reservierbare Speicher ~134MB beträgt.


    Aber mein Produkt erlaubt doch 512MB?


    Danke für jede Hilfe :)


    Edit: Der Fehler wird von Nextcloud erzeugt.

  • Du hast bei den Argumenten auch nochmal 'php' stehen, das ist ja kein Argument. Der Rest sind Argumente für PHP, aber gemeint sind hier Argumente für das ausgeführte Skript.


    Ich bin mir jetzt nicht 100% sicher, aber möglicherweise musst du das mit Aufgabentyp "Befehl ausführen" machen, um hier das memory_limit setzen zu können.

    Also etwa (ungetestet) das nachfolgende als auszuführenden Befehl

    Code
    /usr/local/php81/bin/php -d memory_limit=512M -f /var/www/vhosts/hostingxxxxxx.aexxe.netcup.net/xxxx.xxxx.de/httpdocs/cron.php > /dev/null
  • Danke! Dann hatte ich das falsch verstanden.


    Mit deinem Vorschlag kommt "Could not open input file: /var/www/vhosts/hosting...." - wie ist denn jetzt der richtige Pfad im Script?


    Edit: Der richtige Pfad ist xxxx.xxxx.de/httpdocs/cron.php - Allerdings scheint netcup den cronjob mit einem falschen benutzer auszuführen...


    pasted-from-clipboard.png

  • Moment, wenn das nicht klappt dann ist es vermutlich ein Pfad der chroot-Umgebung. Aber Moment, ich schau mal nach, ich hatte eine Zeit lang ein Skript per Cron laufen. Nextclouds habe ich keine mehr, aber vielleicht gibt es auch da noch irgendwelche Relikte.


    Befehl ausführen habe ich schon eins gefunden, da steht mittlerweile der Befehl, also der komplette String in runden Klammern. Hatte ich damals sicher nicht so eingegeben, geht also entweder automatisch oder es hat sich seit damals geändert. Da wurde noch PHP 7.4 verwendet. Der Pfad zum Skript ist wie in der SSH-Konsole angegeben. Also in etwa


    Code
    /usr/local/php81/bin/php -d memory_limit=512M -f /xxxx.xxxx.de/httpdocs/cron.php > /dev/null
  • Genau, mit der Syntax kommt die Fehlermeldung aus meinem letzten Post. Runde Klammern machen da keinen Unterschied.

    Wo du SSH erwähnst fällt mir ein: ich kann auch über SSH keine Befehle absetzen, hier kommen auch ständig Fehlermeldungen wegen fehlenden Rechten. Ich meine mich zu erinnern, dass es dort daran liegt, dass der SSH-Benutzer der hostxxx ist, der dann natürlich keine Rechte auf vom Webserver angelegte Dateien hat.

    Wäre interessant, unter welchem Benutzer die cron-Befehle ausgeführt werden.


    Edit:

    Es hat nichts mit den Rechten, sondern mit dem Pfad in der config zu tun, siehe https://forum.netcup.de/webhos…t-data-verzeichnis-nicht/


    Das muss ich aber morgen testen.

  • Zum Pfad zum data-Vezeichnis, der in der Konsole wegen chroot anders sein muss als beim Webprozess, gibt es relativ viele Threads. Die eleganteste Lösung ist meiner Meinung nach die von KB19, die habe ich bei meinen Nextclouds früher im netcup Webhosting immer benutzt. Mittlerweile ist meine letzte selbst gehostete auf einem vServer, wo es dieses Problem und viele andere halt nicht gibt. Dafür natürlich genügend andere. ;)

  • Jetzt läuft der Cron-Job zumindest ohne Fehler durch. Hoffentlich klappt das mit dem höheren Speicher jetzt :)


    Danke für deine Hilfe!