How to install ZCGI Simply unpack the tarball under your products folder on your Zope server, then restart Zope. How to uninstall ZCGI Ensure all instances of ZCGIScript, ZCGIFolder and ZCGIExtensionMap have been removed, then delete the ZCGI folder from your products folder. Then restart Zope. How To Get ZCGI Working * Create the folders * Create a folder called **cgi-bin** under your Zope root or your instance root. This is your **zope-cgi-bin** folder * *Optional* Create a cgi-bin folder, or locate your Legacy webserver's existing cgi-bin folder. This (Or these - you can have more than one) is (are) your **additional-cgi-bin** folder(s). * Create Zope objects * For each script you place in your **zope-cgi-bin** create a ZCGIScript object somewhere within your Zope. This object can be called from HTML in the same way as any other Zope object, but when called it will run the cgi-bin script in the **zope-cgi-bin** folder. * For each **additional-cgi-bin** create a ZCGIFolder object somewhere in your Zope. For instance your default Apache cgi-bin folder could be represented by a ZCGIFolder object call cgi-bin, in the root of your zope. This will then function exactly as a cgi-bin folder on a legacy webserver. * If you want to add or change the handlers that are run for particular extensions of cgi-bin scripts, you can make changes to the ZCGIExtensionMap object in the root of your Zope. * If you would like a handler to only apply to a certain section of your Zope, you can create a new ZCGIExtensionMap object in that Zope folder, and add the handler to it. * You can optionally get ZCGI to replace the head/tail of the returned HTML with either *standard_html_header* and *standard_html_footer* - (**DTML**), with *standard_template.pt* (macros/page, slot=body) (**Page Templates**), with *main_template* (macros/master, slot=main) (**CMF**) or the head/tail can be removed completely (**None**). If the output is not of content-type text/html, or headers is set to **CGI**, then this step is skipped. Special Notes When calling the scripts in a ZCGIFolder, you must not include the file extension in the URL you call. Doing so will cause a 404 - Not found error. Under certain circumstances, ZCGIScripts and scripts in ZCGIFolders may freeze until another script has finished running. This is to prevent two scripts running within the same script environment - It should not be possible as most operating systems duplicate the environment rather than referencing it, but I thought it best to be safe. If you experience this, please let me know as soon as possible, including details of the OS so I can find a work-around. Credits A big credit goes to "Fred Wilson Horch":mailto:fhorch@ecoaccess.org for giving me the kick start I needed to get this product going in the first place, and for support through the initial development phase. Special thanks go to Marc Lindahl - "http://www.zope.org/Members/bowerymarc":http://www.zope.org/Members/bowerymarc - who helped me with a number of quite persistent problems and contributed several changes and bug fixes to the code.