본문 바로가기
테크노트/PHP

ubuntu와 windows10 에서 PHP Composer 설치 하기

by 테크한스 2021. 12. 11.

composer는 php의 종속성 관리자입니다. 

예를 들자면 node.js의 npm 이나 python의 pip를 생각하면 될거 같습니다.

 

즉, composer는 프로젝트에 종속된 모든 필수 php 패키지를 가져와서 관리합니다.

여기서는 ubuntu와 windows10 에서 composer를 설치하고 사용하는 방법에 대해서 기술합니다.

 

(사전 설치 사항 : APM 이나 NEMP 설치 필수)

 

[windows10 환경]

 

컴포져의 공식 웹사이트에서 다운로드 파일을 다운받습니다.

https://getcomposer.org/

 

Composer

A Dependency Manager for PHP Latest: 2.1.14 (changelog) A preview release for our next minor version is available!Try out 2.2.0-RC1 (changelog) now using composer self-update --preview Getting Started Download Documentation Browse Packages Issues GitHub

getcomposer.org

https://getcomposer.org/download/

 

Composer

Download Composer Latest: v2.1.14 To quickly install Composer in the current directory, run the following script in your terminal. To automate the installation, use the guide on installing Composer programmatically. php -r "copy('https://getcomposer.org/in

getcomposer.org

windows용 install 파일 exe를 다운받아서 실행시킵니다.

 

인스톨 파일을 실행합니다.

그냥 확인하고 Next 넘어갑니다.

아래에서는 자신의 PC에 설치되어 있는 PHP를 지정하고 하기 path에 넣을 add 체크박스도 체크합니다.

계속 Next 갑니다.

설치가 완료되었습니다.

도스 프롬프트창에서 composer 입력해 보겠습니다.


[ubuntu 리눅스 환경]

 

composer를 설치하기 전에 먼저 패키지 인덱스를 업데이트 하고 설치합니다.

sudo apt update
sudo apt install wget php-cli php-zip unzip

 

php-cli 가 설치되었으므로 composer를 설치해 보겠습니다.

 

php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"

 

작업 디렉토리에 있는 composer-setup.php 파일을 다운받습니다. 내용을 cat으로 잠시보면 상당히 깁니다.

 

다음으로 스크립트 SHA-384 해시와 composer public keys / signature 에 있는 최신 설치 프로그램 해시를 비교하여 스크립트의 데이터 무결성을 확인해야 합니다.

wget 명령얼르 이용하여 composer의 github페이지에서 최신 composer설치 프로그램의 서명을 다운로드하고 HASH라는 변수에 저장합니다.

 

HASH="$(wget -q -O - https://composer.github.io/installer.sig)"

실행 후 결과 내용은 없습니다.

 

다음은 검증 명령을 실행하여 설치 스크립트가 손상되자 않았는지 확인합니다.

 

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)

해시가 일치하지 않으면 설치 프로그램이 손상된 것이라 composer 설치 스크립트를 다시 다운로드하고 HASH 변수를 다시 확인해야 합니다.

 

sudo php composer-setup.php --install-dir=/usr/local/bin --filename=composer

composer는 설치 후에 모든 사용자가 사용할 수 있습니다.

설치후 composer를 실행하면 윈도우환경처럼 아래 화면이 보입니다.


[Quick 설치 환경]

composer를 Quick하게 빠르게 설치하는 방법도 있다고 합니다.

 

sudo apt update && sudo apt install wget php-cli php-zip unzip curl
curl -sS https://getcomposer.org/installer |php
sudo mv composer.phar /usr/local/bin/composer

 


[테스트 PHP 실행]

 

이렇게 composer가 설치되면 다음의 단계로 테스트를 진행합니다.

 

mkdir ~/my-first-composer-project
cd ~/my-first-composer-project

여기서는 탄소라는 패키지를 이용하여 현재 시간을 인쇄할 샘플프로그램을 작성할 것입니다.

composer require nesbot/carbon

설치하면 아래 화면으로 진행됩니다.

 

위와 같이 composer.json 파일은 composer.json 파일뿐 아니라 탄소 및 모든 종속성 파일들을 다운로드하여 설치하게 됩니다.   해당 프로젝트 디렉토리를 보면 다음과 같습니다.

 

위의 vendor 디렉토리는 프로젝트 종속성이 저장되는 프로젝트이며

composer.lock 파일에는 패키지 버전을 포함한 모든 패키지 목록이 포함되어 있습니다.

composer.json은 PHP 프로젝트와 모든 PHP 종속성에 대해 설명합니다.

 

(참고로 composer 패키지에서 PHP 패키지를 검색할 수 있고, composer는 요구하지 않고도 php클래스를 사용할 수 있는 자동 로드 기능을 제공합니다.)

 

다음의 테스트 페이지를 확인해 보겠습니다.

<?php

require __DIR__ . '/vendor/autoload.php';

use Carbon\Carbon;

printf("Now: %s", Carbon::now());

?>

첫번째 줄의
require __DIR__ . '/vendor/autoload.php'; 

의미는 모든 라이브러리를 자동으로 로드하는 composer에서 자동으로 생성된 파일이며

다음은 Carbon 이라는 이름으로 alias하며 Carbon now 메소드를 이용해서 현재 시간을 출력합니다.

php 해당파일이름.php

해당 실행 결과는 다음과 같습니다.

 

추후에 컴포져로 PHP를 업데이트하려면 다음을 명령어로 실행합니다.

composer update

 

 

댓글