PHP 7.3.22 업데이트 — 한국 Laravel 개발자 영향 분석
작성: 라라벨 코리아 (초안)
발행: 2026년 8월 6일
## 요약
요약
PHP 7.3.22가 2020년 9월 3일 릴리스되었습니다. 이번 버전은 Core, OPcache, PDO, Standard 라이브러리 등 다양한 영역에서 버그 수정이 이루어졌으며, 특히 array_merge_recursive() 크래시, realpath() 오동작, XML 파서 크래시 등 실무에서 마주칠 수 있는 안정성 문제들이 해결되었습니다. PHP 7.3 브랜치를 사용 중인 팀이라면 즉시 업그레이드를 권장합니다.
핵심 내용
Core 버그 수정
-
#79919—define()에서 스택 use-after-scope 문제 수정 상수 정의 시 특정 상황에서 스택 메모리를 잘못 참조하는 문제가 있었습니다. 예측 불가능한 동작이나 크래시로 이어질 수 있어 주의가 필요합니다. -
#79934— Heredoc에서 CRLF 전용 라인이 파싱 오류를 일으키는 문제 수정 Windows 환경에서 작성된 소스 파일이나 CRLF 줄바꿈이 혼재된 프로젝트에서 Heredoc 문법이 파싱 오류를 발생시키는 버그였습니다. Windows + Laravel 개발 환경을 사용하는 팀에게 직접적인 영향을 줄 수 있는 수정입니다. -
#77932— 파일 확장자 대소문자 구분 문제 수정 대소문자를 구분하지 않아야 하는 상황에서 파일 확장자가 대소문자를 구분하던 버그입니다. 파일 업로드 유효성 검사나 MIME 타입 처리 로직에 영향을 줄 수 있습니다. -
#79806—realpath()가 심볼릭 링크를 잘못 해석하는 문제 수정 심볼릭 링크가 또 다른 링크를 가리킬 때realpath()가 올바른 경로를 반환하지 못하는 버그입니다. Laravel의 스토리지 디렉터리나 Valet의 심볼릭 링크 기반 구조에서 예상치 못한 경로 오류가 발생할 수 있었습니다.
Standard 라이브러리
-
#79930—array_merge_recursive()가 단일 레퍼런스 배열과 함께 호출 시 크래시 수정 Laravel 컬렉션이나 설정 병합 과정에서array_merge_recursive()를 내부적으로 활용하는 경우, 특정 조건에서 PHP 프로세스가 크래시될 수 있었습니다. -
#79951—str_replace()에서 빈 문자열 처리 시 메모리 누수 수정 반복적인 문자열 치환 작업(예: Blade 템플릿 컴파일, 문자열 처리 미들웨어)에서 장기 실행 시 메모리가 지속적으로 증가할 수 있는 원인이 해결되었습니다. -
#79944— Alpine Linux에서getmxrr()이 항상true를 반환하는 문제 수정 Docker 기반 Laravel 프로젝트에서 Alpine Linux 이미지를 사용할 경우 이메일 MX 레코드 검증이 항상 성공으로 처리되던 심각한 버그입니다. 이메일 유효성 검사 기능에 의존하는 서비스라면 반드시 확인이 필요합니다.
OPcache
#73060— 임시 폴더가 정리된 후 PHP 실패 문제 수정 OPcache가 임시 디렉터리에 의존하는 과정에서, 해당 디렉터리가 시스템에 의해 정리(cleanup)된 후 PHP가 실패하는 문제입니다. 장기 운영 서버나 Docker 컨테이너 재시작 없이 장시간 구동되는 환경에서 나타날 수 있었습니다.
PDO
#64705—PDO::__construct()실패 시PDOException의errorInfo속성이null인 버그 수정 데이터베이스 연결 실패 시 예외의errorInfo가null로 반환되어 오류 진단이 어려웠던 문제입니다. Laravel의 DB 연결 실패 디버깅이 보다 명확해집니다.
XML
#79922—xml_parser_free()다중 호출 후 크래시 수정 XML 파서를 반복적으로 해제하는 코드 패턴에서 발생하는 크래시 버그입니다. XML 기반 외부 API 연동이나 RSS 피드 처리 라이브러리를 사용하는 경우 해당됩니다.
LDAP
- 메모리 누수 수정 LDAP 관련 메모리 누수가 패치되었습니다. 사내 LDAP/AD 인증을 사용하는 Laravel 애플리케이션에 긍정적인 영향을 줍니다.
한국 Laravel 개발자에게 미치는 영향
호환성 및 마이그레이션
- PHP 7.3.22는 7.3 브랜치 내 패치 릴리스로, 하위 호환성이 유지됩니다. Laravel 6.x, 7.x를 PHP 7.3으로 운영 중인 팀은 코드 변경 없이 업그레이드할 수 있습니다.
- PHP 7.3은 2021년 12월 공식 지원이 종료된 브랜치입니다. 이 글의 릴리스 시점(2020년 9월)을 기준으로 보면 아직 Active Support 기간이었으나, 현재 시점에서 PHP 7.3을 사용 중이라면 PHP 8.1 이상으로의 마이그레이션을 최우선 과제로 삼아야 합니다.
Docker / Laravel Sail 사용자
- Alpine Linux 기반 이미지 사용자는
getmxrr()버그(#79944) 수정의 직접적인 수혜자입니다. 이메일 MX 레코드 검증이 무조건 통과하던 문제가 수정되었으므로, 업그레이드 후 이메일 유효성 검사 로직이 이전과 다르게 동작할 수 있습니다. 스테이징 환경에서 반드시 이메일 검증 관련 테스트를 재확인하세요. realpath()버그(#79806) 수정은 Laravel Sail이나 Docker 볼륨 마운트 환경에서 심볼릭 링크를 활용하는 경우 경로 처리 안정성을 개선합니다.- Docker 이미지의 PHP 버전을 고정(
php:7.3.21-fpm등)하여 사용 중이라면php:7.3.22-fpm으로 명시적으로 업데이트하거나,php:7.3-fpm태그를 사용하여 자동으로 최신 패치를 수신하는 전략을 검토하세요.
Laravel Valet 사용자 (macOS)
- Valet은 심볼릭 링크 기반으로 사이트를 관리하므로,
realpath()버그(#79806) 수정이 긍정적으로 작용합니다. - Homebrew를 통해 PHP를 관리하는 경우
brew upgrade php@7.3명령으로 업그레이드할 수 있습니다. (단, Homebrew의 배포 시점에 따라 즉시 반영되지 않을 수 있습니다.)
보안 관련 참고
- 7.3.22 자체 변경 로그에는 CVE가 명시된 보안 수정이 포함되어 있지 않습니다. 그러나 직전 버전들(7.3.21의
CVE-2020-7068, 7.3.17의CVE-2020-7067, 7.3.16의 CVE 다수 등)에서 여러 보안 취약점이 수정되었습니다. 7.3.15 이하 버전을 사용 중이라면 보안상 즉시 업그레이드가 필요합니다.
실무 체크리스트
로컬 개발 환경
- 현재 PHP 버전 확인:
php -v - Homebrew(macOS):
brew upgrade php@7.3또는brew upgrade php - phpenv / phpbrew 사용 시:
phpenv install 7.3.22후 전환 - Docker 사용 시:
Dockerfile의 베이스 이미지를php:7.3.22-fpm또는php:7.3-fpm으로 업데이트 후 이미지 재빌드
# Docker 이미지 재빌드 예시docker compose build --no-cachedocker compose up -d스테이징 환경
- PHP 업그레이드 후
php -m으로 주요 익스텐션(pdo_mysql, mbstring, opcache 등) 정상 로드 확인 - Laravel 애플리케이션 캐시 초기화:
php artisan config:clearphp artisan cache:clearphp artisan view:clearphp artisan route:clear - OPcache 재시작 확인 (PHP-FPM 재시작 또는 웹서버 재시작)
- 이메일 MX 레코드 검증 기능 사용 시: Alpine 기반 환경에서
getmxrr()동작 변경 여부 테스트 - Heredoc 문법 사용 코드가 CRLF 줄바꿈으로 저장된 경우 파싱 정상 여부 확인 (특히 Windows에서 작성된 파일)
-
array_merge_recursive()를 사용하는 설정 병합 또는 유틸리티 함수 동작 테스트 - PHPUnit 테스트 스위트 전체 실행 후 결과 확인
프로덕션 환경
- 패키지 매니저(apt, yum 등)를 통한 업그레이드 또는 공식 PHP 빌드 적용:
# Ubuntu/Debian (ondrej/php PPA 사용 시) sudo apt update && sudo apt upgrade php7.3 # 또는 PHP-FPM 서비스 재시작 sudo systemctl restart php7.3-fpm - PHP-FPM 재시작 후 프로세스 상태 확인:
sudo systemctl status php7.3-fpm - 웹서버(Nginx/Apache) 상태 이상 여부 모니터링 (오류 로그 확인)
- 배포 후 에러 모니터링 도구(Sentry, Bugsnag 등)에서 신규 오류 급증 여부 관찰 (최소 1시간)
- LDAP 인증 사용 시: 메모리 사용량 변화 모니터링 (메모리 누수 수정 효과 확인)
-
php -i | grep -E "(PHP Version|OPcache)"로 업그레이드 및 OPcache 활성화 상태 최종 검증
⚠️ 참고: PHP 7.3은 현재(2024년 기준) 공식 보안 지원이 종료된 버전입니다. 7.3.22로의 업그레이드는 단기 안정화 조치로만 활용하고, PHP 8.1 이상 + Laravel 최신 버전으로의 마이그레이션 계획을 수립하시기 바랍니다.