php - Docker php-fpm-alpine : How to supress warnings

标签 php docker dockerfile

我有以下 Dockerfile:

FROM php:7.0-fpm-alpine
MAINTAINER John Doe <<a href="https://stackoverflow.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="deb4bab1bb9ebba6bfb3aeb2bbf0bdb1b3" rel="noreferrer noopener nofollow">[email protected]</a>>

EXPOSE 9000
VOLUME /var/www/html
VOLUME /var/log/fpm

COPY ./php_config.ini /usr/local/etc/php/php_no_errors.ini
COPY ./src /var/www/html

# Other extra libraries are installed
RUN chown -R www-data:www-data /var/www/html 

ENTRYPOINT ["php-fpm"]

文件 php_config.ini 包含:

php[error_reporting] = E_ALL & ~E_DEPRECATED & ~E_STRICT & ~E_NOTICE & ~E_WARNING)
php_flag[display_errors] = off
php_flag[display_startup_errors] = foo

cgi.fix_pathinfo = 0

php_admin_value[error_log] = /var/log/fpm-php.www.log
php_admin_flag[log_errors] = on
catch_workers_output = yes

但在我的应用程序中,我仍然收到 php 警告和错误,这些警告和错误回显到通过浏览器提供的页面中。我怎样才能让他们安静下来?

最佳答案

由于您希望使用的 php.ini 文件不在(我认为)标准位置或具有标准名称,因此您需要在运行 php-fpm 时显式定义它的路径命令。

您可以尝试使用以下ENTRYPOINT:

ENTRYPOINT ["php-fpm", "-c", "/usr/local/etc/php/php_no_errors.ini"]

可能还值得检查您的 php 安装从何处加载其配置文件。

创建一个简单的 PHP 文件,其内容如下:

<?php 

phpinfo(); 

查看该文件时查找设置:已加载配置文件 这将告诉您 PHP 配置文件的加载路径。

您可以将文件复制到此路径,或者使用 -c 命令硬设置 .ini 文件的路径,如上所示。

希望这有帮助!

关于php - Docker php-fpm-alpine : How to supress warnings,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46525213/

相关文章:

docker - 在临时Docker镜像上安装Bash

PHP/Mysql 使用现有数组中的值创建一个新数组,有帮助吗?

php - 搜索 - 处理空条件字段

php - 更新 MySQL 中的整行

docker - Docker 内部的 Electron 与 X11 转发 - 未指定协议(protocol)

docker - 当我尝试从 Dockerfile 构建镜像时,为什么会得到 "unzip: short read"?

php - 我如何在 Agiletookit 中调试与数据库相关的错误?攻击力4

docker - 如何在 traefik.io 中定义静态路由

docker - 从 Liferay 7.3 中的角色删除权限

docker - docker主机端口和容器端口