PHP 7.4에서 Amazon Linux 2 스택으로 실행 중인 Elastic Beanstalk 환경에 PECL 7 모듈을 설치하려면 어떻게 해야 합니까?

최종 업데이트 날짜: 2021년 3월 22일

Amazon Linux 2 스택을 사용하여 PHP 7.4에서 실행되는 AWS Elastic Beanstalk 환경에 Redis, Memcached 또는 PECL 7용 기타 모듈을 설치하려고 합니다.

간략한 설명

PECL 7 모듈을 설치하려면 다음 명령을 포함하는 구성 파일(.ebextension)을 생성해야 합니다.

  • 종속성 설치
  • PECL 모듈 설치
  • 구성 파일 생성 또는 수정

참고: Amazon Linux 2 스택은 PHP에서 Amazon Linux 1 스택으로 실행 중인 Elastic Beanstalk 환경에 PECL 7 모듈을 설치하려면 어떻게 해야 합니까?를 참조하세요.

해결 방법

1.    애플리케이션의 소스 번들 루트에 .ebextensions 디렉터리를 설정합니다. 예를 들어 다음과 같습니다.

|-- .ebextensions
|        |-- redis/memcached.config
|        |-- other .config files
|-- other application files

자세한 내용은 구성 파일(.ebextensions)을 사용한 고급 환경 사용자 지정을 참조하세요.

참고: 모든 구성 파일은 .ebextensions 폴더에 저장됩니다. Elastic Beanstalk 환경에서는 .config 확장자로 끝나는 파일만 사용합니다.

2.    .ebextensions 디렉터리에서 모듈에 대한 다음 명령을 포함하는 구성 파일을 생성합니다.

Redis 모듈의 경우:

commands:
  01_install_redis:
    command: /usr/bin/yes 'no' | /usr/bin/pecl install redis
    test: '! /usr/bin/pecl info redis'
  02_remove_extension:
    command: /bin/sed -i -e '/extension="redis.so"/d' /etc/php.ini
  03_create_conf:
    command: /bin/echo 'extension="redis.so"' > /etc/php.d/41-redis.ini

Redis 구성 파일은 다음을 수행합니다.

  • Redis 모듈 설치 및 설치 성공 여부 테스트(01_install_redis)
  • /etc/php.ini 파일에서 Redis 확장자 제거(02_remove_extension)
  • /etc/php.d/41-redis.ini라는 구성 파일 생성(03_create_conf)

Memcached 모듈의 경우:

packages:
  yum:
    libmemcached-devel: []
commands:
  01_install_memcached:
    command: /usr/bin/yes 'no'| /usr/bin/pecl install memcached
    test: '! /usr/bin/pecl info memcached'
  02_remove_extension:
    command: /bin/sed -i -e '/extension="memcached.so"/d' /etc/php.ini
  03_create_conf:
    command: /bin/echo 'extension="memcached.so"' > /etc/php.d/41-memcached.ini

Memcached 구성 파일은 다음을 수행합니다.

  • Memcached 모듈을 설치하고 설치 성공 여부 테스트(01_install_memcached)
  • /etc/php.ini 파일에서 Redis 확장자 제거(02_remove_extension)
  • /etc/php.d/41-memcached.ini라는 구성 파일 생성(03_create_conf)

Note: 프로덕션 환경에 추가하기 전에 항상 새 .ebextension을 테스트하세요.


이 문서가 도움이 되었나요?


결제 또는 기술 지원이 필요하세요?