Docker php-fpm-alpine:如何抑制警告

时间:2017-10-02 12:11:04

标签: php docker dockerfile

我正在使用多功能Dockerfile:

FROM php:7.0-fpm-alpine
MAINTAINER John Doe <jdoe@example.com>

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警告和错误回显到通过浏览器提供的页面。我怎么能让他们沉默?

2 个答案:

答案 0 :(得分:1)

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

您可以尝试使用以下 ENTRYPOINT:

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

可能值得检查php安装从哪里加载其配置文件。

使用以下内容创建一个简单的PHP文件:

<?php 

phpinfo(); 

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

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

希望这有帮助!

答案 1 :(得分:1)

您可以按如下方式编辑php.ini文件:

 error_reporting = E_ALL & ~E_DEPRECATED & ~E_NOTICE

或者进入php文件:

error_reporting(E_ALL & ~E_DEPRECATED & ~E_NOTICE);