it-swarm.com.de

Fehler beim Installieren von Composer unter macOS (JIT-Kompilierung fehlgeschlagen)

Wenn ich composer --version im macOS-Terminal starte, erhalte ich die folgenden Fehler:

PHP Warnung: preg_match (): JIT-Kompilierung fehlgeschlagen: Kein Speicher mehr in phar: ///usr/local/bin/composer.phar/vendor/symfony/console/Application.php in Zeile 755

Warning: preg_match(): JIT compilation failed: no more memory in phar:///usr/local/bin/composer.phar/vendor/symfony/console/Application.php on line 755
PHP Warning:  preg_match(): JIT compilation failed: no more memory in phar:///usr/local/bin/composer.phar/vendor/symfony/console/Application.php on line 759

Warning: preg_match(): JIT compilation failed: no more memory in phar:///usr/local/bin/composer.phar/vendor/symfony/console/Application.php on line 759
PHP Warning:  preg_split(): JIT compilation failed: no more memory in phar:///usr/local/bin/composer.phar/vendor/symfony/console/Application.php on line 654

Warning: preg_split(): JIT compilation failed: no more memory in phar:///usr/local/bin/composer.phar/vendor/symfony/console/Application.php on line 654
PHP Warning:  preg_split(): JIT compilation failed: no more memory in phar:///usr/local/bin/composer.phar/vendor/symfony/console/Application.php on line 1091

Warning: preg_split(): JIT compilation failed: no more memory in phar:///usr/local/bin/composer.phar/vendor/symfony/console/Application.php on line 1091
PHP Warning:  preg_replace(): JIT compilation failed: no more memory in phar:///usr/local/bin/composer.phar/vendor/symfony/console/Formatter/OutputFormatter.php on line 36

Warning: preg_replace(): JIT compilation failed: no more memory in phar:///usr/local/bin/composer.phar/vendor/symfony/console/Formatter/OutputFormatter.php on line 36

  [ErrorException]                                          
  preg_match_all(): JIT compilation failed: no more memory
32
sheraz m

Dies ist ein bekannter PHP 7.3 Bug .

Bearbeiten Sie als temporäre Lösung Ihre php.ini-Datei (in meinem Fall: vi /usr/local/etc/php/7.3/php.ini). Deaktivieren Sie PHP PCRE JIT-Kompilierung, indem Sie Folgendes ändern:

;pcre.jit=1

zu

pcre.jit=0
79
Karl Hill

Ich habe das Problem gelöst, indem ich die PCRE-Jit-Compilation deaktiviert habe.

Ich nehme an, Sie haben php 7.3 über Homebrew installiert.

Wenn ja, erstellen Sie in zzz-myphp.ini einen /usr/local/etc/php/7.3/conf.d mit folgendem Inhalt:

; My php.ini settings
; Fix for PCRE "JIT compilation failed" error
[Pcre]
pcre.jit=0
23
fab120

Andere Antworten schlagen vor, PCRE JIT über eine Konfigurationsdatei zu deaktivieren. Das funktioniert, aber ein Nachteil: Dies deaktiviert PCRE JIT für Aufrufe von all engine, die diese INI -Dateien verwenden. Sie erhalten daher keine JIT-Verbesserung für einen möglicherweise umfassenderen Funktionsumfang, der möglicherweise nicht erwünscht ist.

Sie können JIT für composer nur deaktivieren, indem Sie

php -d pcre.jit=0 composer.phar ...
7
bishop

In PHP 7.1.24 befindet sich kein 'pcre.jit' in der Datei php.ini, daher müssen Sie memory_limit:128M einstellen (wenn Sie diesen erhöhen).

2
Ashish Sharma

Ich habe den gleichen Fehler bekommen. Ich habe MAMP 5.4 mit PHP 7.3.7 auf meinem Mac OS 10.11.6 installiert und Composer installiert. Es schien zu funktionieren, aber sobald ich versuchte, Yii2 zu installieren oder die Version zu überprüfen, gab es mir den Fehler ...

$composer.phar --version
Fatal error: Uncaught ErrorException: preg_match_all(): JIT compilation failed: no more memory in phar:///Users/kristin/Sites/htdocs/composer.phar/vendor/symfony/console/Formatter/OutputFormatter.php:137

Das Erhöhen des memory_limit in der php.ini von 128M auf irgendetwas hat das Problem NICHT gelöst und pcre.jit = 1 wurde auskommentiert, so dass das Ausschalten auch nichts brachte.

Folgendes hat funktioniert:

Ich habe einfach den Exportpfad in das Verzeichnis der Vorgängerversion geändert (ohne die Einstellungen von MAMP tatsächlich herunterzustufen) und es hat funktioniert!

$export PATH=/Applications/MAMP/bin/php/php7.2.20/bin:$PATH
$composer.phar --version
Composer version 1.9.0 2019-08-02 20:55:32

Wenn jemand erklären kann, warum dies funktioniert, würde ich es begrüßen zu wissen. Prost.

0
Kristin Green

Danke für die Antworten .. Ich habe es mit dem Befehl composer.phar gelöst und dann den Pfad exportiert. Beispiel:

$composer.phar
$export PATH=/usr/local/php5/bin:$PATH
$composer.phar --version
0
sheraz m