Windows/Apache Web Server

Updating Apache

Introduction

The same as any software, to keep it secure it should be updated periodically. I use Apache for Windows from Apache Haus (Internet Archive).


Notes

March 2024

I don't know why the Apache Haus site was offline in November, but it is now back online. The project is still on hold and there will probably be no more updates. It still says that the Apache Lounge versions are 100% compatible with theirs. Here's the version numbers from various sources for Windows:

Apache source - 2.4.58
My running version - 2.4.54
Apache Haus- 2.4.55
Apache Lounge - 2.4.58
WampServer - 2.4.58
XAMPP - 2.4.58

November 2023

How messed up am I now?

I checked the Apache Haus site in November 2023 and it was gone! I looked on the Internet Archive and the site was still up on October 10 (Internet Archive). I'm using Apache 2.4.54 which was compiled on November 4, 2022. I can probably live with that until Apache has a major update or until version 2.6 is released (versions 2.3 and 2.5 are development releases). What am I going to do then? I'll probably stay with one of the Windows Apache releases. Moving to NGiNX might be too much of a change, but apparently the combined log format is the same as Apache so only the paths will need updating for my log analyzers, and Certbot can obtain the SSL certificates as well.

Notes - May 2023

Apache.org stopped distributing the Windows MSI binary packages in 2015, but it does keep a list of Windows binary packages. In later Windows installations and updates I used the Apache Haus (internet Archive) versions. On February 27, 2023, Apache Haus announced that their project is on hold (Internet Archive). The latest version available at the time was Apache 2.4.55. In the announcement, Apache Haus does say that the versions from Apache Lounge are 100% compatible with theirs. Of course you can download the source files and compile it for Windows yourself.


Current Version Information

Finding the current Apache version information is fairly easy. Open a command prompt, navigate to the bin folder in the Apache files and type:

httpd -v

Or

httpd -V

There is a difference in the information given if lowercase or uppercase v is used.

Lowercase v

Server version: Apache/2.4.41 (Win32)
Server built: Oct 18 2019 21:59:44

Uppercase V

Server version: Apache/2.4.41 (Win32)
Server built: Oct 18 2019 21:59:44
Distributed by: The Apache Haus
Compiled with: Visual Studio 2015 (VC14)
Server's Module Magic Number: 20120211:88
Server loaded: APR 1.7.0, APR-UTIL 1.6.1
Compiled using: APR 1.7.0, APR-UTIL 1.6.1
Architecture: 32-bit
Server MPM: WinNT
threaded: yes (fixed thread count)
forked: no
Server compiled with....
-D APR_HAS_SENDFILE
-D APR_HAS_MMAP
-D APR_HAVE_IPV6 (IPv4-mapped addresses disabled)
-D APR_HAS_OTHER_CHILD
-D AP_HAVE_RELIABLE_PIPED_LOGS
-D DYNAMIC_MODULE_LIMIT=256
-D HTTPD_ROOT="/Apache24"
-D HTTPD_EXEC="/Apache24/bin/httpd.exe"
-D DEFAULT_PIDLOG="logs/httpd.pid"
-D DEFAULT_SCOREBOARD="logs/apache_runtime_status"
-D DEFAULT_ERRORLOG="logs/error.log"
-D AP_TYPES_CONFIG_FILE="conf/mime.types"
-D SERVER_CONFIG_FILE="conf/httpd.conf"


Updating

The files are pre-compiled and are supplied as a zip file. It just needs to be decompressed and follow the directions given in an old 2017 post in their fourms (Internet Archive), which says:

1. Shutdown Apache
2. Back up your current /bin and /modules folders
3. Download 2.4.25 of the same compiler and architecture
4. Replace all files in these 2 folders with the ones from 2.4.25 package
5. Try starting Apache. It should work
6. Optionally, you can replace the files in /include and /lib folders like you did above.

The post said to use the "same compiler and architecture." After 3 years, I guessed the compiler was not going to be the same. I also wanted to upgrade to the 64bit version. All I knew for certain was that as I had only just installed the SSL certificates I wanted to keep the OpenSSL system rather than try and change to the LibreSSL version.

I copied all the current Apache folders as a backup then downloaded the Apache v2.4.54 64bit version from the Apache Haus downloads page (Internet Archive) and unzipped it.

Next, I stopped the server and copied the new /bin and /modules folders into the original installation folders, replacing all the files. I left all the other original files, including the configuration files, and folders as they were. Then restarted the server.

I had thought I was bound to break something, but everything went surprisingly well, the server seems to be working as it should and httpd -V now gives.

Server version: Apache/2.4.54 (Win64)
Server built: Nov 4 2022 20:49:29
Distributed by: The Apache Haus
Compiled with: Visual Studio 2022 (VS17)
Server's Module Magic Number: 20120211:124
Server loaded: APR 1.7.0, APR-UTIL 1.6.1, PCRE 10.40 2022-04-14
Compiled using: APR 1.7.0, APR-UTIL 1.6.1, PCRE 10.40 2022-04-14
Architecture: 64-bit
Server MPM: WinNT
threaded: yes (fixed thread count)
forked: no
Server compiled with....
-D APR_HAS_SENDFILE
-D APR_HAS_MMAP
-D APR_HAVE_IPV6 (IPv4-mapped addresses disabled
) -D APR_HAS_OTHER_CHILD
-D AP_HAVE_RELIABLE_PIPED_LOGS
-D DYNAMIC_MODULE_LIMIT=256
-D HTTPD_ROOT="/Apache24"
-D HTTPD_EXEC="/Apache24/bin/httpd.exe"
-D DEFAULT_PIDLOG="logs/httpd.pid"
-D DEFAULT_SCOREBOARD="logs/apache_runtime_status"
-D DEFAULT_ERRORLOG="logs/error.log"
-D AP_TYPES_CONFIG_FILE="conf/mime.types"
-D SERVER_CONFIG_FILE="conf/httpd.conf"