php-fpm www.conf 설정 방법
PHP-FPM은 FastCGI 기반의 PHP 프로세스 관리 도구로, 웹 서버와 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 파일을 열어 설정을 변경합니다. 일반적으로 변경해야 하는 설정은 다음과 같습니다.
- user와 group: PHP-FPM 워커 프로세스가 실행될 때 사용될 유저와 그룹을 설정합니다. 일반적으로 웹 서버의 유저와 그룹과 동일하게 설정합니다.
user = www-data
group = www-data
- listen: 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 파일에서 설정할 수 있는 값은 다음과 같습니다.
- user와 group: PHP-FPM 워커 프로세스가 실행될 때 사용될 유저와 그룹을 설정합니다. 일반적으로 웹 서버의 유저와 그룹과 동일하게 설정합니다.
- listen: PHP-FPM 워커 프로세스와 웹 서버가 통신하는 방법을 설정합니다. 가장 일반적인 방법은 소켓 파일을 사용하는 것입니다. listen 값은 다음과 같이 설정할 수 있습니다.
- 소켓 파일: /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
'리눅스' 카테고리의 다른 글
우분투에서 레디스 센티널을 구성하는 방법 (0) | 2023.03.03 |
---|---|
Redis 스탠드얼론(Standalone), 센티널(Sentinel), 클러스터(Cluster) 구성 방법 (0) | 2023.03.03 |
Let's Encrypt SSL 인증서를 DNS(Domain Name System) 방식으로 발급하는 방법 (0) | 2023.03.01 |
Let's Encrypt에서 Certbot을 사용하여 SSL 인증서를 Standalone 모드로 발급받는 방법 (0) | 2023.03.01 |
Let's Encrypt SSL 인증서를 webroot 방식으로 발급하는 방법 (0) | 2023.03.01 |