Docker php-fpm-alpine:如何禁止警告

我有dolrer 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的警告和错误回声通过浏览器提供的页面。 我怎样才能使他们沉默?

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

您可以尝试使用以下入口点:

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

这可能是值得的,以及检查你的php安装从哪里加载它的configuration文件。

创build一个简单的PHP文件的内容:

 <?php phpinfo(); 

查看该文件时查找设置: Loaded Configuration File(加载的configuration文件)这将告诉您正在加载PHPconfiguration文件的path。

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

希望这可以帮助!

你可以简单地编辑你的php.ini文件,如下所示:

  error_reporting = E_ALL & ~E_DEPRECATED & ~E_NOTICE 

或者进入一个php文件:

 error_reporting(E_ALL & ~E_DEPRECATED & ~E_NOTICE);