관리 메뉴

웹개발자의 기지개

[PHP] Ubuntu, Composer 설치하기 본문

PHP

[PHP] Ubuntu, Composer 설치하기

http://portfolio.wonpaper.net 2025. 1. 7. 01:02

 

[필자의 서버 환경]

Ubuntu 20.4.6

nginx 1.18

PHP 7.4

MaridDB

 

PHP 관련 라이브러리를 호환성 충돌없이 원활하게 잘 설치하게 도와주는 Composer 을 설치해보았다.

궁극적인 목적은 Stripte  를 이용하기 위함이었는데, 이를 안정적으로 서버 상에 설치하기 위해 composer 가 필요하였다.

 

https://dashboard.stripe.com/test/dashboard

 

Stripe Login | Sign in to the Stripe Dashboard

Incompatible browser You need a modern browser to use the Stripe Dashboard. Please switch to a compatible browser to continue.

dashboard.stripe.com

 

 

1. ubuntu 시스템 업데이트

sudo apt update

 

2. 필수 패키지 설치

sudo apt install php-cli unzip php-curl php-mbstring

 

꼭 php-curl php-mbstring 도 설치하도록 하자.

그렇지 않으면 다음과 같이 composer init 할때 정상적으로 셋팅이 되지 않는다.

----------------------------------------------------------------------------------------------------------------

  Package stripe/stripe-php has requirements incompatible with your PHP version, PHP extensions and Composer version:
    - stripe/stripe-php v16.4.0 requires ext-curl * but it is not present.
    - stripe/stripe-php v16.4.0 requires ext-mbstring * but it is not present.

----------------------------------------------------------------------------------------------------------------

 

 

3. 설치 파일 다운로드 

curl -sS https://getcomposer.org/installer -o /tmp/composer-setup.php

 

해시 확인

HASH=`curl -sS https://composer.github.io/installer.sig`

 

안전하게 설치할 수 있는지 확인한다.

php -r "if (hash_file('SHA384', '/tmp/composer-setup.php') === '$HASH') { echo 'Installer verified'; } else { echo 'Installer corrupt'; unlink('composer-setup.php'); } echo PHP_EOL;"

 

 

4. Composer 설치한다.

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

# 파일 복사
cp /usr/local/bin/composer /usr/bin/composer

 

 

5. Composer 실행 확인

그런데, Composer 정상설치를 하고 난뒤 실행할때는 root 가 아닌 일반 유저로 실행하도록 한다.

--------------------------------------------------------------------------------------------

composer
Do not run Composer as root/super user! See https://getcomposer.org/root for details

--------------------------------------------------------------------------------------------

 

6. Composer init (초기화)

그런데, 반드시 설치 경로를 프로젝트의 Root 에서 composer 하여 설치하도록 한다.

그래야 해당 composer.json 과 /vendor 등의 폴더가 그 프로젝트에 맞게 생성된다.

 

필자는 /home/lee_ubuntu2/www 프로젝트 루트경로로 이동하였다.

엔터키를 이용하여 쭉쭉 나아가자.

 

lee_ubuntu2@lee-ubuntu:~/www$ composer init

  Welcome to the Composer config generator

This command will guide you through creating your composer.json config.
Package name (<vendor>/<name>) [lee_ubuntu2/www]:
Description []:
Author [n to skip]: n
Minimum Stability []:
Package Type (e.g. library, project, metapackage, composer-plugin) []: library
License []:

Define your dependencies.

Would you like to define your dependencies (require) interactively [yes]? n
Would you like to define your dev dependencies (require-dev) interactively [yes]? n
Add PSR-4 autoload mapping? Maps namespace "LeeUbuntu2\Www" to the entered relative path. [src/, n to skip]: n

{
    "name": "lee_ubuntu2/www",
    "type": "library",
    "require": {}
}

Do you confirm generation [yes]? y

-------------------------------------

이렇게 끝나면 프로젝트 root 에 composer.json 파일이 생성된다. 

 

 

7. Stripe 라이브러리 설치하기

 

 

lee_ubuntu2@lee-ubuntu:~/www$ composer require stripe/stripe-php
Composer could not detect the root package (lee_ubuntu2/www) version, defaulting to '1.0.0'. See https://getcomposer.org/root-version
./composer.json has been updated
Composer could not detect the root package (lee_ubuntu2/www) version, defaulting to '1.0.0'. See https://getcomposer.org/root-version
Running composer update stripe/stripe-php
Loading composer repositories with package information
Updating dependencies
Lock file operations: 1 install, 0 updates, 0 removals
  - Locking stripe/stripe-php (v16.4.0)
Writing lock file
Installing dependencies from lock file (including require-dev)
Package operations: 1 install, 0 updates, 0 removals
  - Downloading stripe/stripe-php (v16.4.0)
  - Installing stripe/stripe-php (v16.4.0): Extracting archive
Generating autoload files
No security vulnerability advisories found.
Using version ^16.4 for stripe/stripe-php

 

Stripe 가 모두 설치되었다.

 

 

 

 

 

참고 : https://yoshikixdrum.tistory.com/342

참고 : https://devstuffs.tistory.com/entry/composer-3-%EC%B2%AB-%EC%82%AC%EC%9A%A9

참고 : https://preciousstory.tistory.com/23

참고 : https://acaroom.net/ko/blog/sean/php-%EA%B0%9C%EB%B0%9C%EC%9D%84-%EC%9C%84%ED%95%9C-composer-%EC%84%A4%EC%B9%98-%EB%B0%8F-%EC%84%A4%EC%A0%95

참고 : https://www.jaenung.net/tree/7774?srsltid=AfmBOoqnBe30iRDtpZQ2UyLG-edZavLF52OzEZTu_EVCSxHcL74IZs7G

 

 

Comments