CentOS Stream 9에 PHP를 설치하는 방법

PHP는 웹 개발용으로 설계되어 널리 사용되는 서버측 스크립팅 언어이지만 범용 프로그래밍 언어로도 사용됩니다. 특히 동적이고 대화형 웹사이트를 만드는 데 선호됩니다. 8.3, 8.2, 8.1 등 ​​최신 버전의 PHP를 설치하면 최신 기능, 성능 개선 및 보안 패치에 액세스할 수 있습니다. CentOS Stream 9에서는 최신 PHP 패키지를 제공하는 것으로 잘 알려진 Remi RPM 저장소를 사용하여 이러한 버전을 쉽게 설치할 수 있습니다.

이 가이드는 Remi 저장소를 활성화하고 CentOS Stream 9에 최신 PHP 빌드를 설치하는 과정을 안내합니다.

CentOS에서 Remi PHP RPM 가져오기

PHP 설치 전 CentOS 스트림 업데이트

모든 기존 패키지가 최신 상태인지 확인하려면 CentOS Stream 시스템을 업데이트하는 것부터 시작하는 것이 중요합니다. 이 단계는 시스템 안정성과 보안을 위해 필수적입니다.

터미널을 열고 다음 명령을 실행하여 시스템을 업데이트하십시오.

sudo dnf upgrade --refresh

이 명령은 패키지 데이터베이스를 새로 고치고 설치된 모든 패키지를 사용 가능한 최신 버전으로 업그레이드합니다.

Remi PHP RPM 저장소 가져오기

Remi PHP 저장소는 최신 PHP 버전을 제공하는 타사 저장소입니다. Remi 저장소를 추가하기 전에 Enterprise Linux용 추가 패키지를 제공하는 EPEL 저장소를 설치해야 합니다.

먼저 선택 사항이지만 CodeReady Linux Builder(CRB) 리포지토리를 활성화하는 것이 좋습니다. 추가 개발자 도구와 라이브러리를 제공합니다. 다음을 사용하여 CRB를 활성화합니다.

sudo dnf config-manager --set-enabled crb

CRB를 활성화한 후 다음을 사용하여 EL9용 EPEL 저장소를 설치합니다.

sudo dnf install \
    https://dl.fedoraproject.org/pub/epel/epel-release-latest-9.noarch.rpm \
    https://dl.fedoraproject.org/pub/epel/epel-next-release-latest-9.noarch.rpm

마지막으로 EL9용 Remi PHP 저장소를 가져옵니다.

sudo dnf install dnf-utils http://rpms.remirepo.net/enterprise/remi-release-9.rpm -y

CentOS Stream에서 PHP Remi 리포지토리 활성화

사용 가능한 PHP 모듈 나열

PHP를 설치하기 전에 Remi 저장소에서 사용 가능한 PHP 버전을 식별하는 것이 중요합니다. 이 단계는 설치할 버전에 대해 정보를 바탕으로 결정을 내리는 데 도움이 됩니다.

모든 PHP 모듈을 나열하려면 다음 명령을 사용하십시오.

dnf module list php

이 명령은 Remi 저장소에서 사용 가능한 모든 PHP 버전을 표시합니다. 요구 사항에 가장 적합한 버전을 선택하는 것은 중요한 단계입니다.

Remi 저장소의 GPG 키 가져오기

메시지가 표시되면 Remi 저장소에 대한 GPG 키 가져오기를 확인해야 합니다. 이 단계는 설치하려는 패키지의 신뢰성을 확인하므로 보안상의 이유로 매우 중요합니다. 가져오기를 계속할지 묻는 메시지가 나타나면 'Y'를 입력하세요.

원하는 PHP 버전 활성화

사용 가능한 PHP 버전을 확인한 후 필요에 맞는 특정 버전을 활성화할 수 있습니다. 귀하의 프로젝트에는 안정적이고 잘 지원되는 PHP 버전을 선택하는 것이 좋습니다.

Remi 저장소에서 특정 PHP 버전을 활성화하려면 다음 명령을 사용하십시오.

sudo dnf module enable php:remi-8.3 -y
sudo dnf module enable php:remi-8.2 -y
sudo dnf module enable php:remi-8.1 -y

각 명령은 Remi 저장소에서 다른 버전의 PHP를 활성화합니다. 설치하려는 버전에 해당하는 명령을 선택하십시오. 이러한 명령의 '-y' 플래그는 설치 자동 확인을 나타내어 프로세스를 간소화합니다.

CentOS Stream에 PHP 8.3, 8.2 또는 8.1 설치

PHP 설치를 위한 웹 서버 선택

적절한 웹 서버를 선택하는 것은 PHP 설정의 핵심 단계입니다. CentOS Stream은 Apache와 Nginx를 모두 지원하며 각각에는 서로 다른 PHP 패키지가 필요합니다.

아파치(httpd) PHP 설치

Apache를 웹 서버로 사용하는 경우 다음 명령은 명령줄에서 PHP 스크립트를 실행하는 데 필수적인 PHP 명령줄 인터페이스(CLI)와 함께 PHP를 설치합니다.

sudo dnf install php php-cli -y

Nginx PHP 설치

Nginx를 사용하는 경우 PHP CLI와 함께 PHP FastCGI 프로세스 관리자(FPM)를 설치해야 합니다. PHP-FPM은 트래픽이 많은 사이트에 매우 효율적인 대체 PHP FastCGI 구현입니다.

sudo dnf install php-fpm php-cli -y

PHP 설치 확인

설치 후에는 PHP가 올바르게 설치되었는지 확인하는 것이 중요합니다. 설치된 PHP 버전을 확인하려면 다음 명령을 실행하십시오.

php -v

이 명령은 현재 PHP 버전을 표시하여 성공적인 설치를 확인합니다.

일반 PHP 확장 설치

PHP 기능을 향상하려면 추가 확장을 설치해야 할 수도 있습니다. 아래 명령은 다양한 CMS 플랫폼 및 개발 요구 사항에 필수적인 일반적으로 사용되는 PHP 확장을 설치합니다.

sudo dnf install php-cli php-fpm php-curl php-mysqlnd php-gd php-opcache php-zip php-intl php-common php-bcmath php-imagick php-xmlrpc php-json php-readline php-memcached php-redis php-mbstring php-apcu php-xml php-dom php-redis php-memcached php-memcache

설정에 필요하지 않은 확장을 검토하고 생략하는 것이 좋습니다.

로드된 PHP 모듈 보기

현재 로드된 PHP 모듈을 검사하려면 다음을 실행하세요.

php -m

최적의 시스템 성능을 유지하려면 불필요한 모듈을 정기적으로 모니터링하고 정리하는 것이 좋습니다.

PHP 개발 지점 설치

특정 개발 요구 사항의 경우 PHP 개발 분기가 필요할 수 있습니다. 다음을 사용하여 설치하세요.

sudo dnf install php-devel

참고: 이 설치에는 여러 종속성이 발생합니다. PHP 개발 환경에 특별한 요구 사항이 있는 경우에만 진행하세요.

PHP 개발 도구 추가

디버깅을 포함한 고급 개발 기능을 사용하려면 다음을 사용하여 추가 도구를 설치하세요.

sudo dnf install php-xdebug php-pcov

이러한 도구는 PHP의 디버깅 및 코드 범위 분석에 필수적이지만, 이로 인해 발생하는 추가 종속성에 주의하세요.

CentOS 스트림에서 PHP-FPM용 Nginx 사용자 구성

Nginx용 PHP-FPM 구성 편집

CentOS Stream에서는 PHP-FPM의 기본 사용자가 'Apache'로 설정되어 있으며 이는 Nginx 설정과 호환되지 않습니다. Nginx용 PHP-FPM을 최적화하려면 구성 변경이 필요합니다.

PHP-FPM 구성에 액세스

PHP-FPM 구성 파일을 열어서 시작합니다. 이 파일에는 PHP-FPM이 웹 서버와 상호 작용하는 방법에 대한 특정 설정이 들어 있습니다. 다음 명령을 사용하여 www.conf 파일을 편집합니다.

sudo nano /etc/php-fpm.d/www.conf

이 명령은 PHP-FPM 구성 파일을 사용하여 Nano 텍스트 편집기를 시작합니다.

사용자 및 그룹 설정 수정

구성 파일에서 사용자 및 그룹을 지정하는 줄을 찾습니다. 기본적으로 'Apache'로 설정되어 있습니다. 사용자와 그룹을 모두 'Nginx'로 변경하여 PHP-FPM 서비스를 Nginx에 맞춥니다.

; Unix 사용자/프로세스 그룹 ; 참고: 사용자는 필수입니다. 그룹이 설정되지 않은 경우 기본 사용자의 그룹은 ; 사용됩니다. ; RPM: apache httpd user = nginx로 일부 디렉토리에 액세스할 수 있도록 선택했습니다. RPM: 그룹이 로그 디렉토리에 쓸 수 있도록 허용합니다. 그룹 = nginx

다음은 작동하는 시각적 예입니다.

구성 파일 저장 및 종료

변경한 후 CTRL+O를 눌러 파일을 저장한 다음 CTRL+X로 종료합니다. 이 작업은 수정 사항을 저장하고 Nano 편집기를 닫습니다.

PHP-FPM 서비스 다시 시작

변경 사항을 적용하려면 다음을 사용하여 PHP-FPM 서비스를 다시 시작하세요.

sudo systemctl restart php-fpm

이 명령을 사용하면 Nginx 사용자 및 그룹에서 PHP-FPM이 실행되기 시작하여 CentOS Stream의 Nginx 웹 서버 설정에 대한 호환성과 향상된 보안이 보장됩니다.

Nginx PHP-FPM 서버 블록 코드 예

PHP 처리를 위한 Nginx 서버 블록 구성

CentOS Stream에서 Nginx에서 PHP 처리를 활성화하려면 Nginx 구성 파일 내의 서버 블록을 수정해야 합니다. 다음 예는 PHP 파일을 처리하는 데 필요한 구성을 보여줍니다. 이 설정에는 PHP 위치 블록을 지정해야 합니다.

    location ~ \.php$ {
        try_files $uri =404;
        fastcgi_pass unix:/run/php-fpm/www.sock;
        fastcgi_index   index.php;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        include fastcgi_params;
    }

이 코드는 Nginx가 PHP 파일을 올바르게 처리하여 PHP-FPM 프로세서로 리디렉션하도록 보장합니다. 다음은 간단한 분석입니다.

  • location ~ .php$: 이 지시문은 Nginx에게 .php로 끝나는 모든 파일에 다음 규칙을 적용하도록 지시합니다. 물결표 ~는 이것이 정규식 일치임을 나타냅니다.
  • try_files $uri =404: 이 줄은 지정된 URI에 PHP 파일이 있는지 확인합니다. 그렇지 않으면 Nginx는 404 오류를 반환합니다. 이는 승인되지 않은 스크립트 실행을 방지하기 위한 보안 조치입니다.
  • fastcgi_pass unix:/run/php-fpm/www.sock;: 이 지시문은 PHP-FPM 서비스가 수신 대기 중인 소켓을 지정합니다. 이 경우 Nginx는 /run/php-fpm/www.sock 소켓을 통해 PHP 요청을 PHP-FPM 프로세스에 전달합니다.
  • fastcgi_index index.php;: index.php를 디렉터리에 액세스할 때 실행될 기본 스크립트로 설정합니다.
  • fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;: 이 줄은 SCRIPT_FILENAME 매개변수를 설정합니다. 이는 PHP-FPM이 파일 시스템에서 스크립트 파일을 찾는 데 필수적입니다. 문서 루트와 스크립트 이름을 결합합니다.
  • include fastcgi_params;: 여기에는 Nginx에서 제공하는 기본 FastCGI 매개변수가 포함됩니다. 이는 PHP-FPM이 올바르게 작동하는 데 필요한 표준 설정입니다.

이 구성을 사용하면 Nginx 서버에서 PHP 기반 웹 사이트 및 애플리케이션을 실행하기 위한 중요한 단계인 처리를 위해 PHP 요청을 PHP-FPM 서비스에 전달하여 PHP 요청을 올바르게 처리할 수 있습니다.

Nginx 구성 확인

서버 블록을 업데이트한 후 다음 명령을 사용하여 Nginx 구성에 구문 오류가 있는지 확인하세요.

sudo nginx -t

성공적인 구문 검사를 확인하는 출력 예:

nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

이 단계에서는 Nginx 구성에 구문 오류가 없고 구현할 준비가 되었는지 확인합니다.

Nginx 서비스 다시 시작

PHP-FPM 구성 변경 사항을 적용하려면 Nginx 서비스를 다시 시작하세요.

sudo systemctl restart nginx

다시 시작하면 변경 사항이 적용되어 Nginx가 업데이트된 서버 블록 구성을 사용하여 PHP 파일을 처리할 수 있습니다.

결론

CentOS Stream 9의 Remi RPM 리포지토리를 통해 PHP를 설치하면 시스템에 8.3, 8.2 및 8.1을 포함한 최신 안정 버전의 PHP가 설치되어 있는지 확인할 수 있습니다. 이 설정은 향상된 성능, 최신 기능에 대한 액세스 및 웹 애플리케이션에 대한 향상된 보안을 제공합니다. Remi 저장소를 통해 정기적으로 PHP를 업데이트하면 시스템을 안전하게 유지하고 PHP의 최신 개발 내용을 최신 상태로 유지할 수 있습니다. 동적 웹 애플리케이션을 구축하고 유지 관리하기 위해 PHP가 제공하는 유연성과 강력함을 즐겨보세요.

Joshua James

코멘트를 남겨주세요