我有一个PHP Docker容器,我正在部署到AWS Elastic Beanstalk。我对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")
会产生权限错误。
任何提示都将不胜感激。
答案 0 :(得分: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()语句,并且该文件已创建并填充了我所期望的内容。
希望这会有所帮助!