Chinese Info
Download (source)
Support This Project

Welcome to mod_fcgid home

    mod_fcgid now is a part of Apache httpd, and the new home page is: http://httpd.apache.org/mod_fcgid/
    Discussions of mod_fcgid take place on the main HTTPD development mailing list.
dev@httpd.apache.org - development.
cvs@httpd.apache.org - svn commit logs for httpd, including mod_fcgid.
    Thank you for your support these years :)

What is mod_fcgid? It is a binary compatibility alternative to Apache module mod_fastcgi.

mod_fcgid has a new process management strategy, which concentrates on reducing the number of fastcgi server, and kick out the corrupt fastcgi server as soon as possible.


Goals For the Implementation

Binary compatibility to mod_fastcgi
You don't need to recompile your existing fastcgi programs, what you need to do is install the module and make it work. 

Strict control on process spawn
Every request handler of Apache (It may be a process, or a thread, depending on the MPM) knows about how many existing fastcgi servers are running (with the help of share memory) , and the request handlers collaborate with each other to make sure over-spawning is not going to happen.

Simple spawning-speed control strategy
It's a score-based strategy, the score increases while a process is spawned or terminated, and decreases as time progresses;while the score is higher than the score maximum,the spawning will be held. Thus it can make a prompt response to the requests especially when the system starts up: on the other hand, prevent the failure resulted from the immediate termination of the applications. 

Fastcgi server error detection
The fastcgi server does not share the same UNIX domain socket (or named pipe, in Windows), every fastcgi
server has a unique path listening on. That makes it easy to kick out the corrupt fastcgi server.

Use the Apache APR library as much as possible, and split the portable and un-portable source code. All
un-portable code are organized in arch directory. Now the module is tested on Linux, FreeBSD( included in FreeBSD port now), Windows 2000 and Solaris.

PHP supported
PHP is NOT recommended to work with multithreaded Apache2(worker MPM and WinNT MPM, for example), because some PHP extensions( or 3rd party library they are using)  are not guaranteed thread-safe. PHP running with FastCGI mode is a solution to this problem.

To enable FastCGI, You can configure PHP with --enable-fastcgi and recompile PHP . ( FastCGI is build in supported  if PHP is installed with Win32 installer, which can be downloaded from www.php.net )