[1]
Consider a 16 bit executable cgi. For example, the program TEST.PAS
compiled with Borland Pascal resulting in TEST.EXE:
begin
WriteLn('Content-type: text/html');
WriteLn;
WriteLn('<h1>The old Hello World test !</h1>');
end.
[2]
Consider the following lines in httpd.conf:
ScriptAlias /cgi-bin/ "C:/Arquivos de programas/Apache
Group/Apache/cgi-bin/"
ScriptAlias /cgi-16/ "C:/Apache/cgi-16/"
<Directory "C:/Arquivos de programas/Apache Group/Apache/cgi-bin">
AllowOverride None
Options None
</Directory>
<Directory "C:/Apache/cgi-16">
AllowOverride None
Options None
</Directory>
Note: Arquivos de Programas = Program Files (Portuguese)
[3]
Consider the following 2 requests:
http://localhost/cgi-bin/teste.exe
http://localhost/cgi-16/teste.exe
[4]
The first request (cgi-bin/teste.exe) gives
access.log
localhost - - [26/May/1999:13:32:09 -0300] "GET /cgi-bin/teste.exe
HTTP/1.0" 500 602
error.log
[Wed May 26 13:32:09 1999] [error] [client 127.0.0.1] Premature end of
script headers: c:/arquivos de programas/apache
group/apache/cgi-bin/teste.exe
The second request (cgi-16/teste.exe) gives
access.log
localhost - - [26/May/1999:13:32:18 -0300] "GET /cgi-16/teste.exe
HTTP/1.0" 200 37
There are no errors in this case and I can see a big "The old Hello
World test !" in browser.
[5]
Under these evidences, I can suppose
(a) Apache can't get the result of 16 bit executable cgi;
OR
(b) Windows98 (DOS) can't send the result through environment to Apache
(a) or (b) occur when cgi directories have long or composed file name,
for instance
c:/program files/...
c:/123456789/...