SW/리눅스

Linux : Ubuntu 20.04 : PHP Composer 설치, 사용 방법, 예제, 명령어

얇은생각 2022. 10. 16. 07:30
반응형

Composer는 PHP의 종속성 관리자입니다(Node.js의 경우 npm 또는 Python의 경우 pip와 유사).

Composer를 사용하면 프로젝트가 종속되는 PHP 라이브러리를 지정할 수 있으며 모든 라이브러리와 종속성을 가져오고 관리할 수 있습니다. Composer는 Laravel, Symfony, Drupal 및 Magento와 같은 모든 현대 PHP 프레임워크와 플랫폼에 사용됩니다.

이 튜토리얼에서는 Ubuntu 20.04에 Composer를 설치하고 사용하는 방법을 설명합니다.

 

 

Linux : Ubuntu 20.04 : PHP Composer 설치, 사용 방법, 예제, 명령어

 

 

Ubuntu에 PHP Composer를 설치

Composer를 설치하기 전에 필요한 모든 요구 사항이 시스템에 설치되어 있는지 확인합니다.

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

 

 

Composer는 Composer를 설치하는 데 사용할 PHP로 작성된 설치 프로그램을 제공합니다. wget를 사용하여 설치 프로그램을 다운로드합니다.

wget -O composer-setup.php https://getcomposer.org/installer

 

 

위의 명령은 파일을 Composer-setup으로 저장합니다.현재 작업 디렉터리에 php가 있습니다.

Composer는 단일 파일 CLI 응용 프로그램이며 전역 또는 프로젝트의 일부로 설치할 수 있습니다. 글로벌 설치에는 sudo 권한이 필요합니다.

Composer를 모든 사용자가 사용할 수 있는 시스템 전체 명령으로 전체적으로 설치하려면, 파일을 시스템 PATH에 있는 디렉토리에 배치하십시오. 다음 명령을 실행하여 /usr/local/bin 디렉토리에 Composer를 설치합니다.

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

# All settings correct for using Composer
# Downloading...
# 
# Composer (version 1.10.7) successfully installed to: /usr/local/bin/composer
# Use it: php /usr/local/bin/composer

 

 

이제 터미널에서 Composer를 실행하여 Composer를 사용할 수 있습니다.

로컬에 Composer를 설치하려면 다음을 입력합니다.

sudo php composer-setup.php --install-dir=/path/to/project

 

 

그러면 Composer라는 파일이 다운로드됩니다.프로젝트 루트 디렉터리에 par을(를) 입력합니다. Composer를 사용하려면 프로젝트 디렉터리로 이동하여 php Composer를 실행합니다.파마입니다

새 Composer 버전을 사용할 수 있을 때 다음 명령을 사용하여 설치를 업데이트할 수 있습니다.

sudo composer self-update

 

 

 

Composer를 시작

이제 Composer가 Ubuntu 시스템에 설치되었으므로 Composer를 사용하여 PHP 프로젝트를 만드는 방법을 살펴보겠습니다.

첫 번째 단계는 프로젝트 루트 디렉터리를 생성하고 해당 디렉터리로 이동하는 것입니다.

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

 

 

이 예에서는 카본이라는 PHP 패키지를 사용하여 현재 시간을 인쇄하는 샘플 애플리케이션을 만들 것입니다.

다음 명령을 실행하여 새 Composer 프로젝트를 초기화하고 Carbon 패키지를 설치합니다.

composer require nesbot/carbon

# Using version ^2.35 for nesbot/carbon
# ./composer.json has been created
# Loading composer repositories with package information
# Updating dependencies (including require-dev)
# Package operations: 5 installs, 0 updates, 0 removals
#   - Installing symfony/translation-contracts (v2.1.2): Downloading (100%)         
#   - Installing symfony/polyfill-php80 (v1.17.0): Downloading (100%)         
#   - Installing symfony/polyfill-mbstring (v1.17.0): Downloading (100%)         
#   - Installing symfony/translation (v5.1.2): Downloading (100%)         
#   - Installing nesbot/carbon (2.35.0): Downloading (100%)         
# Writing lock file
# Generating autoload files
# 5 packages you are using are looking for funding.
# Use the `composer fund` command to find out more!

 

 

출력에 표시된 것처럼 Composer.json 파일을 생성하고 카본 및 모든 종속성을 다운로드하여 설치합니다.

프로젝트의 디렉터리를 나열하면 composer.json 및 composer.lock 파일 두 개와 공급업체 디렉터리를 볼 수 있습니다.

ls -l

# -rw-rw-r--. 1 linuxize linuxize    60 Mar 27 18:05 composer.json
# -rw-rw-r--. 1 linuxize linuxize 11135 Mar 27 18:06 composer.lock
# drwxrwxr-x. 6 linuxize linuxize    82 Mar 27 18:06 vendor

 

 

벤더는 프로젝트 종속성이 저장되는 디렉터리입니다.

composer.lock은 설치된 모든 패키지 및 해당 버전에 대한 정보를 보관하는 파일로, 프로젝트를 특정 버전으로 잠급니다.

composer.json은 PHP 종속성 및 기타 메타데이터를 포함하여 PHP 프로젝트를 설명하는 파일입니다.

 

Composer와 함께 설치할 수 있는 모든 PHP 패키지는 Packagist 에 나열되어 있습니다.

Composer에는 파일을 요구하거나 포함할 필요 없이 PHP 클래스를 사용할 수 있는 자동 로드 기능이 있습니다.

testing.php라는 파일을 만들고 다음 코드를 추가합니다.

<?php

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

use Carbon\Carbon;

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

 

 

 

코드를 한 줄씩 분석해보겠습니다.

vendor/autoload.php 파일은 Composer에 의해 자동으로 생성되며 모든 라이브러리를 자동으로 로드합니다.

다음 줄은 카본이라는 별칭을 만들고 마지막 줄은 지금 카본 방법을 사용하여 현재 시간을 인쇄합니다.

 

다음을 입력하여 스크립트를 실행합니다.

php testing.php

# Now: 2020-06-17 20:41:04

 

 

나중에 프로젝트 패키지를 업데이트해야 하는 경우 다음을 입력하십시오.

composer update

 

 

위의 명령은 설치된 패키지의 최신 버전을 확인하고 최신 버전이 발견되고 버전 제약 조건이 Composer.json에 지정된 버전과 일치하면 Composer가 패키지를 업데이트합니다.

우분투 20.04에 Composer를 설치하는 방법과 기본 PHP 프로젝트를 만드는 방법을 보여드렸습니다.

 

 

 

참조

https://linuxize.com/post/how-to-install-and-use-composer-on-ubuntu-20-04/

반응형