[리눅스] php-fpm

php-fpm www.conf 구성 방법

PHP-FPM은 웹 서버와 PHP를 분리하여 웹 서버의 성능을 향상시킬 수 있는 FastCGI 기반의 PHP 프로세스 관리 도구입니다.

www.conf는 PHP-FPM 작업자 프로세스의 작동 방식을 제어하는 ​​PHP-FPM 구성 파일 중 하나입니다.

다음은 www.conf 파일을 구성하는 방법에 대한 설명입니다.

1. www.conf 파일 위치 확인

먼저 www.conf 파일이 있는 위치를 찾아야 합니다.

일반적으로 PHP-FPM을 설치할 때 www.conf 파일은 /etc/php-fpm.d/ 디렉토리에 있습니다.

2. www.conf 파일 복사

www.conf 파일은 기본적으로 존재하지 않으며 php-fpm.conf 파일을 복사하여 생성해야 합니다.

따라서 다음 명령을 실행하여 www.conf 파일을 만듭니다.

$ cp /etc/php-fpm.d/www.conf.default /etc/php-fpm.d/www.conf

3. www.conf 파일 편집

이제 www.conf 파일을 열어 설정을 변경하십시오. 일반적으로 변경해야 하는 설정은 다음과 같습니다.

  • 사용자 및 그룹: PHP-FPM 작업자 프로세스를 실행할 때 사용할 사용자 및 그룹을 설정합니다.

    일반적으로 웹 서버의 사용자 및 그룹과 동일한 값을 설정합니다.

user = www-data
group = www-data
  • 듣기: PHP-FPM 작업자 프로세스와 웹 서버가 통신하는 방법을 결정합니다.

    가장 일반적인 방법은 소켓 파일을 사용하는 것입니다.

listen = /run/php/php7.4-fpm.sock
  • pm.max_children: PHP-FPM 작업자 프로세스의 최대 수를 설정합니다.

    이 값은 서버의 하드웨어 사양과 PHP 애플리케이션 유형에 따라 다릅니다.

pm.max_children = 5
  • pm.max_requests: PHP-FPM 작업자 프로세스가 처리할 최대 요청 수를 설정합니다.

    이 값은 작업자 프로세스에서 메모리 누수를 방지하는 데 사용됩니다.

pm.max_requests = 500
  • pm.status_path: PHP-FPM의 상태를 확인할 URL을 지정합니다.

    이 설정은 보안상의 이유로 주석 처리될 수 있습니다.

;pm.status_path = /status

위에서 설명한 설정으로 www.conf 파일을 저장합니다.

4. PHP-FPM 작업자 프로세스를 다시 시작합니다.

마지막으로 구성 변경 사항을 적용하려면 PHP-FPM 작업자 프로세스를 다시 시작해야 합니다.

다음 명령을 실행합니다.

$ sudo systemctl restart php7.4-fpm

이 명령은 시스템에서 사용 중인 PHP-FPM 버전에 따라 다를 수 있습니다.

명령을 수정하고 적용하려는 PHP-FPM 버전에 따라 실행하십시오.

위 명령을 실행하면 이전에 실행 중인 PHP-FPM 작업자 프로세스가 모두 종료되고 새 설정으로 새 프로세스가 시작됩니다.

이 과정에서 애플리케이션 서비스가 일시적으로 중단될 수 있으므로 사전에 사용자에게 알리는 것이 좋습니다.

PHP-FPM 작업자 프로세스가 정상적으로 실행되었는지 확인하려면 다음 명령을 실행하여 상태를 확인할 수 있습니다.

$ sudo systemctl status php7.4-fpm

위의 명령은 시스템에서 사용 중인 PHP-FPM 버전에 따라 다를 수 있습니다.

실행 결과에 Active: active (running) 라는 표현이 나오면 PHP-FPM 작업자 프로세스가 정상적으로 실행되고 있는 것입니다.


www.conf 파일에서 설정할 수 있는 값은 다음과 같습니다.

  • 사용자 및 그룹: PHP-FPM 작업자 프로세스를 실행할 때 사용할 사용자 및 그룹을 설정합니다.

    일반적으로 웹 서버의 사용자 및 그룹과 동일한 값을 설정합니다.

  • 듣기: PHP-FPM 작업자 프로세스와 웹 서버가 통신하는 방법을 결정합니다.

    가장 일반적인 방법은 소켓 파일을 사용하는 것입니다.

    청력 값은 다음과 같이 조정할 수 있습니다.

    • 소켓 파일: /run/php/php7.4-fpm.sock
    • TCP/IP 소켓: 127.0.0.1:9000
  • pm.max_children: PHP-FPM 작업자 프로세스의 최대 수를 설정합니다.

    이 값은 서버의 하드웨어 사양과 PHP 애플리케이션 유형에 따라 다릅니다.

  • pm.start_servers: PHP-FPM 작업자 프로세스의 초기 시작 번호를 설정합니다.

  • pm.min_spare_servers: 유지할 예비 PHP FPM 작업자 프로세스의 최소 수를 설정합니다.

    서버의 부하가 적을 때 유지할 프로세스 수입니다.

  • pm.max_spare_servers: 유지할 예비 PHP FPM 작업자 프로세스의 최대 수를 설정합니다.

    서버 부하가 높을 때 유지할 프로세스 수입니다.

  • pm.max_requests: PHP-FPM 작업자 프로세스가 처리할 최대 요청 수를 설정합니다.

    이 값은 작업자 프로세스에서 메모리 누수를 방지하는 데 사용됩니다.

  • pm.status_path: PHP-FPM의 상태를 확인할 URL을 지정합니다.

    이 설정은 보안상의 이유로 주석 처리될 수 있습니다.

위와 같이 www.conf 파일에 설정할 수 있는 값은 PHP-FPM 작업자 프로세스의 동작을 제어하는 ​​데 필수적입니다.

따라서 적절한 값을 설정하여 서버의 성능을 튜닝하는 것이 중요합니다.

참조 URL

– 최신 버전의 PHP-FPM(php-fpm 8.1)을 설치합니다.

https://scbyun.com/1206

– 최신 버전의 PHP-FPM(php-fpm 7.4)을 설치합니다.

https://scbyun.com/1080

– nginx php-fpm 통합 : https://scbyun.com/1175