PHP는 사실상 무한한 호출 스택을 지원합니다. 그러나 Zend 엔진에서 제공하는 함수 호출 후크 zend_execute_ex (PHP 5.4에서 zend_execute로 이름 지정)는 기본 C 스택을 사용하여 PHP 메서드와 함수를 호출합니다. 이는 PHP의 호출 스택이 더 깊어지면 스택 오버플로를 일으킬 수 있습니다.

ddtrace 버전 0.48.0부터 PHP 트레이서 프로그램은 PHP 5의 zend_execute_ex 후크를 사용합니다. PHP 트레이서 프로그램은 호출 스택이 512 프레임 깊이에 도달하면 경고를 표시합니다. 환경 변수 DD_TRACE_WARN_CALL_STACK_DEPTH=0을 설정하여 이 경고를 비활성화할 수 있습니다.

깊은 호출 스택이 있는 PHP 애플리케이션을 수용하려면 호스트 시스템에서 스택 크기 제한을 조정합니다. 기존 스택 크기를 보려면 다음을 실행하세요.

ulimit -s

예를 들어 기존 스택 크기가 8192면 새 스택 크기를 16384로 설정하여 두 배로 늘릴 수 있습니다.

sudo ulimit -s 16384