web-dev-qa-db-ja.com

MacOSへのComposerのインストールエラー(JITのコンパイルに失敗しました)

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
52
sheraz m

これは既知のPHP 7.3 bug です。

一時的な修正として、php.iniファイル(私の場合はvi /usr/local/etc/php/7.3/php.ini)を編集し、以下を変更してPHP PCRE JITのコンパイルを無効にします。

;pcre.jit=1

pcre.jit=0
117
Karl Hill

私はこれを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
29
fab120

他の回答では、設定ファイルでPCRE JITを無効にすることを提案しています。これはうまくいきますが、注意が必要です:これはそれらのINIファイルを使う all engineの呼び出しに対してPCRE JITを無効にします。したがって、あなたはJITが改善されることはないでしょう。

composerに対してのみJITを無効にすることができます。

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

PHP 7.1.24では、php.iniファイルに'pcre.jit'がありませんので、memory_limit:128Mを設定する必要があります(これを増やす場合)。

2
Ashish Sharma

答えてくれてありがとう..私はコマンドcomposer.pharそしてそれからexport pathでそれを解決しました。例:

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