Rocky Linux에 APM 설치하기 – Apache + PHP 설치하기 (PHP-FPM)

By | 2023-12-14

RedHat 리눅스, CentOS 리눅스, Rocky 리눅스의 관계

RedHat에서 RedHat Enterprise Linux와 완벽하게 동일한 코드를 갖는 CentOS의 지원을 중단하고 CentOS Stream이라는 RedHat 공식 릴리즈 버전을 제작하기 전에 만들어 배포하는 업스트림 배포본으로 정책을 변경하면서 그에 반발해 다시금 RedHat과 100% 호환되는 완전하게 동일한 코드를 갖는 오픈소스 리눅스 프로젝트가 바로 Rocky Linux다.

RedHat은 Fedora 버전의 리눅스를 오픈소스 개발자들과 함께 개발하며 약간의 수정을 가해 자체적으로 제품화하여 RedHat Enterprise Linux라는 이름으로 판매하기 때문에 GPL 정책을 준수해야 한다. 그에 RedHat은 RedHat Enterprise Linux의 전체 소스코드를 공개하고 CentOS라는 이름으로 다시 빌드하여 일정 시차를 두고 배포본을 공개해왔다. 하지만 RedHat.은 돌연 소스코드는 공개하나 CentOS의 빌드 및 공개를 중단한다고 발표하였고 CentOS Stream이라는 이름으로 전환하여 RedHat Enterprise 리눅스를 공개하기 전에 먼저 공개하는 방식으로 배포 방식을 변경했다.

이러한 배포시점의 변경은 그동안 CentOS를 사용해왔던 수많은 기업에게 CentOS Stream이 더 이상 RedHat Enterprise Linux와 완벽하게 동일하지 않을 수 있다는 우려를 줄 수 밖에 없다. CentOS를 사용하는 기업들은 RedHat E.L과 완전하게 동일한 OS라는 이유 때문에 CentOS를 채택하는 경우가 많았는데 그러한 장점이 사라지는 것과 같기 때문에 엄청난 반발이 발생했고 결국 새로운 RedHat EL의 다운스트림 배포버전인 Rocky Linux가 등장했다. 즉 Rocky Linux는 RedHat에서 빌드하지 않는 순수한 오픈소스 개발자들에 의해 빌드되는 제품이다. 다만 CentOS가 그러햇듯 RedHat EL과는 완전하게 동일한 리눅스임은 보장된다.

Rocky 리눅스Apache (httpd)와 PHP 설치

Rocky 리눅스에 워드프레스와 같은 블로그 툴을 설치하기 위해서는 일반적으로 먼저 웹서버를 설치한다. 웹 서버 중에서도 Apache 웹서버가 가장 많이 사용되는데 Apache 웹서버는 httpd 라는 이름으로패키징되어 설치된다.

APM을 설치할 리눅스는 Rocky 리눅스 9.x다.

el9_2 라는 키워드가 보이는데 RedHat Enterprise Linux 9.2와 같은 Rocky Linux 9.2라는 의미다.

먼저 dnf update -y 명령으로 설치할 리포지토리의 최신정보를 업데이트 해준다.

명령어의 앞에 sudo를 붙여주는 이유는 sudo 다음의 명령을 root 계정의 권한으로 실행하라는 의미다. 만약 현재 로그인한 계정이 root 라면 sudo를 붙여주지 않으면 된다.

dnf update 명령

Apache 웹서버의 패키지를 설치한다. Apache 웹서버의 패키지 이름은 httpd 다.

Apache Web Server 2.4.57 버전이 설치됨을 알 수 있다. 그리고 의존관계에 있는 여러개의 패키지가 함께 설치된다.

웹서버 설치 후에는 PHP를 설치한다. 설치는 dnf install php 명령을 통해 설치한다.

PHP 가 잘 설치되었으면 워드프레스 설치에 필요한 추가 패키지들을 아래와 같이 설치한다.

dnf install php-cli php-gd php-curl php-zip php-mbstring

Apache와 PHP가 잘 설치되었으면 버전을 확인해본다. 가장 아래에 mariadb의 버전도 확인하는데… mariadb를 설치 후에 확인해보면 된다.

Apache 웹서버는 2.4.57이 설치되었고 PHP는 8.0 버전이 설치되었다.

다음의 명령어로 Apache 웹서버를 실행하고 정상적인 실행여부를 확인해본다.

systemctl start httpd

ps -ef | grep httpd

Apache 웹서버의 PHP-FPM 설정 (Apache 2.4.57 + PHP 8.0.3)

Apache 웹서버의 성능을 높여주기 위해 php-fpm을 사용하는 것이 보편적이다. 이 설정은 PHP를 설치할 때 자동으로 PHP-FPM을 사용하도록 설정되는 것으로 보인다. 앞에서 PHP.를 설치할 때 설치되는 패키지(rpm)의 목록을 보면 PHP-FPM이 기본적으로 포함되어 있고 특별한 설정을 하지 않아도 PHP-FPM을 enable하거나 시작하면 사용하도록 되어 있는 것으로 보인다.

PHP-FPM을 사용하기 위해서는 Apache 웹서버 실행 후 systemctl start php-fpm 명령을 실행하여 php-fpm을 별도로 실행시켜줘야 한다.

php-fpm이 실행되면서 Apache 웹서버에게서 php 파일의 처리를 요청받아 수행할 php-fpm 대몬이 미리 지정된 개수만큼 실행됨을 알 수 있다.

이렇게 실행된 php-fpm에게 Apache 웹서버가 php 파일의 처리를 요청하도록 해야하는데 그 설정은 다음과 같이 찾아볼 수 있다.

먼저 httpd.conf 파일을 찾아 LoadModule 지시자로 php-fpm 관련 모듈이 Load되어 있는지 확인하고 php-fpm 관련 모듈이 로드되어 있을 경우 php 파일의 처리를 php-fpm의 모듈인 proxy와 fcgi 모듈에게 넘길 수 있도록 관련 모듈이 또한 Load 되어 있는지 확인한다. Apache 웹서버를 컴파일할 때 php-fpm 모듈을 정적으로 포함하도록 컴파일하지 않았다면 동적으로 Load되도록 설정해주어야 한다.

만약 이 화면처럼 Include 지시자가 있다면 conf.modules.d 디렉토리로 이동하여 .conf 파일들을 뒤져서 mpm 모드와 mpm 모드 중 PHP-FPM 을 사용하도록 설정되었다면 php 파일의 처리가 php-fpm을 통해 처리되도록 fcgi와 proxy 관련 설정이 있는지 확인한다.

먼저 Apache 웹서버의 PHP 파일 처리가 php-fpm을 사용하도록 MPM 모드가 work 모드 또는 event 모드로 되어 있는지 conf 파일중에서 찾아본다. 아래처럼 00-mpm.conf 파일에 MPM 처리 모듈로 mod_mpm_event.so 또는 mod_mpm_worker.so 가 Load되도록 되어 있다면 php-fpm을 통해 php 파일이 처리되도록 설정된 것이다.

이 파일에서는 Apache의 MPM 처리 방식 세가지 중 Event 드리븐 방식의 MPM 모듈만 Load되어 있는 것을 확인할 수 있다. 셋 중 하나만 Load되어 있으면 php 파일의 처리가 문제없이 가능하지만 빠른 처리속도를 위해서는 가장 아래에 있는 mem_event_module 만 주석이 해제되어 있어야 한다.

다음은 php-fpm에 사용되는 fcgi 모듈이 Load되어 있는지 확인한다.

특별히 아파치 웹서버의 설정을 수동으로 변경한 것 없이 apache 웹서버 설치, PHP설치만 진행하고 php-fpm 서비스를 실행하기만 했음에도 이러한 설정이 모두 되어 있었다.

이제 Apache 웹서버의 DocumentRoot에 phpinfo.php 라는 파일을 다음과 같이 생성하고 브라우저에서 호출해본다.

<?php

phpinfo();
?>

브라우저의 주소창에 http://IP주소/phpinfo.php 를 입력하면 다음과 같이 PHP 관련 정보가 보이는 웹페이지가 보이게 된다.

중요한 대목은 Server API의 값이다. 이 값이 FPM/FastCGI 라고 표시되어야 한다.

다음 포스트에서는 지금 설치한 Apache 웹서버와 PHP가 사용할 MariaDB를 설치하는 과정에 대해 포스팅한다.

다음 포스트 : Rocky Linux 9에 MariaDB 설치하기

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다