php-fpm stdout,logging – 如何在docker容器中运行时让php-fpm登录到stdout / stderr

我在docker容器中有php-fpm,在Dockerfile中我编辑fpm配置文件(/etc/php5/fpm/pool.d/www.conf)来设置访问日志以转到/ var / log / fpm- access.log和错误日志转到/var/log/fpm-php.www.log:

# Do some php-fpm config

# Redirect worker stdout and stderr into main error log

# Activate the fpm access log

# Enable display errors

# Enable the error log

RUN sed -i '/^;catch_workers_output/ccatch_workers_output = yes' /etc/php5/fpm/pool.d/www.conf && \

sed -i '/^;access.log/caccess.log = /var/log/fpm-access.log' /etc/php5/fpm/pool.d/www.conf && \

sed -i '/^;php_flag\[display_errors\]/cphp_flag[display_errors] = off' /etc/php5/fpm/pool.d/www.conf && \

sed -i '/^;php_admin_value\[error_log\]/cphp_admin_value[error_log] = /var/log/fpm-php.www.log' /etc/php5/fpm/pool.d/www.conf && \

sed -i '/^;php_admin_flag\[log_errors\]/cphp_admin_flag[log_errors] = on' /etc/php5/fpm/pool.d/www.conf

这很好 – 我可以在容器中找到一个shell来查看日志.但是……这不是最好的做法.

问题是当我尝试使用docker日志收集器时 – 我需要php-fpm来登录到stdout或stderr所以docker可以捕获它们并将它们提供给docker logs命令.

我试着在Dockerfile中这样做(这是我从official nginx docker image复制的一个想法):

# Redirect fpm logs to stdout and stderr so they are forwarded to the docker log collector

RUN ln -sf /dev/stdout /var/log/fpm-access.log && \

ln -sf /dev/stderr /var/log/fpm-php.www.log

这不起作用 – 从docker日志中看不到访问日志 – 我试图找出原因?在docker中使用fpm的其他人是否设法将日志记录工作到docker日志收集器?

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值