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
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
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
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 ...
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).
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.
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