기존 PHP 서비스 중단 및 패키지 삭제
CentOS 8에 기본적으로 포함된 PHP 7.2 버전은 특정 확장 모듈(예: mysqlnd)이 누락되어 있거나 최신 애플리케이션 요구사항에 맞지 않을 수 있습니다. 새로운 버전을 설치하기 전, 먼저 실행 중인 PHP 서비스를 중단하고 기존 패키지를 제거합니다.
# PHP-FPM 프로세스 중지
systemctl stop php-fpm
# 설치된 PHP 관련 패키지 일괄 삭제
dnf remove php php-common php-cli php-fpm -y
Remi 저장소 등록 및 설정
최신 PHP 버전을 안정적으로 공급받기 위해 Remi 저장소를 시스템에 추가해야 합니다. 이 과정에서 EPEL 저장소 활성화가 동반됩니다.
# EPEL 및 Remi 저장소 설치 패키지 다운로드 및 등록
dnf install -y https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm
dnf install -y https://rpms.remirepo.net/enterprise/remi-release-8.rpm
dnf install -y dnf-utils
DNF 모듈을 이용한 PHP 버전 선택
CentOS 8의 관리 도구인 DNF는 '모듈 스트림' 기능을 제공하여 여러 버전의 소프트웨어 중 사용자가 원하는 버전을 선택할 수 있게 합니다.
# 사용 가능한 PHP 모듈 리스트 확인
dnf module list php
# 현재 활성화된 PHP 모듈 설정 초기화
dnf module reset php
# PHP 7.4 버전을 배포하는 Remi 스트림 활성화
dnf module enable php:remi-7.4 -y
새로운 PHP 버전 및 필수 확장 모듈 설치
스트림이 전환되면
dnf install 명령을 통해 최신 버전의 PHP와 웹 개발에 필수적인 확장 라이브러리들을 설치합니다.
# PHP 및 주요 모듈(MySQL 연동, 캐시, 그래픽 등) 설치
dnf install -y php php-fpm php-mysqlnd php-opcache php-gd php-xml php-mbstring php-json
설치 확인 및 서비스 활성화
설치가 성공적으로 완료되었는지 확인하고, 시스템 부팅 시 PHP-FPM이 자동으로 실행되도록 설정합니다.
# 설치된 PHP 버전 정보 출력
php -v
# PHP-FPM 서비스 시작 및 자동 실행 등록
systemctl enable --now php-fpm
# 연동된 웹 서버(Nginx 또는 Apache) 설정 재로드
systemctl reload nginx
추가적인 모듈 설치가 필요할 경우
dnf search php74-php와 같은 명령어로 검색이 가능하며,
php -m 명령어를 사용하여 현재 활성화된 전체 모듈 목록을 검토할 수 있습니다.