MIDAS Knowledge Base MIDAS Knowledge Base

How to install & configure Apache on Windows

This article is the first part of our "How to install prerequisites needed for running a self-hosted edition of MIDAS from a Windows server" series.

It applies to self-hosted installations of a MIDAS room booking and resource scheduling system on Windows-based servers only.

This first article outlines how to install Apache on Windows. Other web servers (such as Microsoft's Internet Information Services (IIS)) are also available for Windows.

Please note that this article is provided "as is" and is correct at time of writing. For further assistance installing or configuring Apache, please refer to the vendor's own documentation / support.

Contents:


Step 1 - Download Apache for Windows

Apache for Windows may be freely downloaded from ApacheLounge.

Both 32-bit (Win32 / x86) and 64-bit (Win64 / x64) versions are available, depending upon whether your Windows server runs a 32 or 64-bit version of Windows:

Download Apache for Windows

For this guide, we'll assume that the Windows server is running a 64-bit operating system, and so we'll download Apache 2.4.58 Win64 (httpd-2.4.58-win64-VC17.zip)

As per the information on the ApacheLounge download page, you'll also need to ensure that you have the relevant C++ Redistributable for Visual Studio installed on your server too. It's possible that this may already be installed on your system, but if in doubt, download and run "vc_redist_x64.exe" (for a 64-bit operating system), or "vc_redist_86.exe" (for a 32-bit system) from the links on the ApacheLounge site first.


Step 2 - Unzip

Once the download has completed, open the downloaded "httpd-2.4.58-win64-VC17.zip" file, and extract its contents to a suitable location on your server i.e. C:\Apache24 or D:\Apache, etc


Step 3 - Configure Apache

Once you've extracted Apache, we'll need to configure it. Start by locating the file "httpd.conf" (which will be in the "conf" subdirectory), and open this in a standard text editor.

By default, this configuration file assumes that you've extracted Apache to C:\Apache24. If however you've extracted Apache to a different location (i.e. D:\Apache), you'll need to update the ${SRVROOT} variable within in the httpd.conf file to point to the new location accordingly, i.e:

Define SRVROOT "C:/Apache24"Define SRVROOT "D:/Apache"

If there is no SRVROOT variable present in your httpd.conf file, then instead you'll need to manually update all instances of "C:/Apache24", i.e.:

ServerRoot "C:/Apache24"ServerRoot "D:/Apache"
DocumentRoot "C:/Apache24/htdocs"DocumentRoot "D:/Apache/htdocs"
<Directory "C:/Apache24/htdocs"><Directory "D:/Apache/htdocs">
ScriptAlias /cgi-bin/ "C:/Apache24/cgi-bin/"ScriptAlias /cgi-bin/ "D:/Apache/cgi-bin/"

Regardless of where you extracted Apache to, you'll also need to make the following modifications to the httpd.conf file:

  • A) Add "ExecCGI" to "Options" directive:
    Locate the following line:
    Options Indexes FollowSymLinks
    ...and append "ExecCGI":
    Options Indexes FollowSymLinks ExecCGI
    ...this tells Apache that CGI/Perl scripts are allowed outside of the cgi-bin directory

  • B) Locate and uncomment the following line: (by removing the # symbol from the start of the line)
    AddHandler cgi-script .cgi
    ...and also add the following line:
    AddHandler cgi-script .pl
    ...These two lines tell Apache how to handle .cgi/.pl files (i.e. execute them rather than present them to as text to a web browser)

  • C) Add the following line to the end of the httpd.conf file:
    ScriptInterpreterSource Registry
    ...this allows Apache to ignore the very first line of .cgi/.pl files which direct Apache to the install location of Perl, and instead determine the location of Perl from the Windows Registry


Step 4 - Start Apache

Open a Command or PowerShell prompt in the "bin" folder at the location where you extracted Apache (Hold "Shift" whilst right-clicking and select "Open command window here", "Open PowerShell window here", or "Open in Windows Terminal", depending upon your version of Windows):

Open a command prompt in current folder

If you opened a command prompt, start Apache by entering the following command:

httpd.exe

If you opened a PowerShell prompt, start Apache by entering the following command:

& "D:\Apache\bin\httpd.exe"
(Replace D:\Apache\ with the location where you previously extracted your Apache server)

If you see a Windows Firewall prompt, allow access as appropriate. If you fail to allow Apache access through your server's firewall, other computers/devices will be unable to connect to your web server, so be sure to allow access accordingly:

Allow Apache through Windows Firewall

If Apache (httpd.exe) fails to start with a "could not bind to address" error, this will likely be due to another service already running on Apache's default port (80). Check that you don't currently have an IIS (Internet Information Services) server already running. If you do, you'll need to stop/disable IIS in order to run Apache (or change the listening port on either IIS or Apache to allow both services to run concurrently. You may need to refer to the vendor's own documentation for assistance changing server listening ports).


Step 5 - Check Apache

With the previous command window still open, open your web browser and navigate to http://127.0.0.1

If Apache is running, you should see the words "It works!" displayed in your browser:

Check if Apache is running correctly


Step 6 - Install as a Windows service:

When you close the command/PowerShell window, Apache will exit.
However, to ensure that Apache is running all the time, it can quickly be installed as a Windows service.
Simply open an administrative command prompt or PowerShell prompt again, and this time enter the following, for a Command Prompt:
httpd.exe -k install
...or in a PowerShell Prompt:
Start-Process PowerShell -Verb RunAs
This ensures that PowerShell is running as an administrator. Then enter:
& "D:\Apache\bin\httpd.exe" -k install
(Replace D:\Apache\ with the location where you previously extracted your Apache server)You should then see a message that the Apache2.4 service has been successfully installed.

You can then start the service by typing:

net start Apache2.4

Install Apache as a Windows Service


Step 7 - Monitor Apache (optional)

To allow you to monitor the current state of your Apache server, as well as allow you to quickly start/stop/restart the server, Apache comes with a small utility called "Apache Monitor".
Double click ApacheMonitor.exe from the bin folder to run the utility, or place a shortcut to, in your Startup folder so that it automatically runs whenever Windows starts.

TIP: To quickly locate your Startup folder on Windows 10 and later, press WinKey + R and then type "shell:startup" (current user) or "shell:common startup" (all users)

Monitor Apache State on Windows


Next In This Series...



You might also be interested in...


MIDAS » KB » Support » Article 00143

← Return to the Knowledge Base