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

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

Предупреждение PHP: preg_match (): сбой JIT-компиляции: в памяти больше нет
Фар: ///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

30

Решение

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

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

;pcre.jit=1

в

pcre.jit=0
67

Другие решения

Я решил эту проблему, отключив 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
22

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

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

php -d pcre.jit=0 composer.phar ...
4

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

$composer.phar
$export PATH=/usr/local/php5/bin:$PATH
$composer.phar --version
0
По вопросам рекламы [email protected]