no message
[catagits/fcgi2.git] / README_NT.txt
1 FastCGI for Windows NT README (V2.0, beta 1)
2 ============================================
3
4     Version 2.0.1, 20 March 1997
5     $Id: README_NT.txt,v 1.1 1997/09/16 15:36:24 stanleyg Exp $
6     Copyright (c) 1996 Open Market, Inc.
7     See the file "LICENSE.TERMS" for information on usage and redistribution
8     of this file, and for a DISCLAIMER OF ALL WARRANTIES.
9
10         This is a beta copy of the FastCGI libraries for Windows NT 3.51 
11 and NT 4.0.  It will also build on (or should build on) all previously 
12 supported versions on Unix.
13
14         The Unix build instructions are identical to the past.  The 
15 Windows NT version however is slightly different due to the fact that NT 
16 doesn't contain a native equivalent to the bourne shell to start with.
17 NT also doesn't support the same Makefile structure and therefore we have
18 provided Visual C++ project makefiles for the cgi-fcgi application as well
19 as the libfcgi DLL.
20
21         The first version of the libraries for Windows NT will require a
22 little care in installing and building.  However, what do you want for 
23 free?  Subsequent versions will ideally support a more NT look and feel 
24 but that's if time permits.
25
26         For those of you that have the MKS toolkit or other bourne shell
27 equivalent for NT, great.  You're off to a good start and will be able
28 to use the configure script provided to generate your config header file
29 at the very least.  However, in order to make life easier, we are 
30 providing an NT version of the header file that should allow you to build
31 the sample applications without requiring you to run configure at all.
32 (NOTE: The NT version has only been tested on Windows NT 4.0 running on
33        X86 hardware.  Other CPUs may have slightly different defines.)
34
35         There are two batch files provided which will build Debug versions
36 of fastcgi.dll and the cgi-fcgi application.  They are:
37
38         build_no_shell.bat - This will copy a canned version of the
39                              fcgi_config_x86.h file to fcgi_config.h and
40                              remove the need to use the "configure" script
41                              to generate this.  (This is the recommended
42                              way to build the sample DLL and applications.)
43
44                  build.bat - This version will run the "configure" script
45                              and will then build libfcgi.dll and 
46                              cgi-fcgi.exe.
47
48         Installation
49         ============
50
51         Unpack the kit and install it into a directory of your choice.
52 Try something simple like "C:\FastCGI.beta".
53
54         In order to run under IIS using the cgi-fcgi.exe "shim" program,
55 we need to create a file extension type that IIS will recognize and will
56 automatically launch the application and/or connect to the target FastCGI
57 application.
58
59         1) Make a directory "C:\FastCGI.beta".  The name is not critical
60            but is is what is assumed for the remainder of this README.
61
62         2) cd into "C:\FastCGI.beta".
63
64         3) Unpack the kit into this directory.
65
66         4) Run build_no_shell.bat
67
68         5) Add the .fcgi file type to the registry for IIS.  This is done
69            using regedit.
70
71 \HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W3SVC\Parameters\Script Map
72
73         Edit -> New -> String Value <CR>
74
75         6) Type in ".fcgi" for the "String Value" extension name.
76
77         7) Double click the ".fcgi" entry.
78
79         8) Enter C:\FastCGI.beta\FcgiBin\cgi-fcgi.exe -f %s
80            NOTE: This assumes you installed into c:\FastCGI.beta
81
82            Save this value and exit regedit.
83
84         9) Add the pathname of libfcgi.dll to your system path 
85            environment variable.
86                 "C:\FastCGI.beta\libfcgi\Debug"
87
88            NOTE: The build_no_shell.bat command will copy all the sample
89                  applications as well as cgi-fci.exe and libfcgi.dll to
90                  the directory "FcgiBin" which will be created as a result
91                  of the build_no_shell.bat command being run.  This makes
92                  it easier to use and removes the need for adding the
93                  paths to the system environment as the libfcgi.dll will
94                  live in the same directory as the applications which will
95                  be using it.  This has been tested and qualified on 
96                  IIS 3.0.
97
98                  If your applications live in a directory other than the
99                  FcgiBin directory AND there's no path environment 
100                  variable registered which contains a pointer to a valid
101                  libfcgi.dll the FastCGI application will not work.
102
103         10) Use Internet Service Manager (or the registry editor if you're
104             brave) and map in the directory "C:\FastCGI.beta\FcgiBin" 
105             as a virtual directory "/fcgi" with execute access and 
106             read access.
107
108         You should now be ready to try out the shipped samples.  Try this by
109         accessing the following urls:
110
111         The url "http://yourServer/fcgi/tiny-fcgi.exe" reloaded repeatedly
112         should produce the following output:
113
114         FastCGI Hello! (C, fcgi_stdio library)
115
116         Request number 1 running on host "yourServer" Process ID: N
117
118         where:
119
120         yourServer is the name of your server.
121
122         N is the process id number of the tiny-fcgi.exe process.  This
123         should be changing each time you reload the URL.
124
125         Now try the url "http://yourServer/fcgi/tiny-fcgi_nt.fcgi".  The
126         output from this url should produce the same as the preceeding url 
127         but you should notice the "Request number" incrementing each time
128         you reload and the Process ID should remain constant.  If this is 
129         working, you have a persistent FastCGI application running.
130
131
132         Known Problems/Limitations
133         ==========================
134
135         1) This port was build for Windows NT 3.51 and above.  It was
136            not built with Windows 95 as one of the target platforms.
137            The reason is that I/O completion ports are used for 
138            asynchronous I/O which are not present on Windows 95.  
139            Changing this is not that big a job and involves changing to 
140            use overlapped I/O.  Again, the port was towards Windows NT
141            which was why the I/O completion ports were chosen.  This
142            mechanism was also chosen in anticipation of the multi-threaded
143            FastCGI for NT as it will map to the model we currently
144            have designed.
145
146
147 NOTE: Use the application "kill.exe" contained in the NT resource kit
148       to kill persistent FastCGI applciations!
149