Apache + PHP 中的“标题之前的脚本输出结束”

2024-02-27

UPDATE: 此问题是由于脚本完成之前服务器请求超时造成的。*

我在共享 LAMP 主机 (nearlyfreespeech.net) 上运行遗留代码,并且最近添加了一个无法在生产中工作的新脚本。

我的 apache 错误日志显示该消息End of script output before headers: switch.php,当我尝试使用 Web 客户端触发脚本时,我得到 500 个状态。

根据其他 StackOverflow 帖子,此错误消息通常是由于文件权限错误造成的。但是,新脚本的文件权限与所有其他脚本相同。

以下是相关文件权限:

-rw-rw-r--   1 235430  235430  1655 Jul  6 18:05 switch.php

drwxrwxr-x   2 235430  235430    18 Jul  1 21:05 auth/
-rw-rw-r--  1 235430  235430     13 Aug 24  2015 auth/.htaccess
-rw-rw-r--  1 235430  235430    280 Jul  1 21:05 auth/cloudsaves.2.php
-rw-rw-r--  1 235430  235430    880 Aug 28  2015 auth/cloudsaves.php
-rw-r--r--  1 235430  web     15580 Jul  1 21:05 auth/rumpus_migration.php

用这些include()层次结构:

  • switch.php -> auth/cloudsaves.php (works)
  • switch.php -> auth/cloudsaves.2.php <- auth/rumpus_migration.php(不起作用)

所有请求都是为了switch.php并包含一个参数值导致auth/cloudsaves.php or auth/cloudsaves.2.php被包括。

在我本地的测试环境中一切正常。在生产中,当我使用导致的参数时switch.php包括cloudsaves.2.php脚本我收到错误。

我尝试更改组和权限rumpus_migration.php and cloudsaves.2.php与父级正确包含的其他文件完全匹配switch.php脚本,总是有相同的结果。这个新脚本(cloudsaves.2.php) 是唯一包含的脚本switch.php那本身includes另一个脚本。

我不熟悉 Apache 或 PHP,并且生产代码位于共享主机上,我的管理访问权限极其有限。事实上,代码在本地工作但不在生产中工作,这使得权限问题似乎是一个可能的罪魁祸首,但我不知道如何继续前进,因为没有一个工作权限选项似乎可以解决它。


问题在于,由于长时间运行的数据库查询,请求在脚本完成之前超时。

所以说通用的End of script output before headers错误可能是由服务器超时以及文件权限问题引起的。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Apache + PHP 中的“标题之前的脚本输出结束” 的相关文章

随机推荐