DEV WIKI
백엔드 · 문제 해결 가이드

PHP 업그레이드 뒤 기존 사이트에 오류가 생겼어요

PHP 업그레이드 뒤 기존 사이트가 깨질 때 버전·오류 원문·파일·줄·실행 환경을 비교하는 가이드입니다.

빠른 답변

PHP 업그레이드 뒤 오류가 생기면 이전·현재 PHP 버전, 웹 서버가 실제 사용하는 PHP 실행 환경, 오류 원문·파일·줄을 기록한 뒤 해당 호환성 변경을 확인해야 합니다. 운영 코드 전체를 한 번에 바꾸거나 버전을 즉시 되돌리지 않습니다.

적용 범위
이 가이드의 시작 증상과 각 분기 조건이 일치하는 경우
출처
PHP
출처 확인일
2026-07-27
최종 검토
2026-08-05
수정일
2026-08-05
대상
사이트 운영자, 웹 에이전시, 프리랜서
오류·수정 제보 (새 창에서 열림)

이 가이드가 맞는 경우

  • 애플리케이션 오류 메시지

상황별 다음 단계

호스팅사·개발자에게 전달할 내용

변경 전 기록

  • 업그레이드 전후 PHP 버전, 오류 원문, 파일과 줄 번호, 재현 URL을 전달합니다.
  • 실제 고객 데이터, 비밀키, 세션 값, 전체 운영 소스는 전달하지 않습니다.

알아둘 점

“PHP 8 전환 후 Fatal error”, “오래된 PHP 사이트 업그레이드 장애”로 검색하는 상황에서 사용합니다. PHP CLI 버전과 웹 요청을 처리하는 PHP-FPM·Apache·IIS 버전이 다를 수 있으므로 실제 요청 환경을 기록합니다.

먼저 기록할 것

  1. 업그레이드 전후 PHP 버전·실행 방식·웹 서버를 기록합니다.
  2. 오류 원문·파일·줄 번호·재현 URL·HTTP 상태를 기록합니다.
  3. 플러그인·테마·확장 모듈·ini 설정의 변경 범위를 기록합니다.
  4. 실제 고객 데이터·비밀키·세션 값·전체 운영 소스는 전달 자료에 포함하지 않습니다.
관찰값다음 문서
PHP 7에서 Parse error: syntax error, unexpected 'new' (T_NEW)PHP 7 unexpected new 오류
set_exception_handlerException 타입 선언 뒤 fatal errorPHP 예외 처리기 타입 오류
PHP 8에서 count()에 Countable이 아닌 값 전달PHP 8 count 비호환 TypeError
PHP 8에서 문자열 오프셋을 배열 키처럼 사용PHP 8 문자열 오프셋 TypeError

수정 후 재확인

  1. 복사본 또는 스테이징에서 한 변경만 적용하고 동일 URL·기능을 다시 실행합니다.
  2. PHP 오류 로그·HTTP 상태·핵심 기능 결과가 함께 정상인지 확인합니다.
  3. 다른 플러그인·테마·관리자 기능의 회귀 여부를 확인한 뒤 운영 반영 여부를 결정합니다.

같은 상황의 가이드

참고 자료

PHP: Backward incompatible changes - Manual (새 창에서 열림)

PHP · 공식 자료 · 확인 범위: PHP 7에서는 new 결과의 참조 대입을 허용하지 않습니다., PHP 7의 Error 객체 변경은 Exception 타입 선언을 쓴 set_exception_handler 처리기에서 치명적 오류를 만들 수 있습니다. · 확인일: 2026-07-27