Nextcloud PHAR Update: PHP Memory Limit bei CLI kleiner als bei FPM

  • Hallo liebe Community,


    ich wollte soeben meine Nextcloud Instanz auf die Version 20.x upgraden mit dem mitgelieferten updater.phar.
    Dieser läuft mir auf folgenden Fehler:

    Code
    PHP Fatal error:  Allowed memory size of 134217728 bytes exhausted (tried to allocate 141997160 bytes) in phar:///httpdocs/nextcloud/updater/updater.phar/lib/Updater.php on line 637

    Die Codestelle prüft die SHA512 Signatur der heruntergeladenen ZIP Datei, die das Update enthält:

    Code
    $validSignature = (bool)openssl_verify(
        file_get_contents($this->getDownloadedFilePath()),
        base64_decode($response['signature']),
        $certificate,
        OPENSSL_ALGO_SHA512
    );

    Die ca. 135 MB große ZIP Datei wird zum verifizieren in den Speicher geladen, der laut gebuchtem Tarif (Webhosting 4000 SE de a1) mit 512 MB ausreichend dimensioniert sein sollte.

    Ein Fatal error wäre hier eigentlich nicht zu erwarten gewesen.


    PHP FPM: phpinfo();

    Code
    memory_limit => 512M => 512M


    Über SSH sieht die Sache dann aber etwas anders aus.


    PHP CLI: php -i

    Code
    memory_limit => 128M => 128M


    Wie kann es sein, dass mit 512 MB beworbenem Speicher in der CLI nur 128 MB verfügbar sind?

  • Setz das memory_limit einfach in der Kommandozeile auf -1. So wirst du zwar nicht unbegrenzt RAM bekommen, aber jedenfalls wird dich nicht das memory_limit stoppen, sondern allenfalls der Prozessmanager. Ebenso mit der max_execution_time. Also in etwa so:

    Code
    php -dmax_execution_time=0 -dmemory_limit=-1 ...