Skip to content

Building Apache HTTP Server

aborkar-ibm edited this page May 14, 2019 · 56 revisions

Building Apache HTTP Server

Below versions of Apache HTTP Server are available in respective distributions at the time of creation of these build instructions:

  • RHEL 6.10 has 2.2.15
  • RHEL (7.4, 7.5, 7.6) has 2.4.6
  • SLES 12 SP4 has 2.4.23
  • SLES 15 has 2.4.33
  • Ubuntu 16.04 has 2.4.18
  • Ubuntu 18.04 has 2.4.29
  • Ubuntu 19.04 has 2.4.38

The instructions provided below specify the steps to build Apache HTTP Server version 2.4.39 on Linux on IBM Z for following distributions:

  • RHEL (6.10, 7.4, 7.5, 7.6)
  • SLES (12 SP4, 15)
  • Ubuntu (16.04, 18.04, 19.04)

General Notes:

  • When following the steps below please use a standard permission user unless otherwise specified.
  • A directory /<source_root>/ will be referred to in these instructions, this is a temporary writable directory anywhere you'd like to place it

Step 1: Build using script

If you want to build Apache http server using manual steps, go to STEP 2.

Use the following commands to build Apache http server using the build script. Please make sure you have wget installed.

wget -q https://raw.githubusercontent.com/linux-on-ibm-z/scripts/master/ApacheHttpServer/2.4.39/build_apachehttpserver.sh

# Build Apache HTTP Server
bash build_apachehttpserver.sh

If the build completes successfully, go to STEP 3. In case of error, check logs for more details or go to STEP 2 to follow manual build steps.

Step 2: Building Apache HTTP Server

2.1) Install dependencies

  • RHEL (6,10, 7.4, 7.5, 7.6)

    sudo yum install git openssl openssl-devel python gcc libtool autoconf make pcre pcre-devel libxml2 libxml2-devel expat-devel which wget tar
  • SLES 12 SP4

    sudo zypper install git openssl openssl-devel python gcc libtool autoconf make pcre pcre-devel libxml2 libxml2-devel libexpat-devel which wget tar
  • SLES 15

    sudo zypper install git openssl libopenssl-devel python gcc libtool autoconf make libpcre1 pcre-devel libxml2-tools libxml2-devel libexpat-devel which wget tar
  • Ubuntu (16.04, 18.04, 19.04)

    sudo apt-get update
    sudo apt-get install git python openssl gcc autoconf make libtool-bin libpcre3-dev libxml2  libexpat1 libexpat1-dev wget tar 

2.2) Extract Apache HTTP source code (and supporting packages)

export SOURCE_ROOT=/<source_root>/
cd $SOURCE_ROOT
git clone git://github.com/apache/httpd.git 
cd $SOURCE_ROOT/httpd
git checkout 2.4.39

cd $SOURCE_ROOT/httpd/srclib
git clone git://github.com/apache/apr.git
cd $SOURCE_ROOT/httpd/srclib/apr 
git checkout 1.6.5

cd $SOURCE_ROOT/httpd/srclib
git clone git://github.com/apache/apr-util.git
cd $SOURCE_ROOT/httpd/srclib/apr-util
git checkout 1.6.1

2.3) Build and Install Apache HTTP Server

cd $SOURCE_ROOT/httpd
./buildconf
./configure --with-included-apr --prefix=<build-location>
make
sudo make install

Note: Skipping the --prefix results in Apache httpd being installed in the default location.

Step 3: Verification(Optional)

Note: All the following commands may require sudo depending on the <build-location> specified.

3.1) Update your configuration as necessary

To update configuration you may modify <build-location>/conf/httpd.conf file.

3.2) Verify the configuration and start the server

<build-location>/bin/apachectl configtest
<build-location>/bin/apachectl -k start

Note: If <build-location> is the prefix you specified, ensure that in /conf/httpd.conf file, values for User and Group fields are same as that of <build-location>. Else, it will display forbidden(403) error in the browser.

3.3) Stop the webserver

<build-location>/bin/apachectl -k stop

Note: <build-location> is the prefix you specified, if you didn't specify a prefix it should be installed to /usr/local/apache2.

References:

http://httpd.apache.org/

Clone this wiki locally