developer tip

macOS에 Composer 설치 오류 (JIT 컴파일 실패)

copycodes 2020. 11. 29. 11:52
반응형

macOS에 Composer 설치 오류 (JIT 컴파일 실패)


composer --versionmacOS 터미널에서 실행할 때 다음 오류가 발생합니다.

PHP 경고 : preg_match () : JIT 컴파일 실패 : phar : ///usr/local/bin/composer.phar/vendor/symfony/console/Application.php on line 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

PCRE jit 컴파일을 비활성화하여이 문제를 해결했습니다.

homebrew를 통해 PHP 7.3을 설치했다고 가정합니다.

그렇다면 다음 콘텐츠 zzz-myphp.iniin /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를 비활성화하는 것이 좋습니다. 작동하지만주의 할 사항 :이 INI 파일을 사용하는 모든 엔진 호출에 대해 PCRE JIT를 비활성화 합니다. 따라서 바람직하지 않을 수있는 잠재적으로 더 광범위한 기능에 대한 JIT 개선을 얻지 못할 것입니다.

다음을 composer통해서만 JIT를 비활성화 할 수 있습니다 .

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

PHP 7.1.24에서는 'pcre.jit'php.ini 파일이 없으므로 설정해야합니다 memory_limit:128M(이를 늘리면).


답변 주셔서 감사합니다 .. composer.phar 명령으로 해결 한 다음 경로를 내 보냅니다. 예:

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

같은 오류가 발생했습니다. PHP 7.3.7을 사용하여 Mac OS 10.11.6에 MAMP 5.4를 설치하고 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

php.ini의 memory_limit를 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

이것이 왜 효과가 있었는지 설명 할 수있는 사람이 있다면 알고 있으면 감사하겠습니다. 건배.


다음 단계에 따라 작동합니다.

  1. 터미널을 열고 php --ini 실행
  2. 경로에서 파일 열기 php.ini의 "로드 구성 파일 : /usr/local/php5/lib/php.ini" https://prnt.sc/p9tspy
  3. pcre.jit를 찾아; pcre.jit = 1을 pcre.jit = 0으로 변경합니다.

참고 URL : https://stackoverflow.com/questions/53690624/errors-installing-composer-on-macos-jit-compilation-failed

반응형