업데이트phplaravel업데이트
PHP 7.3.7 업데이트 — 한국 Laravel 개발자 영향 분석
작성: 라라벨 코리아 (초안)
발행: 2026년 8월 6일
## 요약
요약
PHP 7.3.7이 2019년 7월 4일 릴리스되었습니다. 이번 버전은 MySQLnd의 랜덤 세그멘테이션 폴트, Opcache 표현식 평가 오류, Sodium 함수의 세그멘테이션 폴트 등 프로덕션 안정성에 직접 영향을 미치는 다수의 버그를 수정합니다. PHP 7.3 계열을 운영 중인 Laravel 프로젝트라면 즉시 업그레이드를 검토해야 합니다.
핵심 내용
🔴 프로덕션 안정성에 직접 영향 — 세그멘테이션 폴트 수정
이번 릴리스에서 가장 주목해야 할 수정 사항은 실제 서비스 중단으로 이어질 수 있는 세그멘테이션 폴트(segfault) 관련 버그들입니다.
- MySQLnd
#77955: php-fpm 환경에서 랜덤하게 발생하는 세그멘테이션 폴트 수정. Laravel 애플리케이션의 대다수가 php-fpm + MySQL 조합을 사용하므로, 원인 불명의 프로세스 재시작이 발생했다면 이 버그가 원인일 가능성이 있습니다. - DOM
#78025:DOMDocumentType프로퍼티 접근 시 세그멘테이션 폴트 수정. XML/HTML 파싱을 수행하는 Laravel 패키지 사용 시 영향받을 수 있습니다. - Sodium
#78114:eval()내부에서sodium_*함수 호출 시 세그멘테이션 폴트 수정. - phpdbg
#78050: opcache와 함께 파일을 두 번 include할 때 발생하는 세그멘테이션 폴트 수정.
🟠 데이터베이스 관련 수정 — MySQLi
#77956:mysqli.allow_local_infile = Off설정 시 의미 있는 오류 메시지 제공. PHP 7.3.3부터 LOCAL INFILE이 기본적으로 비활성화된 것과 연관된 개선 사항입니다.#38546:bindParam()의bool타입 처리 오류 수정. Laravel Eloquent 또는 Query Builder에서 PDO를 통해 boolean 값을 바인딩할 때 잘못된 동작이 발생할 수 있었습니다.
🟠 Opcache 관련 수정 — 성능 및 정확성
#78015: SCCP(Sparse Conditional Constant Propagation) 최적화에서 부분 배열을 포함하는 표현식의 잘못된 평가 수정. Opcache가 활성화된 환경에서 특정 PHP 코드가 예상과 다른 결과를 반환할 수 있었습니다.#78106: 요청 중 Opcache가 비활성화된 경우 경로 분석 실패 수정.
🟡 기타 주요 수정 사항
- Core
#76980: autoloader가 예외를 던질 때 인터페이스가 건너뛰어지는 버그 수정. Laravel의 PSR-4 오토로딩 환경에서 예외 처리 흐름에 영향을 줄 수 있었습니다. - Sockets
#78038:socket_select()가 참조를 포함한 리소스 배열에서 실패하는 버그 수정. Laravel Octane, ReactPHP, 또는 소켓 기반 큐 워커 사용 시 관련될 수 있습니다. - Standard
#77135:extract()함수에서EXTR_SKIP사용 시$this를 건너뛰어야 하는 동작 수정. - Standard
##77937:preg_match()실패 버그 수정. Laravel의 라우팅 및 유효성 검사는 내부적으로 정규식을 광범위하게 사용하므로 주의가 필요합니다.
📋 7.3.6 이전 버전의 누적 보안 수정 (참고)
7.3.7 릴리스 노트에는 이전 버전의 변경 이력도 포함되어 있습니다. 7.3.6 이하를 사용 중이라면 아래 CVE도 함께 해결됩니다.
| CVE | 영향 컴포넌트 | 설명 |
|---|---|---|
| CVE-2019-11040 | EXIF | heap-buffer-overflow |
| CVE-2019-11038 | GD | 초기화되지 않은 읽기 |
| CVE-2019-11039 | Iconv | 정수 오버플로로 인한 범위 초과 읽기 |
| CVE-2019-11036 | EXIF | heap-buffer-overflow |
| CVE-2019-11034 | EXIF | heap-buffer-overflow |
| CVE-2019-11035 | EXIF | heap-buffer-overflow |
한국 Laravel 개발자에게 미치는 영향
호환성
- PHP 7.3.7은 7.3.x 계열 내 패치 버전이므로 하위 호환성이 유지됩니다.
composer.json의 PHP 버전 제약 조건("php": "^7.3"등)을 변경할 필요가 없습니다. - Laravel 5.8 및 Laravel 6.x는 PHP 7.3을 공식 지원하며, 이번 업그레이드는 코드 변경 없이 적용 가능합니다.
마이그레이션 노력
- 낮음. 런타임(PHP 바이너리)만 교체하면 됩니다. 애플리케이션 코드 수정은 불필요합니다.
보안 긴급도
- 7.3.6 이하를 사용 중이라면 긴급입니다. 사용자 이미지 업로드를 처리하는 서비스(GD, EXIF 취약점)나 문자열 인코딩 처리(Iconv CVE)가 포함된 Laravel 애플리케이션은 공격 대상이 될 수 있습니다.
- 이미 7.3.6을 사용 중이라도 MySQLnd 세그멘테이션 폴트(
#77955) 및 Opcache 오류(#78015) 수정을 위해 빠른 업그레이드를 권장합니다.
로컬 개발 환경 별 적용 방법
Laravel Valet (macOS, Homebrew)
brew upgrade php# 또는 특정 버전이 설치된 경우brew upgrade php@7.3valet restartphp -v # 버전 확인Laravel Sail (Docker)
docker/8.x/Dockerfile또는 커스텀 Dockerfile에서 베이스 이미지 태그를 확인합니다.php:7.3-fpm이미지를 사용하는 경우, Docker Hub에서 최신 이미지를 pull하면 7.3.7이 포함될 수 있습니다. (이미지 빌드 시점에 따라 다를 수 있으므로php -v로 반드시 확인)
docker compose pulldocker compose build --no-cachedocker compose up -ddocker compose exec laravel.test php -v서버 직접 운영 (Ubuntu/Debian — ondrej/php PPA)
sudo apt-get updatesudo apt-get upgrade php7.3php -vsudo systemctl restart php7.3-fpm서버 직접 운영 (CentOS/RHEL — Remi's RPM)
sudo yum update php73php -vsudo systemctl restart php-fpm⚠️ 불확실성 안내: 특정 패키지 저장소에서 7.3.7 패키지의 제공 시점은 배포판 및 저장소 관리자에 따라 다를 수 있습니다. 설치 후 반드시
php -v로 버전을 확인하세요.
실무 체크리스트
로컬 환경
-
php -v명령어로 현재 PHP 버전 확인 - Homebrew 또는 Docker 이미지를 통해 PHP 7.3.7로 업데이트
-
php artisan serve또는 Valet/Sail로 애플리케이션 정상 구동 확인 -
php artisan test또는./vendor/bin/phpunit으로 전체 테스트 스위트 실행 - MySQLi/PDO 연동 테스트 — 특히
bindParam()에 boolean 값을 전달하는 코드 확인
스테이징 환경
- PHP 업그레이드 후
php artisan config:clear && php artisan cache:clear실행 - Opcache 관련 설정 확인 (
opcache.enable,opcache.validate_timestamps) -
php artisan queue:work등 큐 워커 재시작 후 정상 동작 확인 - 이미지 업로드/처리 기능이 있는 경우 EXIF/GD 관련 기능 회귀 테스트
-
preg_match()또는 정규식 기반 유효성 검사 규칙 동작 확인 (#77937수정 관련) - php-fpm 재시작 후 로그에 세그멘테이션 폴트 오류가 사라졌는지 확인
프로덕션 환경
- 서버 패키지 매니저를 통해 PHP 7.3.7 패키지 가용 여부 확인 (
apt-get changelog php7.3또는yum info php73) - 블루/그린 배포 또는 카나리 배포 전략으로 단계적 적용 권장
- PHP-FPM 무중단 재시작 적용 (
sudo systemctl reload php7.3-fpm—restart대신reload사용) - 배포 후 APM(New Relic, Datadog, Sentry) 또는 서버 로그에서 오류율 모니터링
-
php -v및php -m으로 업그레이드된 버전 및 익스텐션 목록 최종 확인 - 롤백 계획 수립 — 이전 PHP 패키지 버전 또는 Docker 이미지 태그를 기록해 두기