Hopefully the following will help some people from wasting a lot of time chasing their tail.
There are many “How-To” documents describing how to use mod_fcgid in Apache with PHP and almost all of them are absolutely WRONG!
If you run across a document which directs you to place process limiting directives for mod_fcgid in the <VirtualHost> block, don’t listen to it. Although the documentation for mod_fcgid says you can place these directives there (up until version 2.3.2), you need to be aware that they will be ignored!
Here’s a note from the latest and greatest readme:
Some directives which could be placed inside <VirtualHost> but were
ignored before now result in configuration errors. As before, these
directives must be set at global scope to have the desired effect. (emphasis added)
If you are attempting to use any of these directives, you MUST use them in a global scope (which means they can NOT be set per virtual host even though the documentation says they are allowable in that context).
The following is a list of previously ignored – now causing an error if placed in VirtualHost – directives for mod_fcgid:
FcgidBusyScanInterval, FcgidBusyTimeout, FcgidMaxProcessesPerClass, FcgidDefaultMinProcessCount, FcgidErrorScanInterval, FcgidIdleScanInterval, FcgidIdleTimeout, FcgidMaxProcesses, FcgidFixPathinfo, FcgidProcessLifetime, FcgidProcessTableFile, FcgidIPCDir, FcgidSpawnScore, FcgidSpawnScoreUpLimit, FcgidTerminationScore, FcgidTimeScore, and FcgidZombieScanInterval
If you are having trouble with your MaxProcesses, ProcessLifetime, MaxProcessesPerClass or MinProcessCount being ignored, try moving them to the global context.