php.ini 文件内配置脚本退出时间
max_execution_time=0
如何你用的是apache的话, 或者phpstudy(phpstudy中的apache)
根据调试时中断debug, apache日志得出的结果
mod_fcgid: read timeout from pipe
解决方案
设置apache的配置文件 httpd.conf , 并在文件末尾设置
FcgidIOTimeout 6000000 # 6000 秒
FcgidConnectTimeout 6000000 # # 6000 秒
KeepAliveTimeout 6000 # 保持活动时间
Timeout 6000 # 超时时间
httpd.conf 文件就在 conf 文件夹下
如何你不想应用到全部应用上,也可以配置到 vhost中(虚拟目录)
配置完成重启apache服务器
此时调试不再退出
原因
mod_fcgid: read timeout from pipe: 这部分指示出现的错误消息。它说明在 FastCGI 进程和 Apache 之间的管道通信中发生了一个读取超时。
这个错误表明 FastCGI 进程在处理请求时花费了太长时间,导致 Apache 服务器等待超时,而没有收到预期的响应。可能的原因是 FastCGI 进程执行的任务过于繁重或者某个请求处理逻辑存在问题,导致请求无法及时完成。
得知原因我们可以通过调整 Apache 的 FcgidIOTimeout 和 FcgidConnectTimeout 参数,以适应实际请求处理的情况。
Timeout: 这是 Apache 配置中用于设置请求超时时间的指令。
6000: 这是将请求超时时间设置为 6000 秒。换句话说,如果 Apache 服务器在接收到请求后,等待超过 6000 秒仍未收到响应,则会终止该请求,并向客户端返回错误。
KeepAliveTimeout: 这是 Apache 配置中用于设置 Keep-Alive 连接的超时时间的指令。
6000: 这是将 Keep-Alive 连接的超时时间设置为 6000 秒。换句话说,一旦客户端和服务器建立了 Keep-Alive 连接,服务器会在 6000 秒内保持这个连接开启,等待可能的后续请求。如果在超时时间内没有新的请求到达,服务器会主动关闭该 Keep-Alive 连接。
调试技巧
如果页面出现一些不知原因的错误时,可以在 apche的 httpd.conf 文件中配置调试等级,这样会在日志文件中出现更多的调试信息
httpd.conf
LogLevel debug
设置 LogLevel 为debug后几乎能通过这些调试信息发现问题, 如果不是源码的问题,那么你可以设置这个通过查看日志发现问题
日志位置:
你的apache目录/logs/error.log