Когда я бегу 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
Это известный PHP 7.3 ошибка.
В качестве временного исправления отредактируйте файл php.ini (в моем случае: vi /usr/local/etc/php/7.3/php.ini
), отключите компиляцию PHP PCRE JIT, изменив:
;pcre.jit=1
в
pcre.jit=0
Я решил эту проблему, отключив 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
Другие ответы предлагают отключить PCRE JIT через файл конфигурации. Это работает, но будьте осторожны: это отключает PCRE JIT для все вызовы движка, использующие эти файлы INI. Поэтому вы не получите улучшения JIT для потенциально более широкой функциональности, что может быть нежелательно.
Вы можете отключить JIT для composer
только через:
php -d pcre.jit=0 composer.phar ...
Спасибо за ответы .. Я решил это командой composer.phar и затем экспортировал путь. Пример:
$composer.phar
$export PATH=/usr/local/php5/bin:$PATH
$composer.phar --version