in

Apache 2.4.6 Installation on Unix: A Comprehensive Guide

Hi there! As an experienced systems administrator and technology geek, I‘m excited to provide you with this in-depth guide on compiling and installing Apache 2.4.6 from source code on Unix. Whether you‘re looking to set up a flexible, high-performance web server or just want to learn more about Apache, you‘ve come to the right place.

Apache HTTP Server has remained the most popular web server on the internet for over 20 years. It powers 46% of all active websites, including some of the world‘s biggest and busiest sites. Apache‘s open source model, speed, extensibility, and broad platform support make it appealing to a wide range of users.

In this guide, I‘ll walk you through the entire process of downloading, configuring, compiling, installing, and testing Apache 2.4.6 on your Unix system. We‘ll cover prerequisites, step-by-step build instructions, post-installation tasks, troubleshooting tips, and more. You‘ll also get my commentary as an experienced Apache user and administrator. By the end, you‘ll have the latest Apache 2.4.6 up and running smoothly.

Ready? Let‘s get started!

Prerequisites

Before we dive in to the Apache installation, we need to make sure your Unix system is ready by meeting the following requirements:

  • A Unix-based operating system like Linux, BSD, Solaris, etc. I prefer Linux distros like CentOS, Ubuntu, or Debian.
  • Root access or sudo privileges on your machine
  • GCC compiler and standard Unix build tools – essential for compiling source code
  • APR & APR-Util libraries v1.2+ – Apache depends on these for core features
  • OpenSSL libraries – provides SSL/TLS support for HTTPS
  • At least 150MB free disk space for the Apache install and files

Make sure GCC and the usual Unix build chain is present by trying commands like gcc –version. Modern Linux distros typically include these by default. If not, install the GNU compiler collection and autoconf/automake tools using your distro‘s package manager before going further.

You‘ll also want current versions of APR, APR-Util, and OpenSSL. Having outdated libraries can cause weird problems down the line. I‘d recommend downloading and building the latest releases from source before compiling Apache.

Step 1 – Download the Source Code

Let‘s start by downloading the latest 2.4.6 release of Apache HTTP Server from the official site:

https://httpd.apache.org/download.cgi

The file will be named httpd-2.4.6.tar.gz for the 2.4.6 version. You can also verify the hashes match the published md5 / sha256 checksums to ensure the download isn‘t corrupted.

Save this archive somewhere handy like /tmp, /opt/src/ or ~/downloads. I prefer to keep source tarballs under /opt/src/apache/ to stay organized.

Step 2 – Extract the Source

Now we‘ll extract the httpd-2.4.6.tar.gz file to create an Apache source subdirectory. This contains all the C code, docs, and build scripts.

Make sure you‘re in the directory you downloaded to, then extract using tar and gzip/gunzip:

$ cd /opt/src/apache
$ gzip -d httpd-2.4.6.tar.gz
$ tar xvf httpd-2.4.6.tar

This will create a new /opt/src/apache/httpd-2.4.6 folder with all the extracted Apache source files ready for building.

Step 3 – Configure the Build

Before compiling Apache, we need to run the configuration script. This checks for required libraries, install locations, and custom build options you specify.

Change directory into the extracted httpd-2.4.6 folder:

$ cd httpd-2.4.6

Now run the ./configure script. Basic usage is:

  
$ ./configure --prefix=/opt/apache

This tells ./configure to install Apache into /opt/apache when building. You can change this to any location you want.

Some other common configuration options include:

  • --with-apr=/path/to/apr – Specify APR location
  • --with-apr-util=/path/to/apr-util – Specify APR-Util location
  • --with-ssl=/path/to/openssl – Specify OpenSSL prefix and enable SSL
  • --enable-mods-shared=mods – Build modules as shared objects

For example, to add SSL support:

$ ./configure --with-ssl --prefix=/opt/apache  

I suggest running ./configure –help first to see all available options. When ready, run the configure script to generate the customized makefiles.

Step 4 – Compile and Install

Now we‘re ready for the actual build process. This is when the Apache source code gets compiled into executable binaries and modules.

To compile, run:

$ make

This reads through the makefiles and executes the compiler to build httpd, libraries, modules, and associated programs.

Compiling can take a few minutes depending on your system‘s speed and resources. On modern hardware, it usually completes pretty quickly.

Once done, you‘re ready to install with:

 
$ make install

This copies the compiled Apache files into the configured installation directory. By default this will be /opt/apache if you used –prefix earlier. Otherwise it installs into /usr/local/apache.

Congratulations – you now have a compiled Apache 2.4.6 web server installed on your Unix system and ready to configure!

Step 5 – Set File Permissions

Now that Apache is installed, the directories and files need to be owned by the apache user account for security reasons. The apache daemon itself usually runs as a non-privileged apache or www-data user.

First, find which user Apache runs as on your system. For many distros this is apache or www-data:

$ grep apache /etc/passwd
apache:x:48:48:Apache:/var/www:/sbin/nologin

With the user found, recursively change ownership using chown:

# chown -R apache:apache /opt/apache

This grants ownership of the entire /opt/apache directory to the apache user. Adjust the paths and owner:group as needed.

Also check that permissions are set correctly on config files, logs, and folders. Apache requires certain write permissions to function properly.

Step 6 – Install Control Scripts

Apache comes with many handy scripts for controlling and interacting with the server such as:

  • apachectl – Apache control interface
  • httpd – Apache HTTP daemon
  • apxs – APache eXtenSion tool

However, these aren‘t put into standard PATH locations during install. We need to manually symlink them from the Apache bin/ folder into somewhere in PATH so they can be run easily.

For example, to symlink apachectl and add it to PATH:

# ln -s /opt/apache/bin/apachectl /usr/local/bin/apachectl 

Do this for all the scripts you‘ll need – typically apachectl, httpd, and apxs at minimum.

Step 7 – Configure System Startup

To start Apache automatically on system boot, we need to add an init/systemd service file. The exact steps depend on your specific Unix distro and init system.

For classic SysVinit, copy apachectl to /etc/init.d then enable it:

# cp /opt/apache/bin/apachectl /etc/init.d/
# chmod 755 /etc/init.d/apachectl 
# chkconfig --add apachectl
# chkconfig apachectl on

For modern systemd Linux distros like CentOS 8, copy the systemd unit file:

# cp /opt/apache/bin/apachectl.service /etc/systemd/system/
# systemctl enable apachectl.service

This will make Apache start automatically on next reboot under systemd. Check your distro‘s docs for specifics.

Step 8 – Adjust Firewall Rules

Make sure your Unix firewall allows incoming connections to Apache‘s standard HTTP port 80. For iptables, add a permissive rule:

 
# iptables -I INPUT -p tcp --dport 80 -j ACCEPT

Save your updated firewall config to persist this change. Failure to open port 80 will block all web access to Apache.

Step 9 – Test It Out

With Apache installed and firewall adjusted, you‘re all set to start the web server for initial testing:

# apachectl start

This boots up httpd in the background. You can verify it‘s running with:

# apachectl status

Then try accessing your Apache server‘s IP address in a web browser. You should see Apache‘s default "It works!" page. Success!

The apachectl script can also be used to stop, restart, and reload the server whenever needed. It‘s a handy administrator tool.

Troubleshooting Issues

In case you run into problems getting Apache running, here are some troubleshooting tips:

  • Check the logs at /opt/apache/logs/error_log for clues
  • Verify Apache is binding to port 80 using netstat
  • Try starting Apache manually via /opt/apache/bin/httpd
  • Check your firewall is allowing connections on port 80
  • Make sure httpd.conf has a valid ServerName
  • Confirm all required modules are loading properly

The Apache Wiki also has lots of useful troubleshooting advice. Feel free to reach out if you have any other issues getting your Apache server going!

Conclusion

Compiling software from source gives you maximum control – but also requires more effort. I hope this guide provided a clear, step-by-step process for building and installing Apache 2.4.6 from source code on your Unix system.

We covered the full journey including downloading the source, configuring the build, compiling, post-install tasks like permissions and init setup, and finally verifying Apache is running properly. There‘s a lot to it, but the flexibility is worth it!

You now have the latest stable Apache 2.4.6 web server up and running on your Unix machine. You‘re ready start tweaking configs, setting up virtual hosts, enabling modules, hardening security, and deploying web applications.

The official Apache documentation provides tons of guidance on taking full advantage of Apache‘s powerful feature set. Let me know if you have any other questions! Enjoy setting up and running your brand new Apache server.

AlexisKestler

Written by Alexis Kestler

A female web designer and programmer - Now is a 36-year IT professional with over 15 years of experience living in NorCal. I enjoy keeping my feet wet in the world of technology through reading, working, and researching topics that pique my interest.