Amazon Linux 1 스택을 사용하여 PHP에서 실행되는 Elastic Beanstalk 환경에 PECL 7 모듈을 설치하려면 어떻게 해야 합니까?

2분 분량
0

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

간략한 설명

PECL 7 모듈을 설치하려면 다음을 수행해야 합니다.

  1. 종속 항목을 설치합니다.
  2. Linux 구성 파일(.ebextensions)을 생성하여 PECL 7 모듈을 설치하고 실행합니다.

중요: 다음 PHP 확장은 Amazon Linux 2의 PHP 플랫폼 릴리스에 이미 포함되어 있습니다.

  • php-pecl-redis(Redis 키-값 스토어 통신용)
  • php-pecl-memcached(Memcached 캐싱 데몬용)

참고: PEAR를 지원하는 모든 PHP 환경에 PECL PHP 확장을 설치할 수 있습니다. PECL은 기본적으로 Elastic Beanstalk PHP 스택에 설치되며 php-pear RPM에서 제공합니다. 자세한 내용은 PECL 웹 사이트의 redis를 참조하십시오.

해결 방법

Redis 확장 설치

1.    애플리케이션 소스 번들의 루트에 있는 .ebextensions 디렉터리에서 다음 예제를 기반으로 .ebextension 파일을 생성하십시오.

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

.ebextension은 다음을 수행합니다.

Redis 확장(01_install_redis)을 설치합니다.
pecl7 명령이 /etc/php.ini 파일에 생성한 항목을 제거하여 확장(02_rmfromphpini)을 로드합니다.
Redis 모듈(03_createconf)을 로드하는 구성 파일을 생성합니다. 이때 기본 JSON 모듈이 Redis 모듈보다 먼저 로드되어야 합니다.

2.    Elastic Beanstalk 환경에 애플리케이션의 새 버전을 배포하십시오.

3.    SSH를 사용하여 인스턴스에 연결한 후 다음 명령을 실행하십시오.

php -m | egrep '(redis)'

출력:

$ php -m | egrep '(redis)'
redis

Memcached 확장 설치

1.    애플리케이션 소스 번들의 루트에 있는 .ebextensions 디렉터리에서 다음 예제를 기반으로 .ebextension 파일을 생성하십시오.

packages:
  yum:
    libmemcached-devel: []

위의 .ebextensionlibmemcached-devel을 설치하며 이는 Memcached 확장을 설치하기 위한 사전 조건입니다.

2.    애플리케이션 소스 번들의 루트에 있는 .ebextensions 디렉터리에서 다음 예제를 기반으로 .ebextension 파일을 생성하십시오.

commands:
  01_install_memcached:
    command:  /usr/bin/yes 'no'| /usr/bin/pecl7 install memcached
    test: '! /usr/bin/pecl7 info memcached'
  02_rmfromphpini:
    command: /bin/sed -i -e '/extension="memcached.so"/d' /etc/php.ini
  03_createconf:
    command: /bin/echo 'extension="memcached.so"' > /etc/php-7.3.d/41-memcached.ini
    test: '/usr/bin/pecl7 info memcached'

.ebextension은 다음을 수행합니다.

Memcached 확장(01_install_memcached)을 설치합니다.
pecl7 명령이 /etc/php.ini 파일에 생성한 항목을 제거하여 확장(02_rmfromphpini)을 로드합니다.
Memcached 확장(03_createconf)을 로드하는 구성 파일을 생성합니다.

3.    Elastic Beanstalk 환경에 애플리케이션의 새 버전을 배포하십시오.

4.    SSH를 사용하여 인스턴스에 연결한 후 다음 명령을 실행하십시오.

php -m | egrep '(memcached)'

출력:

$ php -m | egrep '(memcached)'
memcached

AWS 공식
AWS 공식업데이트됨 2년 전