PHP는 언제 지원이 끝나나요?
PHP는 각 버전(브랜치)마다 2년 활성 지원 + 2년 보안 지원을 받고, 그 뒤에는 EOL(End of Life — 공식 지원 종료)이 됩니다. EOL 이후에는 심각한 취약점이 나와도 공식 패치가 나오지 않습니다. 2026년 10월 PHP2Shell(CVE-2026-109618/109619) 긴급 패치도 8.2.35·8.3.36·8.4.27·8.5.12처럼 지원 중인 버전에만 나왔습니다.
지금 8.2로 올리는 것은 두 달짜리 해결책입니다. 같은 작업량이면 8.3 이상으로 가는 것이 합리적이고, 호스팅이 지원한다면 8.4도 좋습니다.
왜 오래된 PHP는 위험하고, 왜 아직 많이 남아 있나요?
오래된 PHP가 남는 이유는 대부분 “올리면 사이트가 깨질까 봐”입니다. 그누보드·제로보드 기반 사이트나 10년 전 외주로 만든 쇼핑몰은 PHP 5.x~7.x 문법으로 작성돼 있어, 서버 PHP만 올리면 화면이 하얗게 되거나 게시판이 안 열리는 일이 실제로 생깁니다. 그래서 호스팅사가 구버전을 계속 열어두고, 사이트 주인은 문제를 모른 채 운영합니다.
문제는 공격자에게 버전 정보가 쉽게 보인다는 점입니다. 응답 헤더(X-Powered-By)나 오류 화면에 버전이 노출되면 자동화된 스캐너가 지원 종료 버전을 골라 공격합니다. 사태 전체 맥락은 PHP2Shell 취약점 — 패치 vs 플러터 전환에 정리했습니다.
내 사이트 PHP 버전은 어떻게 확인하나요?
가장 쉬운 것은 호스팅 관리 화면의 PHP 버전 설정 메뉴입니다(카페24·가비아 등 대부분 제공). 서버에 접속할 수 있다면 아래 명령으로 확인합니다.
# 서버 터미널에서 (CLI 버전)
php -v
# 웹서버가 실제로 쓰는 버전 확인: 임시 파일을 만들고 브라우저로 연 뒤 꼭 삭제
echo '<?php echo PHP_VERSION;' > v.php
# 응답 헤더로 노출 여부 확인
curl -sI https://내도메인 | grep -i x-powered-by
PHP 8로 올리면 무엇이 깨지나요?
php.net의 8.0 마이그레이션 문서(하위 호환이 깨지는 변경 목록)에서 오래된 사이트에 영향이 큰 것만 추렸습니다. 7.4에서 8.x로 갈 때 가장 큰 고비가 8.0이고, 8.1~8.4는 상대적으로 변화가 작습니다.
| 변경 | 예전 동작 | PHP 8 이후 | 사이트 증상 |
|---|---|---|---|
| 함수 제거 | each(), create_function(), get_magic_quotes_gpc() 사용 가능 | 함수 자체가 없음 → 치명적 오류 | 게시판·로그인 화면이 하얗게 멈춤 |
| 숫자-문자열 비교 | 0 == "foo" 가 참 | 거짓 (숫자를 문자열로 바꿔 비교) | 권한·조건 분기가 다르게 동작 |
| 경고→에러 승격 | 객체 아닌 값에 속성 쓰기, count(배열 아님) 등은 경고 | Error·TypeError 발생 | 특정 페이지만 간헐적으로 오류 |
| 클래스명 생성자 | 클래스와 같은 이름 메서드가 생성자 | __construct()만 생성자 | 오래된 라이브러리 초기화 실패 |
| @ 오류 숨김 | @로 치명적 오류도 숨김 | 치명적 오류는 안 숨겨짐 | 숨어 있던 오류가 화면에 노출 |
| PDO 기본 오류 모드 | 조용히 실패 | 예외(Exception) 발생 | DB 오류 처리 없는 코드에서 중단 |
참고로 mysql_* 함수는 이미 PHP 7.0에서 제거됐습니다. 5.x 사이트라면 DB 접속 코드부터 mysqli·PDO로 바꿔야 해서 작업량이 훨씬 커집니다.
안전하게 올리는 순서는?
# 예: 코드에서 제거된 함수 사용처를 빠르게 찾기
grep -rnE "\beach\(|create_function\(|get_magic_quotes|mysql_query\(" --include=*.php .
버전업, 패치만 할까 새로 만들까 — 판단 기준
버전업(코드 수정)이 맞는 경우
- PHP 7.x 사이트, 오류가 수십 곳 이내
- 그누보드·워드프레스처럼 최신 버전이 PHP 8을 지원
- 기능은 지금 그대로면 충분
- 예산·일정이 짧음
재구축이 맞는 경우
- PHP 5.x + mysql_* 함수 전면 사용
- 원 개발사가 없고 코드 구조를 아는 사람이 없음
- 앱 연동·모바일 대응 등 기능 개편도 필요
- 보안 사고가 이미 한 번 있었음
낡은 PHP 플랫폼을 유지보수하며 겪은 것
저는 400여 개 단지가 쓰는 PHP 관리자 웹(MariaDB)과 리액트 네이티브 앱을 직접 유지보수하고 있고, 2026년 10월 PHP2Shell 사태 때는 운영 서버 버전 확인과 패치 대응을 직접 했습니다. 해 보니 버전업에서 시간이 가장 많이 드는 곳은 코드 수정 자체보다 “어떤 화면이 어디서 깨지는지 찾는 일”이었습니다. 관리자 화면 중 1년에 한 번 쓰는 정산·검침 메뉴처럼 평소에 안 열어보는 화면에서 오류가 늦게 발견되기 쉽습니다.
그래서 저는 스테이징에서 메뉴 전체 목록을 만들어 하나씩 체크하고, 전환 후 2주간 오류 로그를 매일 확인합니다. 이 체크리스트가 있으면 다음 버전업(8.3 → 8.4)은 훨씬 짧게 끝납니다.
직접 하기 어렵다면 — 맡기면 얼마·얼마나 걸리나
작업량은 PHP 출발 버전과 오류 개수에 따라 크게 달라서, 먼저 점검으로 범위를 확인한 뒤 견적을 드립니다. 아래는 일반적인 범위이며 경험 기반 대략치입니다.
| 출발 상태 | 작업 범위 | 기간(대략) | 진행 방식 |
|---|---|---|---|
| 7.4, 표준 CMS(그누보드·워드프레스) | CMS·플러그인 업데이트 + 소수 수정 | 며칠~1주 | 1회 점검(80만원~) 또는 유지보수 요금제 안에서 |
| 7.x, 외주 자체 개발 | 제거 함수·비교문 수정, 전 화면 점검 | 1~3주 | 점검 후 별도 견적 |
| 5.x + mysql_* | DB 접속 계층 교체 또는 재구축 검토 | 수주 이상 | 점검 후 버전업 vs 재구축 비교 견적 |
버전업 뒤에도 매년 새 버전이 나오므로, 월정액 유지보수(라이트 월 20만원~)에 PHP 지원 일정 관리를 넣어 두면 같은 일이 반복되지 않습니다. 웹사이트 기본 상태는 무료 진단 페이지(appmonster.co.kr/diagnosis)에서 먼저 확인할 수 있습니다.
Q&A — PHP 버전 업그레이드 자주 묻는 질문
PHP 7.4 아직 써도 되나요?
보안상 권하지 않습니다. 7.4는 2022년 11월 28일에 지원이 끝나 새 취약점이 나와도 공식 패치가 없습니다.
PHP 8.2로 올리면 충분한가요?
두 달짜리 해결책입니다. 8.2는 2026년 12월 31일에 보안 지원이 끝나므로 8.3 이상으로 올리는 것이 좋습니다.
PHP 버전만 올리면 사이트가 깨지나요?
7.x 이하 코드라면 깨질 가능성이 높습니다. 제거된 함수나 바뀐 비교 규칙 때문에 일부 화면이 멈출 수 있어 스테이징 점검이 필요합니다.
그누보드 사이트도 PHP 8로 올릴 수 있나요?
최신 그누보드는 가능합니다. 다만 오래된 버전·스킨·플러그인은 수정이 필요하니 그누보드 버전부터 확인하세요.
호스팅에서 PHP 버전을 바꿨다가 문제가 생기면 되돌릴 수 있나요?
대부분 되돌릴 수 있습니다. 호스팅 관리 화면에서 이전 버전으로 바꾸면 되지만, 그 사이 DB 변경이 있었다면 백업이 필요합니다.
PHP 버전업 비용은 얼마나 드나요?
출발 버전과 오류 수에 따라 다릅니다. 표준 CMS는 며칠, 자체 개발은 수주가 걸릴 수 있어 점검 후 견적이 정확합니다.
PHP 버전이 외부에 보이면 위험한가요?
공격 대상 선별에 쓰입니다. 응답 헤더의 X-Powered-By를 끄고 phpinfo 페이지를 지워 버전 노출을 막으세요.
출처
- PHP — Supported Versions (php.net)
- PHP — Unsupported Branches / EOL (php.net)
- PHP Manual — Migrating from PHP 7.4 to 8.0: Backward Incompatible Changes
우리 사이트 PHP, 올려도 되는지 먼저 점검받으세요
사이트 주소와 호스팅 정보를 카톡으로 보내주시면 현재 버전·노출 여부를 확인하고 버전업 vs 재구축 중 맞는 길을 알려드립니다.
문의: appmonster.kr@gmail.com
함께 보기: PHP2Shell 취약점 대응 · 그누보드 유지보수·보안 · 낡은 PHP 플랫폼 유지보수 사례 · 오래된 앱 보안 점검