繁体   English   中英

Output 为 PHP 的 STDERR 错误而不更改 php.ini

[英]Output a STDERR for PHP errors without changing php.ini

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

要运行 CRON:

          • php myscript.php >/dev/null

仅当stderr的结果不是 null 时,即存在标准错误时,这应该发送 email。

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

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

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

ini_set ('display_errors', 'stderr');

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

php_flag display_errors stderr

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

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

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM