Rocky Linux 9/8에 PHP를 설치하는 방법

PHP는 특히 웹 개발에 적합한 널리 사용되는 범용 스크립팅 언어입니다. 빠르고 유연하며 실용적이며 블로그부터 세계에서 가장 인기 있는 웹사이트까지 모든 것을 지원합니다. PHP는 다양한 데이터베이스에 대한 광범위한 지원을 제공하므로 서버측 스크립팅에 필수적인 도구입니다.

다음 가이드에서는 명령줄 명령을 사용하여 Rocky Linux 9 또는 8에 PHP를 설치하는 단계를 보여줍니다. 설치 방법에는 PHP 8.1, 8.2 및 8.3의 최신 안정 빌드용 Remi RPM 저장소를 사용하는 것이 포함됩니다.

Remi PHP RPM 저장소 가져오기

PHP 설치 전 Rocky Linux 업데이트

PHP 설치를 준비하려면 Rocky Linux 시스템을 업데이트하는 것부터 시작하세요. 터미널을 열고 다음을 입력하세요.

sudo dnf upgrade --refresh

PHP Remi 저장소 가져오기

EPEL 저장소 설정

EPEL(Enterprise Linux용 추가 패키지)은 Rocky Linux의 추가 소프트웨어 패키지에 중요합니다. 다음은 최신 EL9 릴리스 또는 EL8용 Rocky Linux에 EPEL을 설치하는 두 가지 옵션입니다.

Rocky Linux 9용 EPEL 가져오기

CRB 활성화

CRB는 더 많은 개발 도구에 대한 액세스를 제공합니다. 사용:

sudo dnf config-manager --set-enabled crb
EPEL 저장소 설치

Rocky Linux 9용 최신 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

EL 9용으로 설계된 Remi 저장소를 통합합니다.

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

Rocky Linux 8용 EPEL 가져오기

PowerTools 저장소 활성화

PowerTools는 PHP 개발 도구에 필수적입니다.

sudo dnf config-manager --set-enabled powertools
Rocky Linux 8용 EPEL 활성화

Rocky Linux 8용 EPEL 리포지토리를 설치합니다.

sudo dnf install \
    https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm \
    https://dl.fedoraproject.org/pub/epel/epel-next-release-latest-8.noarch.rpm
Remi EL 8 저장소 가져오기

EPEL이 설치된 경우 EL 8용 PHP가 포함된 Remi RPM을 가져옵니다.

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

Remi 저장소에서 PHP(8.x) 활성화

PHP 버전 확인

Remi 저장소에서 사용 가능한 PHP 버전을 확인하는 것부터 시작하세요. 이렇게 하면 원하는 PHP 버전에 액세스할 수 있습니다.

터미널에서 실행:

dnf module list php

메시지가 표시되면 (Y)를 입력하여 Remi 저장소의 GPG 키를 가져옵니다.

PHP 버전 선택

PHP 8.3 활성화

안정적인 최신 버전인 PHP 8.3을 설치하려면 다음을 사용하세요.

sudo dnf module enable php:remi-8.3 -y

PHP 8.2 활성화

PHP 8.2의 경우 다음 특정 버전이 필요한 애플리케이션에 적합합니다.

sudo dnf module enable php:remi-8.2 -y

PHP 8.1 활성화

PHP 8.1을 활성화하려면 특정 애플리케이션과의 호환성에 이상적입니다.

sudo dnf module enable php:remi-8.1 -y

PHP 설치 마무리

Apache 또는 Nginx 지원을 위한 PHP 설치

Remi PHP 리포지토리를 활성화한 후 Apache 또는 Nginx 중 웹 서버 요구 사항에 맞는 PHP를 설치할 수 있습니다.

아파치(httpd) PHP 설치

sudo dnf install php php-cli -y

Nginx PHP 설치

sudo dnf install php-fpm php-cli -y

PHP 설치 확인

다음을 실행하여 PHP 설치를 확인합니다.

php -v

PHP 확장 설치

프로젝트 요구 사항에 따라 필수 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

단순화된 설치

컴팩트 설치 명령의 경우:

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

이제 각 PHP 확장의 기능을 분석해 보겠습니다.

  • PHP-CLI: PHP용 명령줄 인터페이스는 셸에서 PHP 스크립트를 실행하는 데 도움이 됩니다.
  • PHP-FPM: PHP 요청을 처리하고 제공하는 데 유용한 FastCGI 프로세스 관리자입니다.
  • PHP 컬: 다양한 유형의 서버 및 프로토콜과 연결하고 통신할 수 있습니다.
  • PHP-mysqlnd: MySQL 데이터베이스 연결에 사용되는 MySQL 네이티브 드라이버입니다.
  • PHP-GD: 그래픽 그리기, 이미지 파일을 생성하고 조작하는 데 유용합니다.
  • PHP-opcache: PHP 실행 속도를 높이는 데 사용되는 Opcode 캐시입니다.
  • PHP-zip: zip 아카이브로 작업할 수 있습니다.
  • PHP-INTL: 국제 문자 세트 및 로케일 작업을 위한 국제화 확장입니다.
  • PHP 공통: 여러 PHP 모듈에서 사용되는 공통 파일 및 설정입니다.
  • php-bcmath: 이진 계산기는 임의의 정밀 수학을 허용합니다.
  • PHP-Imagick: ImageMagick 라이브러리를 사용하여 이미지를 생성하고 수정하는 방법을 제공합니다.
  • php-xmlrpc: XML-RPC 서버 생성을 활성화하고 XML-RPC 요청 전송을 쉽게 만듭니다.
  • PHP-json: JSON 데이터 인코딩 및 디코딩을 위한 JSON(JavaScript Object Notation) 확장입니다.
  • PHP-readline: 터미널에서 데이터 라인을 읽을 수 있습니다.
  • PHP-memcached: 빠른 분산 메모리 개체 캐싱을 제공합니다.
  • PHP-레디스: Redis와의 인터페이스를 위한 PHP 확장입니다.
  • PHP-mbstring: ASCII가 아닌 문자열을 처리하기 위한 다중 바이트 문자열입니다.
  • php-apcu: APC User Cache는 APC 기반의 사용자 영역 캐싱 확장입니다.
  • PHP-xml: XML 문서를 구문 분석하기 위한 XML 파서.
  • PHP-dom: 문서 개체 모델(Document Object Model), 개체 지향 방식으로 XML 문서를 조작합니다.
  • PHP-멤캐시: memcached에 편리한 절차적 및 객체 지향 인터페이스를 제공합니다.
  • PHP 비누: SOAP 서버 및 클라이언트 작성에 사용됩니다.
  • PHP-LDAP: 디렉터리 정보에 액세스하고 관리하는 데 사용되는 경량 디렉터리 액세스 프로토콜입니다.
  • PHP-PDO: PHP Data Objects는 여러 데이터베이스에 대한 통일된 액세스 방법을 제공하는 데이터베이스 액세스 계층입니다.

다음 명령을 사용하면 언제든지 로드된 모듈을 볼 수 있습니다.

php -m

성능 효율성을 위해 정기적인 모니터링 및 불필요한 모듈 제거를 권장합니다.

PHP 개발 도구 설치

개발 목적으로 PHP 개발 브랜치 및 디버깅 도구를 설치합니다.

PHP 개발 지점

sudo dnf install php-devel

PHP 디버깅 도구

sudo dnf install php-xdebug php-pcov

이 버전을 설치하면 여러 가지 종속성이 발생하므로 PHP 개발에서 특별히 필요하거나 특별한 요구 사항이 없는 한 설치하지 않는 것이 좋습니다.

Rocky Linux에서 PHP-FPM Nginx 사용자 구성

Nginx용 PHP-FPM 조정

Rocky Linux와 같은 RHEL 기반 배포판은 기본적으로 PHP-FPM에 "Apache" 사용자를 사용하는데, 이는 Nginx 설정에 적합하지 않습니다. Nginx에서 최적의 기능을 위해서는 이를 수정하는 것이 필수적입니다.

PHP-FPM 구성 편집

구성 파일 열기

액세스 www.conf 편집용 파일:

sudo nano /etc/php-fpm.d/www.conf
사용자 및 그룹 설정 수정

파일 내에서 Apache 사용자 및 그룹을 Nginx로 변경합니다.

수정 후:

(CTRL+O)를 눌러 변경 사항을 저장한 다음 (CTRL+X)를 눌러 종료합니다.

PHP-FPM 서비스 다시 시작

구성을 수정한 후 PHP-FPM을 다시 시작하여 변경 사항을 적용합니다.

sudo systemctl restart php-fpm

Nginx PHP-FPM 서버 블록 코드 예

PHP 처리를 위한 Nginx 구성

Nginx가 PHP 파일을 처리할 수 있도록 하려면 서버 블록을 올바르게 구성해야 합니다. 다음 예에서는 server{} PHP 파일 처리를 위한 블록입니다.

Nginx PHP-FPM 구성
    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 구성 검증

구성을 업데이트한 후 유효성을 검사하여 구문 오류가 없는지 확인하세요.

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 서비스를 다시 시작하세요.

sudo systemctl restart nginx

이 다시 시작은 변경 사항을 적용하고 Nginx가 새 구성으로 PHP 파일 처리를 시작하는 데 필수적입니다.

결론

좋아, 이것으로 우리의 여행은 끝났습니다! 우리는 Rocky Linux에서 PHP를 성공적으로 설정하고 Apache 또는 Nginx에 맞게 조정하고 최적의 성능을 위해 PHP-FPM을 미세 조정했습니다. PHP 모듈과 구성을 정기적으로 확인하면 작업이 원활하게 실행된다는 점을 기억하세요. 변경 후에는 서비스를 다시 시작하는 것을 잊지 마세요.

Joshua James

코멘트를 남겨주세요