워드프레스 VPS 속도 개선과 서버 다운 방지 PHP-FPM 최적화 및 설정 점검 가이드
워드프레스 사이트를 VPS에서 운영하면서 하루 방문자가 1만 명 미만인데도 서버가 자주 다운된다면, 단순한 트래픽 문제가 아닌 서버 내부 설정과 리소스 관리 이슈일 가능성이 높습니다. 특히 PHP 핸들러가 기본값인 suphp
또는 cgi
상태로 운영되고 있다면 PHP 처리 효율이 낮아 병목이 발생할 수 있습니다.
그럼 PHP-FPM
전환과 함께 워드프레스 운영 중 자주 발생하는 서버 다운 원인을 근본적으로 해결할 수 있는 방법을 정리해보겠습니다.
자주 놓치는 서버 다운 원인 점검 리스트
1. PHP 핸들러 설정 미흡
suphp
또는 cgi
방식은 요청마다 PHP 프로세스를 새로 띄우기 때문에 리소스를 과도하게 소모합니다.
PHP-FPM
은 미리 생성된 PHP 프로세스를 재사용해 훨씬 효율적인 요청 처리가 가능하며, mod_mpm_event
, mod_proxy_fcgi
와 조합해 성능을 극대화할 수 있습니다.
2. WP-Cron 과다 실행 문제
워드프레스는 기본적으로 사용자 접속 시마다 wp-cron.php
를 실행합니다.
특히 방문자가 많아질수록 서버 과부하가 발생할 수 있으므로 다음과 같이 설정 변경이 필요합니다:
# wp-config.php에 아래 추가
define('DISABLE_WP_CRON', true);
그리고 VPS의 crontab에 다음을 추가
*/5 * * * * wget -q -O - https://도메인주소/wp-cron.php?doing_wp_cron >/dev/null 2>&1
3. 플러그인 과다 또는 충돌
기능이 중복되거나 무거운 플러그인이 다수 설치되어 있으면 데이터베이스 부하가 증가합니다.
특히 Wordfence
, Broken Link Checker
, Query Monitor
는 리소스 사용이 높기 때문에 필요에 따라 비활성화하거나 대체하는 것이 좋습니다.
4. MySQL 병목 현상
트래픽이 몰릴 때 MySQL 쿼리가 지연되어 전체 사이트가 느려질 수 있습니다. 다음 항목을 점검해보세요:
/var/lib/mysql
디렉터리 용량 확인slow query log
활성화- 캐시 사용 여부 (예: Redis, Object Cache Pro 등)
5. Apache 단독 구조의 한계
Nginx나 LiteSpeed와 같은 웹서버가 Apache보다 정적 콘텐츠 처리에 효율적입니다.
그렇기 때문에 가능하다면 리버스 프록시로 nginx를 도입하거나, LiteSpeed 기반으로 변경하는 것도 방법입니다.
6. 메모리 부족 및 Swap 과부하
free -m
명령어로 메모리 사용 상태를 확인하세요. 사용 가능한 RAM이 200MB 이하이고, Swap이 1GB 이상 사용 중이라면 서버가 자주 다운될 수 있습니다.
PHP-FPM 구성 및 최적화 방법
1. mod_proxy_fcgi 및 mpm_event 모듈 설치
EasyApache4에서 다음 Apache 모듈을 설치하세요.
mod_proxy
mod_proxy_fcgi
mod_mpm_event
(기존mpm_worker
제거됨)
2. PHP-FPM 패키지 설치
yum install ea-php83-php-fpm
WHM > EasyApache4 > PHP Extensions에서 각 PHP 버전에 맞는 FPM 패키지 설치
참고 : PHP FPM 패키지 설치방법
3. Apache 핸들러 설정 변경
/usr/local/cpanel/bin/rebuild_phpconf \
--default=ea-php83 \
--ea-php83=fpm \
--ea-php82=suphp \
--ea-php81=suphp \
--ea-php80=suphp
설정 확인
/usr/local/cpanel/bin/rebuild_phpconf --current
4. FPM 설정 리빌드 및 적용
/usr/local/cpanel/scripts/php_fpm_config --rebuild
5. 도메인별 PHP-FPM 상태 확인
/usr/local/cpanel/scripts/php_fpm_config --check
Status is Good MTIME CORRECT
메시지가 출력되면 정상입니다.
서버 튜닝 제안
항목 | 추천 설정 |
---|---|
PHP 핸들러 | PHP-FPM |
Apache MPM | mod_mpm_event |
PHP-FPM max_children | 20~40 (사이트 수/트래픽 기준) |
MySQL InnoDB Buffer Pool | RAM의 50~70% |
Object Cache | Redis 사용 권장 |
Page Cache | LiteSpeed Cache 또는 WP Super Cache |
CDN | Cloudflare 무료 플랜으로도 충분 |
FAQ
Q. PHP-FPM 설정했는데 suphp로 나온다?
EasyApache4에서 모듈 설치 후 rebuild_phpconf
명령어로 설정 갱신을 해야 변경됩니다.
Q. phpinfo에서는 CLI라고 나오는데 정상인가요?
터미널에서의 php -i
는 CLI 모드입니다. 웹서버에서 적용된 핸들러는 phpinfo()
로 웹에서 확인해야 합니다.
Q. 캐시 플러그인과 PHP-FPM은 같이 써도 되나요?
네. PHP-FPM은 서버단 처리 최적화, 캐시 플러그인은 워드프레스 내부 캐시로 상호 보완적인 구조입니다.
Q. 자주 서버가 다운되는데 원인이 뭔가요?
메모리 부족, wp-cron 과다 실행, 플러그인 충돌, PHP 핸들러 설정 미비, MySQL 병목 등이 주된 원인입니다.