Amazon Linux 2 스택을 사용하여 PHP 8.1에서 실행되는 AWS Elastic Beanstalk 환경에 Redis, Memcached 또는 PECL 7용 기타 모듈을 설치하려고 합니다.
간략한 설명
PECL 7 모듈을 설치하려면 다음 명령을 포함하는 구성 파일(.ebextension)을 생성해야 합니다.
- 종속성 설치
- PECL 모듈 설치
- 구성 파일 생성 또는 수정
참고: Amazon Linux 1 스택은 PHP에서 Amazon Linux 1 스택으로 실행 중인 Elastic Beanstalk 환경에 PECL 7 모듈을 설치하려면 어떻게 해야 합니까?를 참조하세요.
해결 방법
1. 애플리케이션의 소스 번들 루트에 .ebextensions 디렉터리를 설정합니다. 예를 들면 다음과 같습니다.
|-- .ebextensions
| |-- redis/memcached.config
| |-- other .config files
|-- other application files
자세한 내용은 구성 파일(.ebextensions)을 사용한 고급 환경 사용자 지정을 참조하세요.
참고: 모든 구성 파일은 .ebextensions 폴더에 저장됩니다. 엘라스틱 빈스토크 환경에서는 확장자가.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을 테스트하세요.