MacOS端末でcomposer --version
を実行すると、以下のエラーが発生します。
PHP警告:preg_match():JITのコンパイルに失敗しました:phar:///usr/local/bin/composer.phar/vendor/symfony/console/Application.phpに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
これは既知のPHP 7.3 bug です。
一時的な修正として、php.iniファイル(私の場合はvi /usr/local/etc/php/7.3/php.ini
)を編集し、以下を変更してPHP PCRE JITのコンパイルを無効にします。
;pcre.jit=1
に
pcre.jit=0
私はこれをPCREのjitコンパイルを無効にすることで解決しました。
私はあなたが自作を通してPHP 7.3をインストールしたと思います。
もしそうなら、以下の内容でzzz-myphp.ini
に/usr/local/etc/php/7.3/conf.d
を作成してください:
; My php.ini settings
; Fix for PCRE "JIT compilation failed" error
[Pcre]
pcre.jit=0
他の回答では、設定ファイルでPCRE JITを無効にすることを提案しています。これはうまくいきますが、注意が必要です:これはそれらのINIファイルを使う all engineの呼び出しに対してPCRE JITを無効にします。したがって、あなたはJITが改善されることはないでしょう。
composer
に対してのみJITを無効にすることができます。
php -d pcre.jit=0 composer.phar ...
PHP 7.1.24では、php.iniファイルに'pcre.jit'
がありませんので、memory_limit:128M
を設定する必要があります(これを増やす場合)。
答えてくれてありがとう..私はコマンドcomposer.pharそしてそれからexport pathでそれを解決しました。例:
$composer.phar
$export PATH=/usr/local/php5/bin:$PATH
$composer.phar --version