PHP 종료 상태 255 : 무슨 뜻입니까? 그 중

나는 최근에 PHP 5.2.9 바이너리를 컴파일했고 , PHP 스크립트를 사용해 보았습니다. 문제없이 일부 스크립트를 실행할 수 있지만 그 중 하나는 오류나 경고없이 종료되는 도중에 실행이 중단됩니다. 프로세스의 리턴 상태 코드는 255입니다.

설명서에서 그러한 상태가 ‘예약 됨’이라고 읽었습니다. 문제는 무엇을 위해서인가?

PHP 실행 파일에서 누락 된 종속성과 관련이 있다고 생각하지만 확실하지 않습니다.

종료 코드 255의 의미가 무엇인지 아는 사람이 있습니까?

PS PHP 스크립트에는 오류가 없으며 다른 컴퓨터에서 정상적으로 실행됩니다.



답변

255 는 오류입니다. 치명적인 오류가 발생하여 동일한 종료 코드를 재현 할 수 있습니다.

즉, 오류보고가 어떻게 든 숨겨져 있음을 의미 할 수 있습니다.

  • error_reporting이 정의되어 있지 않으며 PHP는 전혀 오류를보고하지 않습니다
  • @(에러 억제 연산자) 오류 출력을 숨긴다
  • STDERR은 다른 곳으로 리디렉션됩니다 (php -f somefile.php 2> / dev / null, 리디렉션 제거)
  • 종속성 누락으로 인해 여전히 내부 오류 일 수 있으며 치명적 오류는 프로그램 충돌과 동일한 종료 코드를 갖습니다.

답변

또한 의미 할 수 있었다 /etc/php5/cli/php.ini또는 (데비안 / 우분투) /etc/php.ini(RHEL에 / CentOS는 / 등.)가 display_errors = Off있는 않는 명령 줄 스크립트에서 오류 또는 경고, 아무데도 갈 것을 의미한다 log_errors = On(또한 참조 error_log설정).

다음을 사용하는 랩퍼 스크립트로 스크립트를 실행하십시오. php -d display_errors=on ...


답변

PHP로 억제 된 오류 메시지 (행은 @로 시작)로 인해 발생할 수 있습니다. 나는 줄을 찾았다

grep -r "@" src/

그런 다음 @을 주석 처리했습니다. 이 후 실제 오류가 발생하여 쉽게 해결할 수있었습니다. 나는 또한 PHPStorm이 이미 동일한 오류를 발견했지만 그것을 고치거나 눈치 채지 못했음을 알았습니다.


답변

또한

  • /etc/php5/cli/php.ini (데비안 / 우분투)

  • /etc/php.ini(RHEL/CentOS 등)

설정했다

display_errors = Off

즉, 명령 줄 스크립트의 오류나 경고는 아무데도 나타나지 않습니다.

log_errors = On

error_log 설정도 참조하십시오.

래퍼로 스크립트를 실행 해보십시오


답변

제 경우에는 xdebug.max_nesting_level값 이 낮아 xDebug가 사망했습니다 .


답변