명령줄에서 php -v를 실행하거나, 셸 접근 권한이 없다면 호스팅 패널이나 WordPress 사이트 건강 화면을 이용하십시오. PATH에 있는 버전이 아니라 실제로 웹사이트를 서비스하는 버전을 확인한 뒤, 지원 중인 브랜치와 비교하십시오.
정확한 버전이 중요한 이유
PHP 보안과 관련된 판단은 대부분 하나의 숫자에서 시작합니다. 어떤 취약점이 내 환경에 영향을 주는지, 사용 중인 브랜치가 여전히 수정 사항을 받는지, 플러그인이나 프레임워크가 정상적으로 동작할지는 모두 “PHP 8” 같은 표기가 아니라 8.3.36처럼 전체 버전 문자열에 달려 있습니다.
PHP 버전은 세 부분으로 구성됩니다.
| 구성 요소 | 예시 | 의미 |
|---|---|---|
| 메이저(Major) | 8 |
언어의 큰 변경으로, 기존 코드가 동작하지 않을 수 있음 |
| 마이너(Minor, 브랜치) | 8.3 |
자체 지원 수명 주기를 갖는 릴리스 라인 |
| 패치(Patch, 릴리스) | 8.3.36 |
해당 브랜치 내의 버그 및 보안 수정 |
마이너 버전은 현재 어떤 브랜치를 사용 중이며 얼마나 오래 지원되는지를 알려 줍니다. 패치 번호는 업스트림(upstream)에서 어떤 수정 사항이 포함되었는지를 알려 줍니다. 두 가지 모두 필요합니다.
방법 1: 명령줄
SSH 접근 권한이 있다면 가장 빠르고 정확한 방법입니다.
php -v
일반적인 출력은 다음과 같습니다.
PHP 8.3.36 (cli) (built: Oct 21 2026 10:12:44) (NTS)
Copyright (c) The PHP Group
Zend Engine v4.3.36, Copyright (c) Zend Technologies
with Zend OPcache v8.3.36, Copyright (c), by Zend Technologies
첫 번째 줄에는 버전과 SAPI(여기서는 cli)가 표시됩니다. 스크립트에서 활용하기 좋도록 버전 번호만 출력하려면 다음을 실행합니다.
php -r 'echo PHP_VERSION, PHP_EOL;'
로드된 php.ini와 컴파일된 확장 기능을 포함한 전체 설정 정보를 보려면 다음을 실행합니다.
php -i | head -n 20
php --ini
특정 확장 기능과 그 버전을 확인하려면 --ri를 사용합니다.
php --ri openssl
php --ri curl
CLI는 웹사이트가 사용하는 PHP가 아닐 수 있습니다
가장 흔히 저지르는 실수입니다. PATH에 있는 php 바이너리는 명령줄 인터프리터입니다. 웹사이트는 PHP-FPM, Apache 모듈, 또는 호스팅 패널에서 사이트별로 선택한 버전 등 전혀 다른 바이너리로 서비스될 수 있습니다. 서버에는 여러 PHP 버전이 나란히 설치되어 있는 경우가 많습니다.
설치된 버전을 확인합니다.
ls /usr/bin/php* /usr/sbin/php-fpm* 2>/dev/null
systemctl list-units --type=service | grep -i fpm
그런 다음 FPM 바이너리를 직접 확인합니다. 예를 들면 다음과 같습니다.
php-fpm8.3 -v
웹 서버가 어떤 FPM 풀(pool)과 통신하는지 알아보려면 사이트 설정에서 fastcgi_pass(nginx) 또는 SetHandler/ProxyPassMatch(Apache) 지시어를 확인하십시오.
location ~ \.php$ {
fastcgi_pass unix:/run/php/php8.3-fpm.sock;
}
방법 2: 임시 phpinfo() 페이지
명령을 실행할 수 없거나 웹 서버가 실제로 사용하는 버전을 확인하고 싶을 때는 phpinfo() 페이지로 바로 확인할 수 있습니다.
-
웹 루트에 추측하기 어려운 무작위 이름의 파일을 만듭니다. 예:
info-7f3k2q.php -
다음 한 줄을 추가합니다.
<?php phpinfo(); -
브라우저에서 파일을 엽니다. 페이지 상단에 버전이 표시되며, “Server API” 행에서 FPM/FastCGI로 실행되는지 Apache 모듈로 실행되는지 확인할 수 있습니다.
-
내용을 확인한 후 즉시 파일을 삭제합니다.
운영 중인 서버에 phpinfo() 파일을 남겨 두지 마십시오. 이 파일은 PHP 버전, 파일 경로, 로드된 확장 기능, 환경 변수, 그리고 경우에 따라 환경 변수로 전달된 자격 증명까지 노출합니다. 공격자는 info.php, phpinfo.php 같은 흔한 이름을 일상적으로 스캔합니다.
버전 번호만 필요하다면 더 작은 스크립트를 사용하는 편이 노출되는 정보가 훨씬 적습니다.
<?php echo PHP_VERSION;
이 파일 역시 확인이 끝나면 삭제하십시오.
방법 3: WordPress 사이트 건강
WordPress 5.2 이상에는 WordPress가 실제로 사용하는 PHP 버전을 보여 주는 사이트 건강(Site Health) 화면이 포함되어 있습니다.
- 관리자 계정으로 로그인합니다.
- **도구 → 사이트 건강(Tools → Site Health)**으로 이동합니다.
- 정보(Info) 탭을 엽니다.
- 서버(Server) 섹션을 펼칩니다.
PHP 버전, SAPI, 메모리 제한 및 기타 서버 정보를 확인할 수 있습니다. 버전이 오래된 경우 상태(Status) 탭에 경고가 표시될 수도 있습니다. WordPress 보안 강화 전반에 대해서는 WordPress 보안 개요를 참고하십시오.
방법 4: 호스팅 제어판
cPanel
호스팅 업체에 따라 cPanel은 다음 도구 중 하나 또는 둘 다를 제공합니다.
- MultiPHP Manager: 각 도메인과 해당 도메인에 할당된 PHP 버전을 보여 줍니다.
- Select PHP Version(CloudLinux): 현재 버전을 보여 주며, 버전을 변경하고 확장 기능을 켜고 끌 수 있습니다.
cPanel 홈 화면의 사이드바에도 PHP 버전이 표시될 수 있지만, 이는 도메인별 설정이 아니라 서버 기본값일 수 있습니다. 도메인별 화면에서 확인하십시오.
Plesk
Plesk에서는 Websites & Domains로 이동해 도메인을 선택한 후 PHP(경우에 따라 PHP Settings로 표시)를 엽니다. 이 페이지에서 PHP 버전과 핸들러(예: “FPM application served by nginx”)를 확인할 수 있습니다.
방법 5: 외부에서 HTTP 헤더로 확인
일부 서버는 응답 헤더에 PHP 버전을 표시합니다.
curl -sI https://example.com | grep -i x-powered-by
X-Powered-By: PHP/8.2.20
관리 중인 사이트를 점검할 때는 유용하지만, 동시에 문제이기도 합니다. 자동화된 스캐너를 포함한 모든 방문자에게 어떤 버전을 노려야 하는지 정확히 알려 주기 때문입니다. php.ini에서 이 기능을 끄십시오.
expose_php = Off
이후 PHP-FPM 또는 웹 서버를 재시작합니다. 웹사이트 보안 점검 도구는 사이트가 이 헤더를 노출하는지와 함께 다른 흔한 설정 문제도 알려 줍니다.
헤더가 없다고 해서 사용 중인 버전에 대해 알 수 있는 것은 없습니다. 많은 호스팅 업체가 이 헤더를 제거하며, 일부 프록시는 자체 헤더를 추가하기도 합니다.
결과 해석하기
버전 문자열을 확인했다면 다음 세 가지를 따져 보십시오.
- 해당 브랜치가 지원되고 있습니까? 마이너 버전을 공식 목록과 비교하십시오. 2026년 10월 기준으로 PHP 8.2부터 8.5까지는 최소한 보안 수정을 받고 있으며, 8.1, 8.0 및 모든 7.x 브랜치는 지원 종료(end of life) 상태입니다. 일정은 PHP 보안 지원 수명 주기 가이드에서 설명합니다.
- 해당 브랜치의 최신 릴리스입니까? 더 새로운 패치 릴리스가 있다면 수정 사항이 누락된 상태입니다. 예를 들어 2026-10-21에 PHP는 치명적인 취약점을 수정하기 위해 8.5.12, 8.4.27, 8.3.36, 8.2.35를 릴리스했습니다.
- 이 버전에 영향을 주는 알려진 CVE가 있습니까? PHP 버전 검사기에 버전을 입력하면 영향 범위에 해당 버전이 포함된 공개 취약점을 확인할 수 있습니다.
배포판 패키지에 관한 주의 사항
PHP를 Linux 배포판 저장소(Debian, Ubuntu, RHEL 및 그 파생 배포판)에서 설치했다면, 보안 수정이 적용되어 있더라도 버전 문자열은 오래된 것처럼 보일 수 있습니다. 배포판은 업스트림 버전 번호를 바꾸지 않고 패치를 백포트(backport)하는 경우가 많습니다. 8.1.2-1ubuntu2.x 같은 문자열에는 업스트림 8.1.2보다 훨씬 나중에 릴리스된 수정 사항이 포함되어 있을 수 있습니다.
PatchScope의 검사기는 업스트림 버전 번호를 기준으로 평가하므로, 배포판 패키지의 경우 그 결과는 최종 판정이 아니라 출발점입니다. 패키지로 설치한 환경의 패치 상태를 확인하려면 PHP 보안 패치 설치 여부 확인 방법을 따르십시오.
빠른 참조
| 상황 | 명령 또는 위치 |
|---|---|
| SSH 접근 가능 | php -v, php-fpm8.x -v |
| 버전 번호만 필요 | php -r 'echo PHP_VERSION;' |
| 확장 기능 상세 정보 | php --ri <extension> |
| 셸 접근 불가 | 임시 phpinfo() 파일(사용 후 삭제) |
| WordPress 5.2+ | 도구 → 사이트 건강 → 정보 → 서버(Tools → Site Health → Info → Server) |
| cPanel | MultiPHP Manager 또는 Select PHP Version |
| Plesk | Websites & Domains → PHP |
| 외부 확인 | curl -sI 실행 후 X-Powered-By 확인 |