I'm trying to get the ZServer (and Zope) to run behind IIS on NT 4.0. The How-To's, list messages, and readme's refer to modifying the zope.cgi file. Unfortunately, I've got an NT installation of Zope that I installed direct from precompiled binaries, and I can't find a zope.cgi file anywhere.
I've seen some examples of zope.cgi posted on the list, but these were all for linux installations. Does anybody have an example zope.cgi from an NT installation, and that is intended to run behind IIS, not Apache? Or, barring that, would anyone be willing to help make suggestions on modifying an existing zope.cgi file from a linux installation. Most of the paths are obvious to change, but I can't, for instance, find the pcgi.soc, pcgi.pid, or pcgi.log files. One example I have is this one:
I have Zope running using pcgi behind a Netscape Enterprise server on NT. The configuration may not be exactly what you want, but it may help somewhat. A lot of what I did to get this working was based on the IIS instructions, and it does actually work (honest). My zope installation on the server is in the directory H:\Zope. File Zope.pcgi: #!H:/cgi-bin/pcgi-wrapper.exe PCGI_NAME=Zope PCGI_MODULE_PATH=H:/Zope/lib/python/Zope PCGI_PUBLISHER=H:/Zope/pcgi/pcgi_publisher.py PCGI_EXE=H:/Zope/bin/python.exe PCGI_SOCKET_FILE=H:/Zope/var/pcgi.soc PCGI_PID_FILE=H:/Zope/var/z2.pid PCGI_ERROR_LOG=H:/Zope/var/pcgi.log PCGI_DISPLAY_ERRORS=1 INSTANCE_HOME=H:/Zope PCGI_PORT=9079 I don't use the file associations as suggested for the IIS configuration. Instead I created a file zope.bat: @h:\cgi-bin\pcgi-wrapper h:\cgi-bin\zope.pcgi I had to make a couple of small changes to pcgi-wrapper and recompile it (these may not be needed for IIS): File pcgi.h: Change: #ifdef WIN32 #include <windows.h> #include <io.h> #include <iostream.h> #include <winsock.h> #endif to: #ifdef WIN32 #include <windows.h> #include <io.h> #include <iostream.h> #include <winsock.h> #include <fcntl.h> #endif And in pcgi-wrapper.c add the following lines just after the #ifdef CLOSE_FDS...#endif #ifdef WIN32 _setmode(fileno(stdin), O_BINARY); _setmode(fileno(stdout), O_BINARY); #endif Without these changes to force stdio into binary mode, I was able to get it working on HTML documents but GIF files were corrupted. -- Duncan Booth duncan@dales.rmplc.co.uk int month(char *p){return(124864/((p[0]+p[1]-p[2]&0x1f)+1)%12)["\5\x8\3" "\6\7\xb\1\x9\xa\2\0\4"];} // Who said my code was obscure? http://dales.rmplc.co.uk/Duncan