文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

docker 中 php 关于错误信息显示的配置

2024-02-27 19:36

关注

首先,一般情况下关于php的错误信息显示要在php.ini配置文件中进行配置。配置项如下:


error_reporting = E_ALL & ~E_STRICT & ~E_DEPRECATED

display_errors = On

display_startup_errors = On

log_errors = On

error_log = php_errors.log

display_errors 控制PHP是否要输出错误信息。默认情况下是On 开启的。在开发环境中这个选项要打开,方便开发过程中调试。但是到了生产环境,这个选项要关闭; error_reporting 是控制错误显示级别的 默认值 E_ALL & ~E_NOTICE & ~E_STRICT & ~E_DEPRECATEDdisplay_startup_errors 这个选项是控制PHP解析器在启动的过程中产生的错误是否显示,而 display_errors是PHP解析器已经准备完成,在解析执行我们的PHP代码的时候产生的错误信息。二者控制的阶段是不同的。 同样,在开发环境中开启,生产环境关闭。默认情况下是关闭的;

log_errors 控制是否将错误信息记录的日志中去,默认情况下是 Off,关闭将错误信息写入日志。 如果设置为On,则将错误信息写入error_log指定的日志文件或者日志服务。 该选项要想开启,则前提是display_errors必须关闭(Off)。 如果display_errors开启,则错误信息由PHP显示出来,而不会记录到日志中。也就是说 两者不可同时发生(当然可以同时关闭)。 所以说生产环境要将display_errors关闭,而将该选项打开。 error_log 指定错误信息记录的位置。 每个选项详细说明,以及需要搭配其他哪些选项等可以去php.ini文件中查看。

然而,如果我们的环境是 Docker + PHP-FPM ,错误信息的配置就不受php.ini的控制了。配置项在fpm的配置文件中。配置项


[www]
php_flag[display_errors] = off
php_admin_value[error_log] = /usr/local/var/log/php-fpm.www.error.log
php_admin_flag[log_errors] = on
php_admin_value[error_reporting] = E_ALL & ~E_DEPRECATED & ~E_STRICIT
php_admin_value[display_startup_errors] = on

可以看到[] 中对应的都是php.ini中的选项。每个选项的含义和上面我们说的是一样的。下面我们介绍一下 php_*flagphp_*value。一共有四种配置

其中 php_*flag 这种配置项的值只能是 on, off, 1, 0, true, false, yes or no。也就是说表示控制开关的选项要用php_*flag; 而php_*value 选择性就多了,它指定的选项可以根据需要任意的赋值。

对于 php_flagphp_value 指定的选项,是可以在PHP代码中通过函数ini_set覆盖的。 而php_admin_flagphp_admin_value 指定的选项是不能用ini_set函数覆盖的。

还有一个比较重要的地方是。如果要打开PHP的错误信息记录日志的功能,那么由error_log指定的日志文件必须是已经存在的。不要指望程序在写日志的时候自动创建日志文件(可以通过docker的文件映射功能,将本地的一个文件映射到相应的地方)。

其实 php_*flag/php_*value 就是用来覆盖php.ini中的选项的。php.ini中的配置项是对整个PHP环境生效,也就是所有的工作池都会受php.ini配置的影响。 而通过php_*flag/php_*value就可以根据每个工作池各自的需要来进行自己的配置。 就像上面的www工作池。 工作池通过 [] 进行指定([www])。

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯