为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

PHP
Helenr 2023-07-15 15:45:46
更新: 此问题是由服务器请求在脚本完成之前超时引起的。*我在共享 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.phpdrwxrwxr-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(作品)switch.php -> auth/cloudsaves.2.php <- auth/rumpus_migration.php(不起作用)所有请求均针对switch.phpauth/cloudsaves.php并包含导致包含或 的参数值auth/cloudsaves.2.php。在我本地的测试环境中一切正常。switch.php在生产中,当我使用导致包含脚本的参数时,cloudsaves.2.php我收到错误。我尝试更改组和权限,rumpus_migration.php并cloudsaves.2.php使其与父脚本正确包含的其他文件完全匹配switch.php,但始终得到相同的结果。这个新脚本 ( cloudsaves.2.php) 是switch.php该脚本本身包含的唯一脚本includes。我不熟悉 Apache 或 PHP,并且生产代码位于共享主机上,我的管理访问权限极其有限。事实上,代码在本地工作但不在生产中工作,这使得权限问题似乎是一个可能的罪魁祸首,但我不知道如何继续前进,因为没有一个工作权限选项似乎可以解决它。
查看完整描述

1 回答

?
蛊毒传说

TA贡献1895条经验 获得超3个赞

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

因此,一般End of script output before headers错误可能是由服务器超时和文件权限问题引起的。


查看完整回答
反对 回复 2023-07-15
  • 1 回答
  • 0 关注
  • 114 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信