Ответ 1
Это известная ошибка PHP 7.3.
В качестве временного исправления отредактируйте файл php.ini (в моем случае: vi/usr/local/etc/php/7.3/php.ini
), отключите компиляцию PHP PCRE JIT, изменив:
;pcre.jit=1
в
pcre.jit=0
Когда я запускаю 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
Это известная ошибка 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 ...
В PHP 7.1.24 в файле php.ini нет 'pcre.jit'
поэтому вы должны установить memory_limit:128M
(если вы увеличите это значение).
Спасибо за ответы.. Я решил это командой composer.phar и затем экспортировал путь. Пример:
$composer.phar
$export PATH=/usr/local/php5/bin:$PATH
$composer.phar --version
Для меня работало обновление до macOS moajave 10.14. Не знаю, что послужило причиной этого.
Если pcre.jit = 0 pcre.jit = 0 pcre.jit = Off в php.ini, не работает, попробуйте это:
Я полагаю, вы установили 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
Если это также не работает, удалите php7.3 и установите 7.2 или 7.1
brew uninstall [email protected]
Я получил ту же ошибку. Я установил MAMP 5.4 на мою Mac OS 10.11.6 с помощью PHP 7.3.7 и установил Composer. Казалось, что это работает, но как только я попытался установить Yii2 или даже проверить версию, это дало мне ошибку...
$composer.phar --version
Fatal error: Uncaught ErrorException: preg_match_all(): JIT compilation failed: no more memory in phar:///Users/kristin/Sites/htdocs/composer.phar/vendor/symfony/console/Formatter/OutputFormatter.php:137
Увеличение значения memory_limit в php.ini со 128M до чего-либо НЕ решило проблему, а pcre.jit = 1 было закомментировано, поэтому его отключение тоже ничего не делало.
Вот что сработало:
Я просто изменил путь экспорта в каталог предыдущей версии (без фактического понижения в настройках MAMP), и это сработало!
$export PATH=/Applications/MAMP/bin/php/php7.2.20/bin:$PATH
$composer.phar --version
Composer version 1.9.0 2019-08-02 20:55:32
Если кто-нибудь может объяснить, почему это сработало, я бы хотел знать. Приветствия.
Это работает для меня, следуя шагам: