【发布时间】:2020-11-23 14:03:43
【问题描述】:
我有一些 PHP 脚本通过 CRON 每分钟运行一次。我不想在每次它们正常运行时都收到电子邮件,但如果它们抛出错误(例如,如果它们使用太多内存),我确实希望收到一封电子邮件。
运行 CRON:
-
-
-
-
- php myscript.php >/dev/null
-
-
-
这应该只在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 .htaccess error-handling cron stderr