/
컴포저(PHP Composer) 속도 향상 시키기

컴포저(PHP Composer) 속도 향상 시키기


composer install 이나 composer update 명령어는 느리기로 유명합니다.


다음 방법을 통해 컴포저의 동작을 빠르게 할 수 있습니다.

parallel install plugin 설치

컴포저 install 이나 update 시 SSL 세션을 공유하고 병렬로 라이브러리를 다운로드 받아서 속도를 향상 시키는 컴포저 플러그인 https://github.com/hirak/prestissimo 를 설치하면 속도 향상을 볼 수 있습니다.


다음 명령어를 사용하여 글로벌 플러그인으로 설치하면 됩니다.

$ composer global require hirak/prestissimo


제거는 다음 명령어로 가능합니다.

$ composer global remove hirak/prestissimo


환경 설정은 ~/.composer/config.json 을 수정하면 되며 다음과 같은 항목을 설정할 수 있습니다.

{
  "config": {
    "prestissimo": {
      "maxConnections": 6,
      "minConnections": 3,
      "pipeline": false,
      "verbose": false,
      "insecure": false,
      "capath": "",
      "userAgent": "Your Awesome User Agent",
      "privatePackages": [
        "myorg/private1", "myorg/private2", ...
      ]
    }
  } 
}
  • maxConnections : 동시 다운로드할 최대 갯수로 기본 설정은 6입니다.
  • pipeline: HTTP 1.1 의 pipelining 을 지원하며 기본 설정은 false 이며 true 로 설정할 경우 PHP 5.5 이상이 필요합니다. (true 권장)
  • insecure: 기본은 false 이며 true 로 설정할 경우 SSL/TLS 연결시 서버의 인증서를 검증하지 않습니다.
  • capath: 신뢰할 인증기관(ca) 인증서의 묶음 파일의 위치이며 기본 설정은 "" 입니다.


packagist 미러 사용

중앙 저장소인 https://packagist.org 는 유럽에 있으므로 국내에서 연결하면 속도가 느립니다.

병렬 다운로드 플러그인인 prestissimo의 저자가 http://packagist.jp/ 라는 미러 사이트를 운영하고 있으며 컴포저의 저장소를 이 곳으로 바꾸면 속도가 빨라집니다.


packagist.jp 는 더 이상 업데이트 되지 않으므로 자체 서버를 구성하거나 다음 명령어로 국내 미러(https://packagist.kr/)로 저장소를 변경하세요.

$ composer config -g repos.packagist composer https://packagist.kr

국내 미러는 개인이 운영하시므로 회사에서 사용할 것이라면 자체 서버 구성을 권장합니다.


기본 설정으로 복구하려면 config --unset 옵션을 사용하면 됩니다.

 composer config -g --unset repositories.packagist




Related content

컴포저 오토로더 최적화(composer auto loader optimization)
컴포저 오토로더 최적화(composer auto loader optimization)
More like this
Ubuntu Mirror(우분투 미러)를 카카오등 국내 사이트로 설정해서 다운로드 속도 빠르게 하기
Ubuntu Mirror(우분투 미러)를 카카오등 국내 사이트로 설정해서 다운로드 속도 빠르게 하기
More like this
PHP Composer v1 설치/사용하기
PHP Composer v1 설치/사용하기
More like this
ack-grep 을 대체할 수 있는 빠른 코드 검색 도구 ag(silver searcher)
ack-grep 을 대체할 수 있는 빠른 코드 검색 도구 ag(silver searcher)
More like this
PHP igbinary library 설치
PHP igbinary library 설치
More like this
WSL(Windows Subsystem for Linux) 폴더를 Windows depender 예외 폴더 처리하기
WSL(Windows Subsystem for Linux) 폴더를 Windows depender 예외 폴더 처리하기
More like this