【问题标题】:Differences linux and windows (xampp) handling error message cannot modify header information - headers already sent by php [duplicate]linux和windows(xampp)处理错误消息的差异无法修改标头信息-php已经发送的标头[重复]
【发布时间】:2018-02-23 03:52:45
【问题描述】:

如果这个问题被认为是重复的,我很抱歉。我知道来自什么警告消息,但我想知道为什么在XAMPP (php 5.6) 中没有显示此错误,但是当我在Ubuntu 中部署时它会出现。我的开发环境在windows,但我必须在 linux 中部署 web。谢谢

【问题讨论】:

  • 区别在于配置。您用于显示错误的 Linux apache 配置与 WAMP 版本不同。
  • 什么样的配置?配置的具体关键项?
  • 见@delboy1978uk 的回答。或stackoverflow.com/questions/1053424/…
  • 我做 ini_set('display_errors', 1); ini_set('display_startup_errors', 1); error_reporting(E_ALL); 但在 Windows 中仍然可以按预期工作。没有像 linux 中的错误

标签: php linux xampp


【解决方案1】:

这与您的php.ini 设置有关,与环境的操作系统关系不大。

如果您在php.ini 中启用了display_errors,则通知、警告、错误等将显示在您的页面上,其级别取决于error_reporting 设置的内容。

为获得最佳错误记录体验,请将 error_reporting 设置为 -1,关闭 display_errors,并设置自定义 error_log。然后在终端中,输入“tail -f /path/to/error_log”。您的通知、警告和错误现在将实时滚动过去,而不会扭曲您的网页显示。

您的错误发生是因为您在 HEADERS 之前发送请求 BODY!停止显示错误将停止。

最后,在文件开头查找空格,例如 <?php 之前的空格。

【讨论】:

  • windows 和 ubuntu 都显示相同级别的错误,即使在 windows 中不显示错误,也应该像在 ubuntu 中一样停止,但 inwindows 仍然可以正常工作。
【解决方案2】:

Xampp 和类似的软件包是根据开发人员的需要捆绑在一起的。如果您使用的是全球网络服务器,则设置很可能会有所不同,以保护您的服务器和敏感数据。

如果你可以下载linux服务器的php.ini,你可以和你的比较一下。例如,您的本地服务器的 error_reporting 设置为 E_ALL,那么您的 linux 服务器的 ini 可能会有所不同。

此外,您可以查看this link 以获得最佳实践

【讨论】:

    【解决方案3】:

    经过一番研究,我发现 php.ini output_buffering=4096 中的设置如果我将其关闭,那么在 Xampp 中也会显示错误,例如在 linux 中的 session_start(): Cannot send session cache limiter..,但我不太确定 @987654323 的用途是什么@ 实际上。

    【讨论】:

      猜你喜欢
      • 2012-06-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-11-24
      • 2011-05-09
      • 1970-01-01
      相关资源
      最近更新 更多