我最近在 Amazon EC2 64 位 Linux AMI 上安装了 mod_fcgi,并使用了 Movable Type 5.13。这是我的错误日志。
[warn]mod_fcgid: error reading data, FastCGI server closed connection, referer: http://xxx/mt.fcgi?__mode=start_rebuild&old_previous=1&is_new=0&next=0&old_status=2&type=entry-1&blog_id=1&entry_id=1
[error]Premature end of script headers: mt.fcgi, referer: http://xxx/mt.fcgi?__mode=start_rebuild&old_previous=1&is_new=0&next=0&old_status=2&type=entry-1&blog_id=1&entry_id=1
我的 .conf 文件为 /etc/httpd/conf.d/fcgid.conf
LoadModule fcgid_module modules/mod_fcgid.so
# Use FastCGI to process .fcg .fcgi & .fpl scripts
AddHandler fcgid-script fcg fcgi fpl .cgi
# Sane place to put sockets and shared memory file
FcgidIPCDir /var/run/mod_fcgid
FcgidProcessTableFile /var/run/mod_fcgid/fcgid_shm
<IfModule mod_fcgid.c>
AddHandler fcgid-script .fcgi
SocketPath /tmp/fcgid_sock/
FcgidConnectTimeout 1000
FcgidMaxProcesses 1000
FcgidMaxProcessesPerClass 100
FcgidTerminationScore 20
FcgidSpawnScore 180
FcgidIdleTimeout 1000
FcgidIOTimeout 1000
FcgidMaxRequestLen 100485760
</IfModule>
Movable Type 重建了 html,但大约 4~5 分钟后它就给我“内部服务器错误”。我以为这是一个超时错误,所以我只是调高了所有与超时相关的设置,但结果还是一样。
更新:
进一步研究发现,使用 Apache 2.2.x VirtualHost 设置存在一些错误,导致 fcgi conf 文件无法重置为默认设置。因此,我在 VirtualHost 中设置了 FcigdConnectTimeout 等,但结果没有改变。