본문 바로가기

퍼블릭 클라우드

Amazon EC2 t4g.small 인스턴스에서 PHP-FPM 설치하는 방법

반응형

Amazon EC2 t4g.small(Ubuntu 22.04, ARM) 인스턴스에서 PHP-FPM 설치하는 방법

AWS Graviton(ARM64) 기반 EC2 t4g.small 인스턴스에서 PHP-FPM 8.1을 설치하고 주요 확장 모듈을 구성하는 방법입니다.

테스트 환경

운영 체제 정보

$ lsb_release -d
Description:	Ubuntu 22.04.3 LTS

CPU 아키텍처 확인(Graviton ARM 확인)

$ uname -m
aarch64

운영 체제 비트 수 확인

$ getconf LONG_BIT
64

PHP-FPM 설치

필수 패키지 설치

sudo apt-get update
sudo apt-get install -y zlib1g-dev software-properties-common

PHP PPA 추가(Ondřej Surý PHP Repository)

  • Ubuntu 22.04 기본 저장소는 최신 PHP 버전 지원이 제한적이므로 가장 널리 사용되는 PHP PPA를 추가합니다.
sudo add-apt-repository -y ppa:ondrej/php
sudo apt-get update
APT 패키지 삭제하기
apt-get --purge remove [pakage]​
apt-get autoremove

PHP-FPM 8.1 설치

기본 PHP 패키지

sudo apt-get install -y php8.1-fpm php8.1-cli php8.1-common php8.1-dev

PHP 추가 모듈 설치

sudo apt-get install -y php8.1-gd php8.1-xml php8.1-curl php8.1-igbinary
sudo apt-get install -y php8.1-xml php8.1-redis php8.1-mongodb php8.1-zip php8.1-imagick
728x90

PHP-FPM 버전 확인

php-fpm8.1 --version
$ php-fpm8.1 --version
PHP 8.1.25 (fpm-fcgi) (built: Oct 27 2023 14:00:40)
Copyright (c) The PHP Group
Zend Engine v4.1.25, Copyright (c) Zend Technologies
    with Zend OPcache v8.1.25, Copyright (c), by Zend Technologies

PHP-FPM 서비스 활성화 및 시작

sudo systemctl --now enable php8.1-fpm

PHP 설정(php.ini) 파일 위치 확인

php --ini | egrep "Loaded Configuration File"
$ php --ini | egrep "Loaded Configuration File"
Loaded Configuration File:         /etc/php/8.1/cli/php.ini
  • CLI 설정: /etc/php/8.1/cli/php.ini
  • FPM 설정: /etc/php/8.1/fpm/php.ini

rdkafka PHP 확장 모듈 설치

librdkafka 라이브러리 설치

sudo apt-get install -y librdkafka-dev

PECL로 rdkafka 설치

yes '' | sudo pecl install rdkafka

rdkafka.so 모듈 활성화

echo "extension=rdkafka.so" | sudo tee /etc/php/8.1/mods-available/rdkafka.ini
sudo ln -s /etc/php/8.1/mods-available/rdkafka.ini /etc/php/8.1/fpm/conf.d/20-rdkafka.ini
sudo ln -s /etc/php/8.1/mods-available/rdkafka.ini /etc/php/8.1/cli/conf.d/20-rdkafka.ini

PHP-FPM 서비스 재시작

sudo systemctl restart php8.1-fpm

PHP 모듈 로드 여부 확인

php -m | egrep 'redis|mongodb|zip|imagick|rdkafka'
php-fpm8.1 -m | egrep 'redis|mongodb|zip|imagick|rdkafka'
$ php-fpm8.1 -m | egrep 'redis|mongodb|zip|imagick|rdkafka'
imagick
mongodb
rdkafka
redis
zip

PHP-FPM 설정 파일 문법 검사

php-fpm8.1 -t
$ php-fpm8.1 -t
[04-Nov-2023 02:50:55] NOTICE: configuration file /etc/php/8.1/fpm/php-fpm.conf test is successful

PHP INFO 테스트 페이지 생성

페이지 생성

echo "<?php phpinfo(); ?>" | sudo tee /usr/share/nginx/html/test.php

브라우저에서 확인

http://<EC2-공인-IP>/test.php

 

728x90
반응형