我应该在生产环境中打开还是关闭output_buffering?

时间:2009-10-17 01:15:58

标签: php output-buffering

我即将推出一个网站,我将通过我的php.ini来准备生产环境的所有设置。

我正在讨论是否将output_buffering保持为On,Off或将其设置为缓冲区限制(如4096)。将output_buffer打开还是关闭是否有任何赞成或反对意见?我已经读过,关闭缓冲区会给你一些额外的性能,但在做出决定之前我还应该知道什么吗?

为什么要把它关掉? 为什么要留下它? 为什么要使用缓冲限制?

3 个答案:

答案 0 :(得分:5)

输出缓冲的最常见用法实际上是允许脚本通过print / echo / etc开始“书写”页面内容。但仍然允许稍后在脚本中的header()调用正常工作(因为标头只能在任何实际页面内容之前发送)。如果您的脚本使用了这些脚本,那么您需要保持打开输出缓冲,以便脚本能够继续运行,并且所有header()调用都能正常运行。 (否则你会得到精彩的“header():警告,无法修改标题信息,标题已经发送”消息。)

答案 1 :(得分:2)

当您尝试存储将始终输出到屏幕的信息时,您确实只需要OB。例如,OB适用于存储已包含文件的已解析输出。

如果你没有将OB用于那些类型的thins,那么还有其他更有效的方法,你应该在这里查询它们。

答案 2 :(得分:2)

这是一个与register_globalsmagic_quotes_runtime不同的配置指令,因为它没有足够的争议来保证默认情况下保持关闭状态。保持启用状态,以防万一你需要它(这就是我要做的)。据我所知,无论如何都没有明显的安全漏洞。