CentOS 8 기준으로 Composer를 설치하는 절차를 정리한 내용이다. 공식 설치 스크립트 다운로드, 해시 검증, 전역 경로 설치 방법과 "composer: command not found" 발생 시 대처 방법을 포함한다. 참고 출처는 공식 문서 및 linuxpip 등이다.
1. 전제 — PHP CLI 및 필요 확장
Composer는 PHP로 동작하므로, 먼저 PHP CLI와 zip·json 등 필요한 확장이 설치되어 있어야 한다. CentOS 8에서는 dnf로 한 번에 설치할 수 있다.
sudo dnf install php-cli php-json php-zip wget unzip
위 패키지 설치 후 아래 단계를 진행한다.
2. 설치 스크립트 다운로드
getcomposer.org에서 설치 스크립트를 다운로드한다. 현재 디렉터리에 composer-setup.php가 생성된다.
php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"
3. 해시로 스크립트 검증
다운로드한 스크립트가 손상되지 않았는지 확인하려면 공식에서 제공하는 해시와 비교한다. 먼저 해시를 받아 변수에 저장한다.
HASH="$(wget -q -O - https://composer.github.io/installer.sig)"
이어서 로컬 composer-setup.php의 SHA384 해시가 해당 값과 일치하는지 PHP로 확인한다.
php -r "if (hash_file('SHA384', 'composer-setup.php') === '$HASH') { echo 'Installer verified'; } else { echo 'Installer corrupt'; unlink('composer-setup.php'); } echo PHP_EOL;"
"Installer verified"가 출력되면 다음 단계로 진행하고, "Installer corrupt"가 나오면 스크립트를 다시 받거나 네트워크·캐시를 확인한다.
4. 전역 경로에 설치
검증이 끝나면 /usr/local/bin에 composer라는 이름으로 설치하여 어디서든 composer 명령을 사용할 수 있게 한다.
sudo php composer-setup.php --install-dir=/usr/local/bin --filename=composer
설치가 끝나면 로컬의 composer-setup.php는 삭제해도 된다.
composer -V
버전이 출력되면 설치가 완료된 것이다.
5. composer 명령이 동작하지 않을 때 (command not found)
위와 같이 설치했는데 터미널에서 composer 실행 시 "composer: command not found"가 나오는 경우가 있다. PATH에 포함되지 않았거나, 별도로 받은 composer.phar만 있는 환경에서 발생할 수 있다.
이때는 composer.phar를 직접 다운로드하여 실행 경로에 두고, 실행 권한을 부여하여 사용한다.
# 1. composer.phar 다운로드
curl -sS https://getcomposer.org/installer | php
# 2. 전역 경로로 이동
mv composer.phar /usr/local/bin/composer.phar
# 3. 실행 권한 부여
sudo chmod +x /usr/local/bin/composer.phar
이 상태에서는 composer가 아니라 composer.phar만 사용 가능하므로, 매번 php /usr/local/bin/composer.phar를 입력하기 번거우면 alias를 설정한다.
alias composer="php /usr/local/bin/composer.phar"
현재 셸에서만 사용할 경우 위 한 줄이면 되고, 영구적으로 사용하려면 ~/.bashrc 또는 ~/.bash_profile에 동일한 줄을 추가한다. command not found 발생 시 composer.phar를 경로에 두고 chmod +x 및 alias를 설정하면 해결할 수 있다.
6. Composer 패키지 갱신
프로젝트 디렉터리에서 의존성을 업데이트할 때 사용한다.
composer update
composer install은 composer.lock을 기준으로 의존성을 맞추고, composer update는 의존성 버전을 올려 lock 파일을 갱신할 때 사용한다.
7. 자주 발생하는 문제와 대처
해시 검증 시 변수 HASH가 비어 있는 경우
wget으로 installer.sig를 받을 때 네트워크 또는 방화벽으로 실패하면 $HASH가 비어 있어 검증 명령이 "Installer corrupt"로 나올 수 있다. echo $HASH로 값이 들어왔는지 먼저 확인하고, 들어오지 않았으면 wget 동작을 수동으로 확인한다. 프록시 등으로 wget이 막혀 있는 경우 해당 설정을 조정한 뒤 다시 받으면 해결할 수 있다.
PHP 버전이 너무 낮은 경우
Composer 최신 버전은 PHP 7.2.5 이상을 요구한다. 구버전 PHP를 사용하는 서버에서는 "Your requirements could not be resolved" 등의 메시지나 실행 오류가 날 수 있다. php -v로 버전을 확인하고, 필요 시 PHP를 업그레이드하거나 Remi 저장소 등을 사용하여 맞춘다.
전역 설치 후에도 command not found인 경우
/usr/local/bin이 PATH에 포함되어 있지 않을 수 있다. echo $PATH에 /usr/local/bin이 있는지 확인하고, 없으면 export PATH="/usr/local/bin:$PATH"로 테스트하거나 ~/.bashrc에 추가한다. PATH에 /usr/local/bin을 추가하면 해결할 수 있다.
한 줄 요약
PHP CLI·php-json·php-zip·wget·unzip 설치 → getcomposer.org 설치 스크립트 다운로드 → installer.sig로 해시 검증 → php composer-setup.php --install-dir=/usr/local/bin --filename=composer → composer -V 확인. command not found 시 composer.phar를 /usr/local/bin에 두고 chmod +x, alias 설정 또는 PATH에 /usr/local/bin 추가.
댓글 0