使用FastCGI在Apache中导致了内部服务器错误

突然出现了内部服务器错误

当在Web系统中进行了长时间的处理时,突然请求中断,并出现了”Internal Server Error”的错误。

服务器环境如下:

    • Windows Server

 

    • Apache2.4

 

    • PHP7

 

    FastCGI

内存限制

在设定的时间之前,出现了超时错误。由于正在执行相当重的处理,我已经尝试在php.ini中解除内存使用上限,并重新运行,但情况没有改变。

记录

我在试探中想知道是否有任何相关的信息,但却发现完全没有输出任何错误信息。

mpm_winnt 的意思是 Windows 操作系统下的多进程模块。

我尝试着读取配置文件,但结果并没有改变。

httpd.conf 被用作 Apache HTTP Server 的主要配置文件

重新检查设置文件。超时设置已经足够,也不是请求的问题。

<IfModule fcgid_module>
   FcgidInitialEnv PHPRC "c:/php"
   FcgidInitialEnv PHP_FCGI_MAX_REQUESTS 0
   FcgidMaxRequestLen 30000000
   FcgidIOTimeout 1800
   FcgidConnectTimeout 1800
</IfModule>

查看公式文档后,发现了相关设置。
https://httpd.apache.org/mod_fcgid/mod/mod_fcgid.html#fcgidbusytimeout
很明显,默认的时间可能会导致错误,而且由于处理比较重,可能会被中断。可以说,这个设计本身就不太好。

当我立即进行了更新并再次执行时,错误已经被避免了。

<IfModule fcgid_module>
   FcgidInitialEnv PHPRC "c:/php"
   FcgidInitialEnv PHP_FCGI_MAX_REQUESTS 0
   FcgidMaxRequestLen 30000000
   FcgidIOTimeout 1800
   FcgidConnectTimeout 1800
   FcgidBusyTimeout 1800
</IfModule>