it-swarm.com.ru

Ошибки при установке Composer в macOS (сбой JIT-компиляции)

Когда я запускаю composer --version в терминале macOS, я получаю следующие ошибки:

Предупреждение 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
54
sheraz m

Это известная PHP 7.3 ошибка .

В качестве временного исправления отредактируйте файл php.ini (в моем случае vi /usr/local/etc/php/7.3/php.ini), отключите компиляцию PHP PCRE JIT, изменив:

;pcre.jit=1

в

pcre.jit=0
79
Karl Hill

Я решил эту проблему, отключив JIT-компиляцию PCRE.

Я полагаю, вы установили php 7.3 через homebrew.

Если это так, создайте 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
23
fab120

Другие ответы предлагают отключить PCRE JIT через файл конфигурации. Это работает, но предостережение: это отключает PCRE JIT для все вызовов движка, которые используют эти INI файлы. Поэтому вы не получите улучшения JIT для потенциально более широкой функциональности, что может быть нежелательно.

Вы можете отключить JIT для composer только через:

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

В PHP 7.1.24 в файле php.ini нет 'pcre.jit', поэтому вы должны установить memory_limit:128M (если вы его увеличите).

2
Ashish Sharma

Спасибо за ответы .. Я решил это командой composer.phar и затем экспортировал путь. Пример:

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