记一次:End of script output before headers: index.php 错误排查解决经历

在尝试导出大量用户数据为PDF格式时遇到404错误,通过调整Apache日志级别发现并解决mod_fcgid:readtimeoutfrompipe问题,最终通过修改httpd.conf文件中的超时设置成功解决问题。
摘要由CSDN通过智能技术生成

前提:由于业务需求,需要将大量的用户数据以PDF文件格式导出。在完成功能开发之后,实际导出一定量的用户数据时,程序都能很稳定的正常导出。但是超过一定量时,就会报404,然后再无任何信息提示。

既然有错,那就得解决,于是本地开启debug模式,一步步的排查,刚开始以为是执行时间超时,或者内存溢出,发现都没有问题。于是开始看apache 错误日志,发现返回错误信息是:End of script output before headers: index.php 。于是各种查找资料,百度,CSDN,简书,知乎,中国PHP社交平台......甚至翻墙,googel 搜索,反正能想到的技术论坛都去求助,查看。然鹅并无卵用。一遍遍的猜测,尝试直到搞的脑仁都异常的疼痛,还是未解决。

在最终想要放弃时,想着改下apache 日志级别,看看是不是还有别的错误。(此前的日志级别是error,然后调整成warn级别)再次运行程序,查看日志,果然,有一条不一样的错误信息:mod_fcgid: read timeout from pipe ,于是抱着试试解决此问题的态度试试,在httpd.conf 文件加入如下一段代码:

<IfModule fcgid_module>
    FcgidIOTimeout 1200
    FcgidConnectTimeout 1200
    FcgidBusyScanInterval 1200
    FcgidBusyTimeout 1200
    FcgidErrorScanInterval 1200
    FcgidIdleScanInterval 1200
    FcgidIdleTimeout 1200
    FcgidProcessLifeTime 3600
    FcgidZombieScanInterval 1200
</IfModule>

然后保存,重启服务,再次运行,程序执行成功,并且成功导出。(此时心里觉得是侥幸成功,因为此前也有类似的事情发生),于是不断变换导出条件,多次测试均可成功导出。这时别提心里有多高兴了。问题终于解决了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值