PHP-fpm과 mod_php의 차이점 정리 (PHP 동작 원리와 웹서버 구조 설명)

urdepone·2026년 2월 26일

PHP

목록 보기
9/9
post-thumbnail

PHP는 어떻게 실행될까?

웹 브라우저에서 PHP 페이지를 요청하면, 단순히 파일이 실행되는 것이 아니라 웹서버와 PHP 실행 엔진이 협력하여 동작하게 됩니다.

이 글에서는 PHP가 웹서버를 통해 실행되는 구조와 php-fpm, mod_php의 차이를 정리해보겠습니다.


1. PHP는 왜 웹서버와 분리되어 있을까?

PHP는 독립적으로 실행되는 서버가 아닙니다.
반드시 웹서버를 통해 요청을 받아 실행됩니다.

기본 구조는 아래와 같습니다.

[Client]
    ↓ HTTP Request
[Web Server]
    ↓ PHP 실행 요청
[PHP Engine]
    ↓ 실행 결과 반환
[Web Server]
    ↓ HTTP Response
[Client]

여기서 핵심 질문은 이것입니다.

웹서버가 PHP를 어떻게 실행시키는가?

그 방법이 바로 mod_phpphp-fpm입니다.


2. mod_php란 무엇인가요?

구조

mod_php는 Apache 내부에 PHP 모듈을 직접 탑재하는 방식으로 Apache 프로세스 안에 PHP가 같이 로드됩니다.

특징

  • Apache 전용
  • 설정이 비교적 간단함
  • 별도의 PHP 프로세스를 따로 두지 않는다

단점

(1) 메모리 사용량 증가

Apache 프로세스마다 PHP가 함께 로드되기 때문에
트래픽이 많아질수록 메모리 사용량이 증가합니다.

Apache 프로세스 수 증가
↓
PHP 메모리 중복 로드
↓
메모리 사용량 급증
(2) 정적 파일 처리도 PHP가 상주

CSS, JS 같은 정적 파일 요청에도 PHP가 메모리에 함께 로드됩니다.

(3) Nginx에서 사용 불가

mod_php는 Apache 전용 방식이기 때문에 Nginx에서는 사용할 수 없습니다.


3. php-fpm이란?

FPM = FastCGI Process Manager

php-fpm은 PHP를 별도의 프로세스로 실행하고,
웹서버(Nginx 또는 Apache)와 FastCGI 방식으로 통신합니다.

구조(Nginx 기준)

Client
   ↓
Nginx (정적 파일 처리)
   ↓ FastCGI
php-fpm
   ↓
PHP Worker Process
   ↓
Response

여기서 가장 중요한점은

웹서버와 PHP가 완전히 분리되어있다는 것

즉, 웹서버는 요청을 받아 전달만 하고,
실제 PHP 실행은 php-fpm이 담당합니다.


4.php-fpm 특징

  • Nginx와 함께 많이 사용됨
  • 프로세스 풀(Process Pool) 관리 가능
  • 동시 요청 처리에 효율적
  • 메모리 관리에 유리함
  • 현대적인 서버 구조에 적합

5. mod_php vs php-fpm 비교 정리

구분mod_phpphp-fpm
실행 방식Apache 모듈FastCGI
웹서버Apache 전용Nginx/Apache
메모리높음효율적
확장성낮음높음
현대적 환경부적합적합

php-fpm과 mod_php의 가장 큰 차이점은 PHP를 웹서버 내부에서 실행하느냐, 별도 프로세스로 실행하느냐에 있습니다.


6. 실제 운영 환경에서는?

현재는 대부분 다음 구조를 사용합니다.

  • Nginx + php-fpm
  • Apache + php-fpm
    mod_php는 비교적 과거 방식에 가깝고,
    현대적인 운영 환경에서는 php-fpm이 표준처럼 사용됩니다.

7. 정리

  • PHP는 웹서버를 통해 실행된다.
  • mod_php는 Apache 내부 실행 방식이다.
  • php-fpm은 별도 프로세스 풀 관리 방식이다.
  • 현재 운영 환경에서는 php-fpm이 더 많이 사용된다.
profile
Back-end이기도 Front-end이기도 한 Full-stack Developer🚀

0개의 댓글