【问题标题】:How to log PHP errors in an AWS Elastic Beanstalk Docker container如何在 AWS Elastic Beanstalk Docker 容器中记录 PHP 错误
【发布时间】:2017-06-29 07:57:34
【问题描述】:

我有一个要部署到 AWS Elastic Beanstalk 的 PHP Docker 容器。我对 Docker 和 EB 比较陌生,所以还在学习。我正在尝试将 php 错误记录到 /var/log/php_error.log 最好。

在 php.ini 中我已经设置了

log_errors = On
error_log =  /var/log/php_error.log

然后我加载了一个带有error_log("Hi") 的页面,但是当我eb ssh 进入服务器时,没有创建 php_error.log 文件。

我认为这是一个权限问题。 PHP 用户(www-data)无权写入 root 拥有的日志目录。我从未设置过 root 密码,也找不到任何有关如何获得 sudo 权限或如何正确设置权限以使其正常工作的文档。我怀疑它可以放在我的 Dockerfile 中,但我对 Docker 还是新手,所以不知道该怎么做。

可能出于相同或相似的原因,我无法使用 PHP 写入任何文件,例如执行 file_put_contents("write.txt","hi") 会出现权限错误。

任何提示将不胜感激。

【问题讨论】:

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


    【解决方案1】:

    我最近不得不这样做,这就是我所做的。

    使用 .ebextensions 您可以更改几乎任何您希望的配置,包括 php.ini 中的内容。在您的 EB 部署 zip 文件中,确保您有一个名为 .ebextensions 的文件夹以及 .config,其中包含类似于以下示例的内容。

    这是我的 PHP 特定扩展的示例:

    files:
      "/etc/php.d/uploads.ini" :
        mode: "000644"
        owner: root
        group: root
        content: |
          upload_max_filesize = 128M
          post_max_size = 128M
          error_log = /tmp/php_errors.log
    

    与您类似,我在我知道它会被命中的地方放了一个随机的 error_log() 语句,并且该文件已创建并填充了我所期望的内容。

    希望这会有所帮助!

    【讨论】:

      猜你喜欢
      • 2017-07-26
      • 2021-11-25
      • 2015-07-20
      • 2015-03-13
      • 2020-07-23
      • 2015-05-01
      • 2018-12-12
      • 2016-05-20
      • 2020-05-03
      相关资源
      最近更新 更多