PHP Memory Limit bei Laravel Herd erhöhen

Seit dem Release bin ich Nutzer von Laravel Herd. Bisher war ich Nutzer von Laravel Valet, Herd (in Kombination mit dbngin) vereinfacht die Bereitstellung einer Laravel-Entwicklungsumgebung unter macOS aber nochmals enorm.

Beim ersten Ausführen von pestphp-Tests bin ich jedoch auf ein Problem gestoßen:

php artisan test -p

führte zu folgender Fehlermeldung:

  .....................................................
In WorkerCrashedException.php line 41:
                                                                                                                                                                         
  The test "PARATEST='1' TEST_TOKEN='10' UNIQUE_TEST_TOKEN='10_64c267b53c4d2' /Users/sebastian/dev/my_project/tests/Feature/ArchTest.php" failed.                              
                                                                                                                                                                         
  Exit Code: 255(Unknown error)                                                                                                                                          
                                                                                                                                                                         
  Working directory: /Users/sebastian/dev/my_project                                                                                                                           
                                                                                                                                                                         
  Output:                                                                                                                                                                
  ================                                                                                                                                                       
                                                                                                                                                                         
  Fatal error: Allowed memory size of 134217728 bytes exhausted (tried to allocate 20480 bytes) in /Users/sebastian/dev/my_project/vendor/nikic/php-parser/lib/PhpParser/Lexe  
  r.php on line 319                                                                                                                                                      
                                                                                                                                                                         
  Fatal error: Allowed memory size of 134217728 bytes exhausted (tried to allocate 32768 bytes) in /Users/sebastian/dev/my_project/vendor/pestphp/pest/src/Plugins/Actions/Ca  
  llsShutdown.php on line 1                                                                                                                                              
                                                                                                                                                                         
                                                                                                                                                                         
  Error Output:                                                                                                                                                          
  ================                                                                                                                                                       
                                                                                                                                                                         

paratest [--functional] [-m|--max-batch-size MAX-BATCH-SIZE] [--no-test-tokens] [--passthru-php PASSTHRU-PHP] [-p|--processes PROCESSES] [--runner RUNNER] [--tmp-dir TMP-DIR] [-v|--verbose] [--bootstrap BOOTSTRAP] [-c|--configuration CONFIGURATION] [--no-configuration] [--cache-directory CACHE-DIRECTORY] [--testsuite TESTSUITE] [--exclude-testsuite EXCLUDE-TESTSUITE] [--group GROUP] [--exclude-group EXCLUDE-GROUP] [--filter FILTER] [--process-isolation] [--strict-coverage] [--strict-global-state] [--disallow-test-output] [--dont-report-useless-tests] [--stop-on-defect] [--stop-on-error] [--stop-on-failure] [--stop-on-warning] [--stop-on-risky] [--stop-on-skipped] [--stop-on-incomplete] [--fail-on-incomplete] [--fail-on-risky] [--fail-on-skipped] [--fail-on-warning] [--order-by ORDER-BY] [--random-order-seed RANDOM-ORDER-SEED] [--colors [COLORS]] [--no-progress] [--display-incomplete] [--display-skipped] [--display-deprecations] [--display-errors] [--display-notices] [--display-warnings] [--teamcity] [--testdox] [--log-junit LOG-JUNIT] [--log-teamcity LOG-TEAMCITY] [--coverage-clover COVERAGE-CLOVER] [--coverage-cobertura COVERAGE-COBERTURA] [--coverage-crap4j COVERAGE-CRAP4J] [--coverage-html COVERAGE-HTML] [--coverage-php COVERAGE-PHP] [--coverage-text [COVERAGE-TEXT]] [--coverage-xml COVERAGE-XML] [--coverage-filter COVERAGE-FILTER] [--no-coverage] [--] [<path>]

Die Ursache des Problems deutet sich hier an: „Fatal error: Allowed memory size of 134217728 bytes exhausted“. Die Menge Arbeitsspeicher, die PHP nutzen darf, reicht nicht aus. Beheben lässt sich das Problem recht einfach.

  • Klick auf das Menü-Icon von Herd
  • Show php.ini anklicken
  • Die php.ini im erscheinenden Finder-Fenster öffnen
  • Folgenden Eintrag einfügen:
memory_limit = 256M

Dadurch wird das Speicher-Limit von den standardmäßig gesetzten 128MB auf 256MB erhöht. Beim nächsten Versuch, die Tests laufen zu lassen, klappte dann alles wie gewünscht.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert