我最近整理了一个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
值太低而死亡。