Status de saída do PHP 255: o que isso significa?

29

Eu recentemente compilei um binario PHP 5.2.9 , e tentei executar alguns scripts PHP com ele. Eu posso executar alguns scripts sem problemas, mas um deles interrompe sua execução no meio do caminho, saindo sem erros ou avisos. O código de status retornado do processo é 255.

Eu li no manual que esse status é 'reservado'. A questão é: para quê?

Acredito que tenha algo a ver com a falta de dependências no executável do PHP, mas não posso ter certeza.

Alguém sabe o que significa um código de saída de 255?

P.S. Não há erros nos scripts PHP, eles rodam OK em outras máquinas.

    
por Silvio Donnini 22.06.2010 / 17:17

5 respostas

31

255 é um erro, eu poderia reproduzir o mesmo código de saída por ter um erro fatal.

Isso significa que, de alguma forma, o relatório de erros está oculto. Existem algumas possíveis causas para isso:

  • error_reporting não está definido e o php não relata nenhum erro
  • Um @ (operador de supressão de erro) oculta a saída do erro
  • STDERR é redirecionado para algum outro lugar (php -f somefile.php 2 > / dev / null, remove o redirecionamento)
  • Isso ainda pode ser um erro interno devido à falta de dependências e que um erro fatal tem o mesmo código de saída que uma falha de programa.
por 22.06.2010 / 18:05
7

Isso também pode significar que /etc/php5/cli/php.ini (no Debian / Ubuntu) ou /etc/php.ini (no RHEL / CentOS / etc.) tem display_errors = Off , o que significa que quaisquer erros ou avisos de scripts de linha de comando não irão a lugar nenhum. a menos que log_errors = On (consulte também a configuração error_log ).

Tente executar seus scripts com um script de wrapper que use php -d display_errors=on ...

    
por 12.03.2014 / 08:08
0

Isso pode ser causado por mensagens de erro reprimidas pelo PHP (a linha começa com @). Eu encontrei a linha por

grep -r "@" src/ 

e, em seguida, comentou o @. Depois disso, recebi o erro real e consegui corrigi-lo facilmente. Eu também notei depois que o PHPStorm já havia descoberto o mesmo erro, mas eu não tinha reparado / percebi isso.

    
por 11.02.2016 / 18:03
0

Isso também pode significar que

  • /etc/php5/cli/php.ini (no Debian / Ubuntu)

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

definiu

display_errors = Off 

, o que significa que quaisquer erros ou avisos de scripts de linha de comando não irão a lugar nenhum, a menos que

log_errors = On 

Veja também a configuração error_log.

Tente executar seus scripts com um wrapper

    
por 06.03.2016 / 16:15
0

No meu caso, isso foi a morte do xDebug por causa do baixo valor xdebug.max_nesting_level .

    
por 16.01.2018 / 13:34