I wrote a simple crawling script (in php) at localhost (with 4 variations). All of them worked fine at localhost. But when I made move them to shared hosting, two of them worked others gave internal server error. I looked at error_log and I saw these line:
[Wed Jan 23 22:01:02 2013] [warn] [client ***] mod_fcgid: read data timeout in 61 seconds
[Wed Jan 23 22:01:02 2013] [error] [client ***] Premature end of script headers: index.php
I searched but I couldn't find any useful result. What is related to these errors? Any ideas?
If you can access Linux server please edit
/etc/httpd/conf.d/fcgid.conf
file with vim.Change
FcgidIOTimeout 45
toFcgidIOTimeout 600
.Restart Apache.
Then Fast CGI timeout will be solved.
They timed out. It's likely your execution time is set to 60 seconds. So at 61 seconds, the process was killed and therefore had a premature end.
You can adjust your timeout (not recommended) or run the script through another source (recommended).
Essentially your scripts are running too long for the server configuration. mod_fcgid is waiting for php to respond, and its set to give up after 61 seconds. Since this shared hosting, you may not be allowed to change it.
This is not something that should be run via browser/web server anyway. Write it as a console script.
If you're using virtual hosts (in my case i've ispconfig) you need to do changes in virtual host config files. These files are under
/etc/httpd/conf/sites-available
for each virtual host. Just edit your desired config file, locateIPCCommTimeout
and set current value to a higher number. You may need to do this change for both variables in same config file in case you have regular and SSL sites.I had this problem on a MediaTemple Grid instance with a Drupal7 install; turns out it was being caused by FastCGI; switching to normal / stable CGI seems to have fixed the issue.
mod_cfgid introduces other time limits besides PHP's
max_execution_time
while executing php scripts. Whichever comes first "wins".As far as I can see, there are numerous time limit configuration items that mod_cfgid considers, and I'm not the expert to tell which one does which, but at least in our case adding the following line
in the
fcgid.conf
solved our unexpected timeout problems.