我有以下 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/