在不更改 php.ini 的情况下为 PHP 错误输出 STDERR

Output a STDERR for PHP errors without changing php.ini

我有一些 PHP 脚本,每分钟 运行 通过 CRON。我不想每次他们 运行 正确时都收到电子邮件,但如果他们抛出错误(例如,如果他们使用太多内存),我确实希望收到一封电子邮件。

至 运行 CRON:

只有当 stderr 的结果不为空时才应该发送电子邮件,即当存在标准错误时。

但是,PHP 错误不会创建 stderr,而是包含在 stdout 中,因此不会发送电子邮件。

我已尝试将 display_errors 设置为 stderr,如 this question 所示,但这是一个不同的用例,因为脚本不是 CRON 运行。我尝试了以下但没有用的方法:

将此包含在脚本本身中不起作用,因为致命错误意味着脚本不会 运行:

ini_set ('display_errors', 'stderr');

将其包含在 .htaccess 文件中(注意 PHP 使用了 FPM)不起作用 - 我不确定为什么:

php_flag display_errors stderr

更改 php.ini 文件不是一个选项,因为我不希望更改影响整个站点,只影响几个文件。

所以我的问题是 - 如何将 PHP 错误发送到 stderr 以便我可以通过电子邮件接收它们?

php 可执行文件采用命令行选项 - 您可以指定 它应该使用哪个 php.ini,或者通过 [=] 设置特定的配置选项11=] 参数.

https://www.php.net/manual/en/features.commandline.options.php