서버를 바꾸면서 PHP 버전/설정이 달라져서 “Strict Standards”가 화면에 출력되는 경우가 대부분입니다. 요지는 “에러가 새로 생겼다”기보단, 예전엔 숨겨져 있던(또는 낮은 레벨이었던) 경고가 이제는 표시되는 거예요.
왜 뜨나요?
- PHP 버전 차이: PHP 5.x 시절엔
E_STRICT(Strict Standards)가 자주 보였고, 오래된 라이브러리/프레임워크에서 특히 많이 발생합니다.
- error_reporting 설정 차이: 새 서버에서
error_reporting에 E_STRICT가 포함되어 있거나, display_errors=On이라서 화면에 노출됩니다.
-
대표 원인(흔한 패턴)
해결 방법(권장 순서)
-
코드를 수정(근본 해결) Strict Standards가 가리키는 파일/라인을 보고 해당 메서드 시그니처를 부모/인터페이스와 동일하게 맞춥니다. (장기적으로 제일 안전)
-
운영 환경에선 화면 출력만 끄기(노출 방지) 운영에서 화면에 경고가 줄줄 나오면 보안/UX에 안 좋아서 보통 이렇게 합니다.
-
php.ini 또는 vhost에서:
display_errors = Off
log_errors = On (로그로만 남김)
-
Strict만 숨기기(임시방편) 코드 수정이 당장 어렵다면:
다만 이건 “안 보이게만” 하는 거라, 추후 업그레이드 시 더 큰 문제로 이어질 수 있어요.
원하시면 더 정확히 짚어드릴게요. Strict Standards 메시지 중 2~3줄만(첫 줄의 파일/라인 포함) 그대로 붙여주시면, 어떤 케이스(메서드 선언 불일치인지, 라이브러리 문제인지)인지 바로 설명해드릴게요.