簡體   English   中英

如何在 AWS Elastic Beanstalk Docker 容器中記錄 PHP 錯誤

[英]How to log PHP errors in an AWS Elastic Beanstalk Docker container

我有一個正在部署到 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")會出現權限錯誤。

任何提示將非常感謝。

我最近不得不這樣做,這就是我所做的。

使用 .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() 語句,並且文件被創建並填充了我期望的內容。

希望這可以幫助!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM