PHP 退出状态 255:这是什么意思?

PHP 退出状态 255:这是什么意思?

我最近整理了一个PHP 5.2.9二进制文件,我尝试用它执行一些 PHP 脚本。我可以毫无问题地执行一些脚本,但其中一个脚本在中途停止执行,退出时没有任何错误或警告。该进程返回的状态代码为 255。

我在手册中看到,这种状态是“保留的”。问题是:为了什么?

我相信这与 PHP 可执行文件中缺少依赖项有关,但我不确定。

有人知道退出代码 255 是什么意思吗?

PS PHP 脚本中没有错误,它们在其他机器上运行正常。

答案1

255是一个错误,我可以通过致命错误重现相同的退出代码。

这意味着您的错误报告以某种方式被隐藏了,出现这种情况可能有几个原因:

  • error_reporting 未定义,php 根本没有报告任何错误
  • 错误抑制运算符@隐藏错误的输出
  • STDERR 被重定向到其他地方(php -f somefile.php 2>/dev/null,删除重定向)
  • 这仍然可能是由于缺少依赖项而导致的内部错误,并且致命错误具有与程序崩溃相同的退出代码。

答案2

它也可能意味着/etc/php5/cli/php.ini(在 Debian/Ubuntu 上)或/etc/php.ini(在 RHEL/CentOS/etc 上)display_errors = Off意味着来自命令行脚本的任何错误或警告都不会发生,除非log_errors = On(另请参阅error_log设置)。

尝试使用包装脚本来运行你的脚本,该脚本使用php -d display_errors=on ...

答案3

这也可能意味着

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

  • /etc/php.ini(在 RHEL/CentOS/等上)

已设立

display_errors = Off 

这意味着命令行脚本中的任何错误或警告都不会消失,除非

log_errors = On 

另请参阅error_log设置。

尝试使用包装器运行脚本

答案4

就我的情况而言,xDebug 因xdebug.max_nesting_level值太低而死亡。

相关内容