An alpha version of Apache for Windows is now
available. This is an experimental version that is intended
for Windows developers only. It is released as source code
only, so potential users must first compile it with Microsoft
Visual C++. The intention of this release is to get some
feedback about Apache for Windows from people with the tools
to track down problems or bugs. Future non-alpha releases
will provide binaries for Windows platforms for users without
development tools or experience.
Apache is available in three different archives: .tar.gz and
.tar.Z for Unix users, and a .zip for Windows. The .zip
archive contains files with the correct line endings for
Windows systems. It also includes a (correct) Makefile.nt to
build all the parts of Apache on Windows.
To fit in with the Windows environment, Apache on Windows has
some slight differences to Apache on Unix. It also has two
major new features:
-
Modules can be loaded at runtime from pre-compiled
libraries (DLLs)
-
A new module is provided to enable support for ISAPI
applications. ISAPI is a web server extensions interface,
similar to the Apache module API, which is used by
Microsoft's IIS server and some other Windows web servers.
This version is also marked alpha rather than beta because new
features will be added before the start of the real beta
testing phase of Apache 1.3
Release: 1.2.1 (Released 6th July 1997) (local download
sites)
Beta: None
Alpha: 1.3a1 (Released 23rd July 1997) (local download
sites)
Bugs fixed in 1.3:
-
Better QNX support
-
Compilation problem on Solaris when using Socks
-
Now supports imagemap files created by Microsoft FrontPage
-
The GET method in HTTP/1.1 can have a body, but Apache was
not reading it, so it would be treated as the next request
on a kept-alive connection. Now fixed to read (and discard)
any body on a GET request (and also on OPTIONS and TRACE
requests).
Patches to Apache 1.2 bugs will be made available in the apply
to 1.2.1 directory on the Apache site. Some new features
and other unofficial patches are available in the 1.2
patches directory. For details of all previously reported
bugs, see the Apache bug database and
Known
Bugs page. Many common configuration questions are
answered in the Apache FAQ.
Unless otherwise noted, all the new features discussed here
are planned for Apache 1.3 and not Apache 1.2.1.
Apache is a HTTP/1.1 server and always returns a HTTP/1.1
format response, even if the original request was marked
HTTP/1.0. This is the correct way to behave according to the
HTTP standards. However some buggy clients have problems when
they see a response marked HTTP/1.1, so as a workaround
Apache added a force-response-1.0 environment
variable, which when set (usually by
BrowserMatch) causes Apache to mark its response
as HTTP/1.0. It was recently noticed that it was doing these
even if the request actually came from a HTTP/1.1
client. This has been fixed, so now all requests from
HTTP/1.1 clients get a HTTP/1.1 response.
This was alright until the recent Microsoft Internet Explorer
4 PR 2 release, which claims to be HTTP/1.1 but infact cannot
handle HTTP/1.1 responses in some cases. Because all requests
from MSIE4 PR2 are marked as HTTP/1.1, Apache was again
correctly returning a HTTP/1.1 response. To work around the
bugs in MSIE4 PR2, a new variable has been added:
downgrade-1.0. If set this will make Apache
treat an incoming HTTP/1.1 request as if it was really marked
HTTP/1.0.
A
patch for 1.2.1 to implement this new feature is
available.
The auto-indexing module, mod_autoindex (previously part of
mod_dir), is being updated to sort the directory index by any
column. It works rather like the directory lists in Windows,
where selecting a header causes the display to be sorted by
that column. Selecting the same header again swaps between
sorting in ascending and descending order.
A new Configuration rule, IRIXN32,
can be used to get Apache to compile with the n32 libraries
if they are available.
The defined constant APACHE_RELEASE_DATE has
been replaced with one called APACHE_RELEASE
which contains a release number. This number will always
increase for higher version numbers. The problem with using a
date was that if, for example, bugs are found in 1.2.1 then a
1.2.2 may be released after a beta release of 1.3. So
1.2.2 would have a later release date, despite having less
features. This new release number system lets module authors
check the release number to see what features are available.
A new version of the embedded perl module (ePerl) is now
available. This module lets you put Perl commands directly
into HTML pages and get them executed when the page is
requested. This is similar to other embedded languages such
as SSI, PHP or ASP (on Windows).
There are many ways of embedding commands into HTML pages
with Apache. The feature Dynamic
Page Languages gives some more information.