Apache2 PHP docker 容器,如何将错误作为 stderr 并将信息作为 stdout 记录到容器日志中

php

1个回答

写回答

茫茫人海中

2025-06-17 10:40

+ 关注

php
php

在使用 Apache2 php docker 容器时,我们经常需要将错误作为 stderr(标准错误)输出,并将信息作为 stdout(标准输出)记录到容器日志中。这样可以方便地查看容器的运行状态和调试应用程序。本文将介绍如何实现这一目标,并提供相关的案例代码。

配置 Apache2 和 php

首先,我们需要在 Apache2 和 php 中进行一些配置,以便将错误输出到 stderr,并将信息记录到 stdout。我们可以通过修改 Apache2 和 php 的配置文件来实现这一点。

在 Apache2 中,我们可以编辑 apache2.conf 文件或 sites-avAIlable 目录中的配置文件。找到以下行并进行修改:

ErrorLog ${APACHE_LOG_DIR}/error.log

将其修改为:

ErrorLog /dev/stderr

这将告诉 Apache2 将错误日志输出到 stderr。

接下来,我们需要修改 php 的配置文件。找到以下行并进行修改:

display_errors = Off

将其修改为:

display_errors = stderr

这将告诉 php 将错误输出到 stderr。如果你使用的是 php-FPM,你还需要在相应的 php-fpm.conf 文件中进行相似的修改。

使用 Dockerfile 配置容器

接下来,我们需要使用 Dockerfile 来配置我们的容器。以下是一个示例的 Dockerfile:

dockerfile

FROM php:7.4-apache

COPY apache2.conf /etc/apache2/apache2.conf

COPY php.ini /usr/local/etc/php/php.ini

CMD ["apache2-foreground"]

在这个 Dockerfile 中,我们使用了官方的 php:7.4-apache 镜像作为基础镜像。然后,我们将修改后的 apache2.confphp.ini 文件复制到容器中的相应位置。最后,我们使用 CMD 命令来启动 Apache2 服务。

案例代码

现在,让我们来看一个案例代码,演示如何在 Apache2 php docker 容器中将错误作为 stderr 输出,并将信息记录到 stdout。

php

<?php</p>// 将错误输出到 stderr

ini_set('display_errors', 'stderr');

// 记录信息到 stdout

echo "Hello, World!";

在这个案例代码中,我们使用了 ini_set 函数将错误输出设置为 stderr。然后,我们使用 echo 函数将信息输出到 stdout。

通过配置 Apache2 和 php,我们可以将错误作为 stderr 输出,并将信息记录到 stdout 中。这样可以方便地查看容器的运行状态和调试应用程序。使用 Dockerfile 和案例代码,我们可以轻松地实现这一目标。希望本文对你有所帮助!

举报有用(4分享收藏

Copyright © 2025 IZhiDa.com All Rights Reserved.

知答 版权所有 粤ICP备2023042255号