| |
| Apache 2.0alpha5 Released |
| ------------------------- |
| |
| The Apache Group is pleased to announce the release of the fifth public |
| alpha release of Apache 2.0. |
| |
| Apache 2.0 offers numerous enhancements, improvements and performance |
| boosts over the 1.3 codebase. The most visible and noteworthy addition |
| is the ability to run Apache in a hybrid thread/process mode on any |
| platform that supports both threads and processes. This has shown to |
| improve the scalability of the Apache HTTPD server significantly in |
| our early testing, on some versions of Unix. This release also |
| greatly improves the performance and robustness of Apache on the |
| Microsoft Windows Operating Systems. Lastly we are proud to announce |
| support for BeOS in this version of the server. |
| |
| Apache 2.0a5 under UNIX has undergone some testing, but there are some |
| known issues in the current release (hey, it is an "alpha" for a |
| reason!). It is intended for developers and experienced Apache HTTPD |
| administrators to play around with and work on. It is not a production |
| release. If you do not feel comfortable compiling and working with |
| code, the Apache Group strongly recommends that you wait for a more |
| stable beta release before you try this version. |
| |
| Apache 2.0a5 under Windows has undergone some testing as well. There |
| are known issues in the current release with regards to Apache on windows |
| 95 and 98. We are working through those problems, and hope to have them |
| fixed for future releases of the 2.0 alpha. |
| |
| There are new snapshots of the Apache httpd source available every 6 |
| hours from http://dev.apache.org/from-cvs/apache-2.0/ - please |
| download and test if you feel brave. We don't guarantee anything |
| except that it will take up disk space, but if you have the time and |
| skills, please give it a spin on your platforms. |
| |
| Apache has been the most popular web server on the Internet since |
| April of 1996. The May 2000 WWW server site survey by Netcraft (see: |
| http://www.netcraft.co.uk/Survey/) found that more web servers were |
| using Apache than any other software running on more than 60% of the |
| Internet web servers. |
| |
| For more information, please check out http://www.apache.org/httpd.html |
| |
| Changes with Apache 2.0a5 since Apache 2.0a4 |
| |
| *) Perchild is serving pages after passing them to different child |
| processes. There are still a lot of bugs, but this does work. I |
| have made requests against the same installation of Apache, and had |
| different servers use different user IDs to serve the responses. |
| This change moves to using socketpair instead of an AF_UNIX socket. |
| [Ryan Bloom] |
| |
| *) Perchild MPM still doesn't work perfectly, but it is serving pages. |
| It can't seem to pass between child processes yet, but I think we |
| are closer now than before. This moves us back to using Unix |
| Domain Sockets. [Ryan Bloom] |
| |
| *) libapr functions and types renamed with apr_ prefix. |
| #include "apr_compat.h" for 1.3.x backwards compat |
| [Perl] |
| |
| *) Fix problems with APR sockaddr handling on Win32. It didn't always |
| return the right information on the local socket address. |
| [Gregory Nicholls <gnicholls@level8.com>] |
| |
| *) ap_recv() on Win32: Set bytes-read to 0 on error. |
| [Gregory Nicholls <gnicholls@level8.com>] |
| |
| *) Add an option to not detach from the controlling terminal without |
| going into single process mode. This allows for much easier |
| debugging of the process startup code. [Ryan Bloom] |
| |
| *) ab: don't use perror() to report the failure of an APR function. |
| [Jeff Trawick] |
| |
| *) Make dexter, mpmt_pthread, and perchild MPMs not destroy the |
| scoreboard on graceful restarts. |
| [Ryan Bloom] |
| |
| *) Fix segfault/SIGSEGV when running gzip from mod_mime_magic.c. |
| An invalid ap_proc_t was passed to ap_create_process(). |
| [Jeff Trawick] |
| |
| *) Allow modules to register filters. Those filters are still |
| never called, but this is a step in the right direction. |
| [Ryan Bloom and Greg Stein] |
| |
| *) Register the mod_cgid daemon process for cleanup so that it is |
| killed at termination if it does not die when the parent gets |
| SIGTERM. This change is to fix occasional problems where the |
| process stays around. Bugs in similar logic in mod_rewrite and |
| mod_include were also fixed. [Jeff Trawick] |
| |
| *) Fix a bug in the time handling. Basically, we were imploding a time |
| in ap_parseHTTPdate, but it had bogus data in the exploded time format. |
| Namely, tm_usec and tm_gmtoff were not filled out. ap_implode_time |
| uses those two fields to adjust the time value. Because of the HTTP |
| spec, both of those values can be zero'ed out safely. This fixes |
| the bug correctly. [Ryan Bloom] |
| |
| *) Fix a couple of place in the Windows code where the wrong error |
| code was being returned. [Gregory Nicholls <gnicholls@level8.com>] |
| |
| *) Fix POOL_DEBUG (at least for prefork mpm). [Dean Gaudet] |
| |
| *) Added the APR_EOL_STR macro for platform dependent differences in |
| logfiles and other raw text (such as all APR files). Fixes logfiles |
| not terminated with cr/lf sequences in Win32. [William Rowe] |
| |
| *) Move all strings functions in APR to src/lib/apr/strings and create |
| apr_strings.h for the prototypes. [Ryan Bloom] |
| |
| *) APR lock fixes: when using SysV sems, flock(), or fcntl(), be sure |
| to repeat the syscall until we stop getting EINTR. I noticed a |
| related problem at termination (SIGTERM) on FreeBSD when using |
| fcntl(). Apache 1.3 had these new loops too. Also, make the flock() |
| implementation work properly with child init. Previously, ap_lock() |
| was essentially a no-op because all children were using different |
| locks and thus nobody ever blocked. [Jeff Trawick] |
| |
| *) The htdocs/ tree has been moved out of the CVS source tree into |
| a separate area for easier development. This has NO EFFECT on |
| end-users or Apache installations. [Ken Coar] |
| |
| *) Integrate the mod_dav module for WebDAV protocol handling. This |
| adds the dav and dav_fs modules, the SDBM library, and additional |
| XML handling utilities. [Greg Stein] |
| |
| *) Clean out obsolete names (from httpd.h) for the HTTP Status Codes |
| [Greg Stein] |
| |
| *) Update the lib/expat-lite/ library (bring forward changes from |
| the Apache 1.3 repository). [Greg Stein] |
| |
| *) If sizeof(long long) == sizeof(long), then prefer long in APR |
| configure.in. [Dave Hill <ddhill@zk3.dec.com>] |
| |
| *) Add ap_sendfile for Tru64 Unix. Also, add an error message for |
| machines where sendfile is detected, but nobody has written ap_sendfile. |
| [Dave Hill <ddhill@zk3.dec.com>] |
| |
| *) Compile fixes in mod_mmap_static. [Victor J. Orlikowski] |
| |
| *) ab would start up more connections than needed, then quit when the |
| desired number were finished. Also fixed a logic error involving |
| ab keepalives. [Victor J. Orlikowski] |
| |
| *) WinNT: Implement non-blocking pipes with timeouts to communicate |
| with CGIs. Apache 2.0a4 had non-blocking pipes but without |
| timeouts (i.e, if a timeout was specified, the pipe reverted to |
| a full blocking pipe). Now the behaviour is more in line with |
| Unix non-blocking pipes. |
| [Bill Stoddard] |
| |
| *) WinNT: Implement accept socket reuse. Using mod_file_cache to |
| cache open file handles along with accept socket reuse enables |
| Apache 2.0 to serve non-keepalive requests for static files at |
| 3x the rate of Apache 1.3.(e.g, Apache 1.3 will serve 400 rps |
| and Apache 2.0 will serve almost 1200 rps on my system). |
| [Bill Stoddard] |
| |
| *) Merge mod_mmap_static function into mod_file_cache. mod_file_cache |
| supports two config directives, mmapfile (same behavious as |
| mod_mmap_static) and cachefile. Use the cachefile directive |
| to cache open file handles. This directive only works on systems |
| that have implemented the ap_sendfile API. cachefile works today |
| on Windows NT, but has not been tested on any flavors of Unix. |
| [Bill Stoddard] |
| |
| *) Cleanup the configuration. With the last few changes the |
| configuration process automatically: |
| inherits information about how to build from APR. Allowing |
| APR to inform Apache that it should or should not use -ldl |
| |
| Detects which mod_cgi should be used mod_cgi or mod_cgid, |
| based on the threading model |
| |
| Apache calls APR's configure process before finishing it's |
| configuration processing, allowing for more information flow |
| between the two. |
| [Ryan Bloom] |
| |
| |
| *) Change Unix and Win32 ap_setsockopt() so that APR_SO_NONBLOCK |
| with non-zero argument makes the socket non-blocking. BeOS and |
| OS/2 already worked this way. [Jeff Trawick] |
| |
| *) ap_close() now calls ap_flush() for buffered files, so write |
| operations work a whole lot better on buffered files. |
| [Jeff Trawick] |
| |
| *) Fix error messages issued from MPMs which explain where to change |
| compiled-in limits (e.g., ThreadsPerChild, MaxClients, StartTreads). |
| [Greg Ames] |
| |
| *) ap_create_pipe() now leaves pipes in blocking state. (This helps |
| reduce the number of syscalls on Unix.) ap_set_pipe_timeout() is |
| now the way that the blocking state of a pipe is manipulated. |
| ap_block_pipe() is gone. [Jeff Trawick] |
| |
| *) Correct the problem where the only local host name that the IP stack |
| can discover are 'undotted' private names. If no fully qualified |
| domain name can be identified, the default ServerName will be set to |
| the machine's IP address string. A warning is always provided if the |
| ServerName not specified, but assumed. Solves PR6215 [William Rowe] |
| |
| *) Repair problems with config file processing which caused segfault |
| at init when virtual hosts were defined and which caused ServerName to |
| be ignored when there was no valid DNS setup. [Jeff Trawick] |
| |
| *) Removed pointless ap_is_aborted macro function. [Roy Fielding] |
| |
| *) Add ap_sendfile implementation for AIX |
| [Victor J. Orlikowski] |
| |
| *) Repair C++ compatibility in ap_config.h, apr_file_io.h, |
| apr_network_io.h, and apr_thread_proc.h. |
| [Tyler J. Brooks <tylerjbrooks@home.com>, Jeff Trawick] |
| |
| *) Bring the allocation and pool debugging code back into a working |
| state. This will need to be tested as so far it's only been used on |
| BeOS. [David Reid] |
| |
| *) Change configuration command setup to be properly typesafe when in |
| maintainer mode. Note that this requires a compiler that can initialise |
| unions. [Ben Laurie] |
| |
| *) Turn on buffering for config file reads. Part of this was to |
| repair buffered I/O support in Unix and implement buffered |
| ap_fgets() for all platforms. [Brian Havard, Jeff Trawick] |
| |
| *) Win32: Fix problem where UTC offset was not being set correctly |
| in the access log. Problem reported on news group by Jerry Baker. |
| [Bill Stoddard] |
| |
| *) Fix segfault when reporting this type of syntax error: |
| "</container> without matching <container> section", where |
| container is VirtualHost or Directory or whatever. |
| [Jeff Trawick] |
| |
| *) Prevent the source code for CGIs from being revealed when using |
| mod_vhost_alias and the CGI directory is under the document root |
| and a user makes a request like http://www.example.com//cgi-bin/cgi |
| as reported in <news:960999105.344321@ernani.logica.co.uk> |
| [Tony Finch] |
| |
| *) Add support for the new Beos NetwOrking Environment (BONE) |
| [David Reid] |
| |
| *) xlate: ap_xlate_conv_buffer() now tells the caller when the |
| final input char is incomplete; ap_bwrite_xlate() now handles |
| incomplete final input chars. [Jeff Trawick] |
| |
| *) Yet another update to saferead/halfduplex stuff -- need to ensure |
| that a bhalfduplex call occurs before logging or else DNS and |
| such can delay the last packet of the response. [Dean Gaudet] |
| |
| *) Some syscall reduction in APR on unix -- don't seek when setting |
| up an mmap; and don't fcntl() more than once per socket. |
| [Dean Gaudet] |
| |
| *) When mod_cgid is started as root, the cgi daemon now switches |
| to the configured User/Group (like other httpd processes) |
| instead of continuing as root. [Jeff Trawick] |
| |
| *) The prefork MPM now uses an APR lock for the accept() mutex. |
| It has not been getting a lock at all recently. httpd -V now |
| displays APR's selection of the lock mechanism instead of the |
| symbols previously respected by prefork. [Jeff Trawick] |
| |
| *) Change the mmap() feature test to check only for existence. |
| The previous check required features not used by Apache. |
| [Greg Ames] |
| |
| *) Fix a couple of bugs in mod_cgid: The cgi arguments were |
| sometimes mangled. The len parm to accept() was not |
| initialized, leading sometimes to an endless loop of failed |
| accept() calls on OS/390 and anywhere else that failed the call |
| if the len was negative. Use <sys/un.h> for struct sockaddr_un |
| instead of declaring it ourselves to fix a compilation problem |
| on Solaris. [Jeff Trawick] |
| |
| *) Add Resource limiting code back into Apache 2.0. [Ryan Bloom] |
| |
| *) Fix zombie process problem with mod_cgi. [Jeff Trawick] |
| |
| *) Port mod_mmap_static to 2.0. Make it go faster. [Greg Ames] |
| |
| *) Fix storage overlay when loading dsos. Symptom: Apache dies at |
| initialization if ALLOC_DEBUG is defined; no known symptom |
| otherwise. [Jeff Trawick] |
| |
| *) Fix typo in configure script when checking for mod_so. bash |
| doesn't seem to have a problem but /bin/sh on Solaris does. |
| Symptom: "./configure: test: unknown operator ==" |
| [Jeff Trawick] |
| |
| *) Rebind the Win32 NT and 9x services control into the MPM. |
| All console, WinNT SCM and Win9x pseudo-service control code is |
| now wrapped within the WinNT MPM. |
| [William Rowe] |
| |
| *) Make a copy of getenv("PATH") before storing for later use. Some |
| getenv() implementations use the same storage for successive calls. |
| CGIs on OS/390 had a bad PATH due to this. [Jeff Trawick] |
| |
| *) Server Tokens work in 2.0 again. This also propogates the change |
| to allow just the product name in the server string using |
| PRODUCT_ONLY. |
| [Ryan Bloom] |
| |