Note: A log of changes released after moving to the ASF (releases after 2.2) is in the file CHANGES-FCGID. version 2.2 1. Support configuration "PassHeader" Thank Hans Christian Saustrup for the suggestion. 2. Support apr_shm_remove() in httpd.2.0.X Thank Hans Christian Saustrup for bug report. 3. Support configuration "TimeScore" Thank Tim Jensen for the patch. 4. Support new configurations "MaxRequestInMem" and "MaxRequestLen" If the length of http request longer than "MaxRequestInMem", it will store in tmp file. It the length of http request longer than "MaxRequestLen", it will return internal server error. Thank Gabriel Barazer(gabriel at oxeva.fr) for the bug report. Thank Steffen(info at apachelounge.com) for the help on this issue. 5. Fix miner Sanity check bug Thank Yuya Tanaka for bug report version 2.1 ( Feb 15th 2007 ) 1. Add missing config.m4 and Makefile.in for static linking Thank Mark Drago for notice 2. FCGIWrapper disallowed in .htaccess Thank Balinares for patch 3. Bug fix. Authoritative flag reversed Thank Chris Darroch for the patch 4. Support arguments in FCGIWrapper Thank Andre Nathan for suggestion and great help on testing it. 5. Support new config "SharememPath", which specifies the location of share memory path. 6. Check running user is root or not, while suexec is enabled. Thank Chris Holleman for the bug report. 7. Bug fix. Should not pass respond to auth checkers. Thank Szabolcs Hock for bug report. version 2.0 ( Oct 29th 2006 ) 1. Support FastCGI Authorizer protocols now. 2. Add apxs compile instruction in INSTALL.txt. Thank Hans Christian Saustrup, hc at saustrup.net for the suggestion. 3. Bug fix. (Win32 only) PHP script can not create socket on Win32. Thank bbscool at zjip.com for the bug report and the help. 4. GREAT patchs from Robert L Mathews, rob at tigertech.com Fix compile warnings Adds a MaxRequestsPerProcess parameter that allows mod_fcgid to exit after handling a certain number of requests Close socket before fork avoid the 1-second sleep the first time a process is spawned 5. Print warning log while read data error from FastCGI process. 6. Apply patch from Scott Lamb, Fix mod_fcgid 1.10 warnings on x86_64 version 1.10 ( Jul 3rd 2006 ) 1. Use poll() instead of select() in UNIX. "It becomes problematic on apache2 with large number of logfiles. Apache2 calls poll() (when OS supports it), and in that case it doesn't need to be recompiled with larger FD_SETSIZE. select() is still limited to FD_SETSIZE." Thank Piotr Gackiewicz gacek at intertele.pl for the patch. 2. Bug fix: "Some requests fail with HTTP 500 and no errorlog entry is generated" Thank Piotr Gackiewicz gacek at intertele.pl for the patch. 3. Use anonymouse share memeory to make OS X happy. Thank andkjar at obtech.net for the patch. 4. Add config.m4, mod_fcgid now can be static linked in httpd(See INSTALL.txt) version 1.09 ( Apr 25th 2006 ) 1. Add configuration DefaultMinClassProcessCount(default 3). Idle fastcgi will not be killed if their count less than DefaultMinClassProcessCount. (Thank Finn Smith, finn at timeghost.net for suggestion) 2. Add configuration PHP_Fix_Pathinfo_Enable(default 0). If you are using PHP and set cgi.fix_pathinfo=1 in php.ini, please add "PHP_Fix_Pathinfo_Enable 1" in httpd.conf. (Thank Florian Munz, flo at myhosting.de for bug report)? 3. Split error log whle '\r' or '\n' are inside the text send to "stderr". (Thank frederic at jolliton.com for the patch) version 1.08 ( Jan 22nd 2006 ) 1. apr_bucket_copy() does not work with buckets from mod_ssl, use apr_bucket_heap_create() instead :( (Thank Grzegorz Sampolski, gs at blink.pl for the bug report) 2. Wrapper binary can be stored in a different location to the web content (like /usr/local/apache2/fcgi-bin) (Patch from Stephen Grier, s.e.grier at qmul.ac.uk) 3. Support Apache 2.2 now (Patch from RyoYazaki, yazaki.ryo at mind.co.jp, and many other people report the compiling problem) 4. Support "\r\n\r\n " HTTP header from CGI (Thank Grzegorz Sampolski, gs at blink.pl for the bug report) version 1.07 ( Nov 10th 2005 ) 1. Configuration IPCConnectTimeout, IPCCommTimeout, BusyTimeout can be overwrite in VirtualHost section (Thank cthulhu at planet-multiplayer.de for the suggestion) 2. Add EXTRA_CFLAGS = -I$(builddir) in Makefile (Thank contagion at gmail.com for the suggestion) 3. Support Apache 2.1 now (Patch by nick at webthing.com) (Thank nick at webthing.com for the excellent patch) 4. Support "\r\n\t" HTTP header from CGI version 1.06 ( Apr 27th 2005 ) 1. "DefaultInitEnv" now can be placed inside VirtualHost section 2. Bug fix. "FCGIWrapper" now stores in a per-directory config structure. (The old implementation stores it in a per-server config structure, which may be overwrited by another section) (Thank phyre at rogers.com for bug report and the great help for the bug fix AGAIN) version 1.05 ( Mar 4th 2005 ) 1. Bug fix. suEXEC wrapper in virtualhost environment will shares the process interpreters. (Thank phyre at rogers.com for bug report and the great help for the bug fix) version 1.04 ( Dec 2nd 2004 ) 1. Bug fix. ap_scan_script_header_err_core can return non OK without errors. e.g. CGI outputs Last-Modified header and browser request with If-Mofieided-Since header, ap_scan_script_header_err_core() may returns 302(Not Modified) (Thank Tatsuki Sugiura, sugi at nemui.org for the bug fix patch) 2. Choose FCGI wrappers based on file extentions. e.g. FCGIWrapper /usr/local/bin/php .php Tells mod_fcgid calling all *.php scripts with wrapper /usr/local/bin/php. (Thank Mathijs Brands, mathijs at crooked.net for the suggestion) verison 1.03 ( Nov 3rd 2004 ) 1. Add configuration "OutputBufferSize". The old implementation keep CGI output in a 64k bytes buffer, before send them to web browser(for better network IO performance). If FCGI_Fflush() is called in your application, please add "OutputBufferSize 0" in you httpd.conf, which will not keep any CGI output in cache buffer. The default value of OutputBufferSize is 64k byte. (Thank Grzegorz Sampolski, gs at blink.pl) 2. Return HTTP_SERVICE_UNAVAILABLE instead of HTTP_INTERNAL_SERVER_ERROR, while mod_fcgid can not apply a FastCGI process slot. (Thank Grzegorz Sampolski, gs at blink.pl for the suggestion) version 1.02 ( Oct 1st 2004 ) 1. Bug fix. (Win32 only) Forward request to incorrect process when a script is a directory in the URL. For example, if in the "cgi-bin" directory there are two programs, "a.exe" and "b.exe". If you go to the URL "http://localhost/cgi-bin/a.exe/defghi" then a.exe will start. Then if you go to the URL "http://localhost/cgi-bin/b.exe/uvwxyz" the request will be processed by the already running a.exe. (Thank rripley at amadvertising.com) version 1.01 ( Sep 21st 2004 ) 1. More graceful implementation of suEXEC on UNIX. (Thank radek at karnet.pl for the advice) version 1.00 ( Sep 10th 2004 ) 1. Release FastCGI process slot before sending buffer back to browser. (less process count) version 0.88 ( Sep 3rd 2004 ) 1. Bug fix. File descriptor is closed twice if connect to UNIX domain socket error. 2. Bug fix. Get server last active time incorrectly. version 0.87 ( Aug 26th 2004 ) 1. suEXEC supported. version 0.86 ( Aug 22th 2004 ) Some major changes for performance. (Hits/Second is 30% greater than the old implementation) 1. Socket bucket instead of heap bucket. (less memory) 2. Pass buffer to browser, once the size of buffer exceed 64k bytes. (less memory) 3. Non-block unix domain socket on UNIX. (better I/O performance) 4. writev() instead of write() on UNIX. (better I/O performance) 5. Try to read at least 8k bytes each single reading. (better I/O perormance) 6. Disconnect FastCGI server, once browser disconnect. (less process count) version 0.80 ( Jul 27th 2004 ) 1. Duplex channel added, Apache now will get notification once FastCGI process is spawned. 2. Bug fix. The FastCGI process share the signal handler with PM(Process Manager) process, if the FastCGI process get signal after fork() and before execve(), it will corrupt the share memory. ( It's a very short interval between fork() and execve(), so this rarely happens ) version 0.77 ( Jul 9th 2004 ) 1. Organize the configuration again 1) add "FCGIWrapperGroup" setting 2) "FCGIWrapper" now takes only one argument 3) remove "ServerConfig" setting, because it't not work with wrapper yet Please visit http://fastcgi.coremail.cn/doc.htm for more information about configuration version 0.76 ( Jul 6th 2004 ) 1. Code fix. Replace the depreciated BRIGADE_FOREACH macro, which compile against httpd 2.1-Dev. (Patch by Paul Querna(chip at force-elite.com)) 2. PHP FastCGI Wrapper now can be run both with "share" and "non-share" mode. version 0.74 ( Jun 23rd 2004 ) 1. Bug fix. Ignore script checking while running in Win32 PHP wrapper mode. 2. Indent the code with K&R style. version 0.72 ( Jun 13rd 2004 ) 1. Bug fix. Trim the padding nuls at the end of data. (Thank rick.stewart at theinternetco.net) version 0.7 ( May 22nd 2004 ) 1. PHP FastCGI Wrapper is supported on UNIX and Windows. version 0.62 ( May 18th 2004 ) 1. Unix version now compilable with gcc2.95.2 2. Unix version is tested on Solaris7 & Solaris8 version 0.6 ( May 8th 2004 ) 1. Unix version is tested on Redhat8(gcc3) 2. Windows version is tested on Win2k(VC6)