【问题标题】:Make PHP error logs available to CloudWatch and logs bundle使 PHP 错误日志可用于 CloudWatch 和日志包
【发布时间】:2018-09-12 01:49:53
【问题描述】:

我的 ElasticBeanstalk 应用程序中有一个 PHP 环境。我在某个时候收到 HTTP 500 错误,我无法调试它,因为我在日志包中看不到它的任何日志。 我的环境配置为将日志流式传输到 CloudWatch,但仍然没有关于 500 错误。

我尝试将配置文件添加到.ebextensions 目录:

files:
  "/opt/elasticbeanstalk/tasks/bundlelogs.d/php.conf":
    mode: "000755"
    owner: root
    group: root
    content: |
      /var/log/php/*
      /var/log/php-fpm/*

但日志包中仍然没有 php 日志文件。我能做些什么呢? 谢谢。

【问题讨论】:

  • 一些 php 框架会安装错误处理程序并管理日志。你是在做纯php,还是用框架(如cake、yii等)?
  • 我正在使用 Laravel,但请求的 HTTP 响应仍然是 500。Apache/PHP 不应该知道吗?
  • 你有没有想过这个问题?我也在寻找同样的东西。
  • @BeninCA 现在做了一些快速研究,并在这里提出了一个问题。希望能帮助到你。我无法轻松重现该设置,但我希望您可以尝试一下。
  • @Victor - 我的问题类似serverfault.com/questions/1093921/… 不幸的是你的回答还没有帮助。

标签: php amazon-web-services logging amazon-elastic-beanstalk


【解决方案1】:

如果您使用的是 php 框架,它们中的大多数都配置为拦截和处理错误,因此它们不会显示在标准日志中。

对于 Laravel,您需要确保已启用日志记录,并设置或使用默认日志位置,然后将该位置添加到您的配置中。

有关日志记录的更多信息,请参阅Where are logs located?

【讨论】:

  • 由于我使用的是 Elastic Beanstalk,如何指示系统从我的应用程序文件夹中选择日志?我的应用位于何处?
【解决方案2】:

以下内容未经测试,但应该可以解决问题。

我们应该首先找到日志的确切位置(参见Where are logs located?)。一旦我们确定了这一点,我们就会注意到以下内容(来自 AWS docs):

Elastic Beanstalk 与 CloudWatch Logs 的集成不直接支持您的应用程序生成的自定义日志文件的流式传输。要流式传输自定义日志,请使用配置文件直接安装 CloudWatch Logs 代理并配置要推送的文件。

文档中也给出了示例配置,可以在here找到。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-07-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-05-13
    • 2020-06-25
    相关资源
    最近更新 更多