PHP 如何正确处理生产服务器上的严重错误通知。

标签 php error-handling runtime-error production-environment

通常错误是日志等。但是我应该如何处理生产服务器上需要注意的重要错误。例如,如果我在一个流程中删除了一系列 ORM 模型,并且在流程中的某个地方,模型无法删除。我希望该过程删除尽可能多的对象,而不是向用户抛出任何异常。我还希望开发人员或管理员能够收到任何重要错误的通知,以便立即修复它们。

过去,我在脚本中添加了在某些情况下会通过电子邮件向我发送错误的脚本。如果我在开发环境中,它只会抛出异常,但是在生产环境中它会默默地死去并通过电子邮件发送错误。

是否有一些方法可以让某些异常变得更重要,从而使开发人员能够采取行动?我可以创建一个更通用的解决方案。例如,如果抛出严重错误/异常,则始终通过电子邮件将其发送给生产管理员,否则它遵循正常程序(例如日志)。

可能有一些很棒的软件包可以提供解决方案,但如果可能的话,我正在寻找更原生的东西。

最佳答案

你可以放htaccess使用以下行在您的站点根目录上创建文件。

# PHP error handling for production servers
php_flag display_startup_errors off
php_flag display_errors off
php_flag html_errors off
php_flag log_errors on
php_flag ignore_repeated_errors off
php_flag ignore_repeated_source off
php_flag report_memleaks on
php_flag track_errors on
php_value docref_root 0
php_value docref_ext 0
php_value error_log /home/path/public_html/domain/PHP_errors.log
php_value error_reporting -1
php_value log_errors_max_len 0

请勿放置 error_log在公共(public)可访问的位置。

关于PHP 如何正确处理生产服务器上的严重错误通知。,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36728269/

相关文章:

php - 如何为使用 javascript 加载的内容添加书签

php - 检测空的子数组-无效的foreach

swift - “ fatal error :在展开可选值时意外发现nil”是什么意思?

c# - EF Code First INSERT 语句与 FOREIGN KEY 约束冲突

ruby - 使用集合合并范围 - 错误 - 堆栈级别太深 (SystemStackError)

php - 无法将图像上传到服务器 ios

php - 如何使用php从youtube提取视频的描述

php - 如何使用 ZeroMQ 和 ClankBundle 实现 "Push to an Existing Site"?

php - 如何以正确的方式向用户显示错误?

haskell - 异常 : Non-exhaustive patterns in function