컴포저(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