Amazon Linux 1 스택을 사용하여 PHP 7.3에서 실행되는 AWS Elastic Beanstalk 환경에 Redis, Memcached 또는 PECL 7용 기타 모듈을 설치하려고 합니다.
간략한 설명
PECL 7 모듈을 설치하려면 다음을 수행해야 합니다.
- 종속 항목을 설치합니다.
- 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: []
위의 .ebextension은 libmemcached-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