macOS에 Composer 설치 오류 (JIT 컴파일 실패)
composer --version
macOS 터미널에서 실행할 때 다음 오류가 발생합니다.
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.ini
in /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
이것이 왜 효과가 있었는지 설명 할 수있는 사람이 있다면 알고 있으면 감사하겠습니다. 건배.
다음 단계에 따라 작동합니다.
- 터미널을 열고 php --ini 실행
- 경로에서 파일 열기 php.ini의 "로드 구성 파일 : /usr/local/php5/lib/php.ini" https://prnt.sc/p9tspy
- pcre.jit를 찾아; pcre.jit = 1을 pcre.jit = 0으로 변경합니다.
'developer tip' 카테고리의 다른 글
Google Places Autocomplete API에서 드롭 다운 스타일을 어떻게 지정합니까? (0) | 2020.11.29 |
---|---|
권한 거부 됨-/Library/Caches/Homebrew/Formula/nmap.brewing (0) | 2020.11.29 |
자바 스크립트에서 배열을 배열로 스플 라이스하는 더 좋은 방법 (0) | 2020.11.29 |
형식 속성 값 'android : drawable'이 유효하지 않습니다. (0) | 2020.11.29 |
jQuery / CSS를 사용하여 모든 요소 중 가장 높은 요소 찾기 (0) | 2020.11.29 |