Httpd RHEL Compilation: Difference between revisions

From NovaOrdis Knowledge Base
Jump to navigation Jump to search
No edit summary
Line 131: Line 131:
</pre>
</pre>


!mod_cluster Recommended Configuration
=mod_cluster Recommended Configuration=


1. Apply [mod_proxy_ajp.path|http://anonsvn.jboss.org/repos/mod_cluster/trunk/native/mod_proxy_cluster/mod_proxy_ajp.patch] (optional).
1. Apply http://anonsvn.jboss.org/repos/mod_cluster/trunk/native/mod_proxy_cluster/mod_proxy_ajp.patch (optional).


2. Configure:
2. Configure:


{{{
<pre>
./configure  --prefix=apache_installation_directory  
./configure  --prefix=apache_installation_directory \
            --with-mpm=worker  
  --with-mpm=worker \
            --enable-mods-shared=most  
  --enable-mods-shared=most \
            --enable-maintainer-mode  
  --enable-maintainer-mode \
            --with-expat=builtin  
  --with-expat=builtin \
            --enable-ssl  
  --enable-ssl \
            --enable-proxy  
  --enable-proxy \
            --enable-proxy-http  
  --enable-proxy-http \
            --enable-proxy-ajp  
  --enable-proxy-ajp \
            --disable-proxy-balancer
  --disable-proxy-balancer \
            --enable-so  
  --enable-so  
}}}
</pre>





Revision as of 23:46, 1 January 2017

External

Internal

Overview

This is the Apache httpd compilation/installation procedure. It implies that httpd is compiled from source. If you plan to install httpd with yum, go directly to yum installation.

Procedure

Download

Download from http://httpd.apache.org/download.cgi and optionally place in the local archive directory.

wget http://mirror.cogentco.com/pub/apache//httpd/httpd-2.4.25.tar.gz

Older releases may not be on mirrors, but they can be downloaded directly from the apache web site: http://archive.apache.org/dist/httpd.

Extract

The sources can be extracted as a non-root user.

cd src
gunzip < ../archive/httpd-2.2.17.tar.gz | tar xfv -  

Configure Compilation

Compilation can be configured as a non-root user.

cd httpd-2.2.17
./configure \
  --prefix /opt/httpd-2.2.17[-worker] \
  --enable-so \
  --enable-expires=shared \
  --with-included-apr

Compilation Configuration Notes

  • It is a good idea to compile httpd with shared module option enabled (--enable-so --enable-expires=shared).
  • configure may complain about not finding APR. I worked around this by using --with-included-apr in configure configuration.

SSL Compilation

If you need SSL, compile the latest OpenSSL (see [OpenSSL#Compilation]) and then

...
--enable-ssl 
--with-ssl=/data/openssl-1.0.2/
...

If you use SSL, when running httpd, you need to set LD_LIBRARY_PATH to point to the OpenSSL lib directory:

LD_LIBRARY_PATH="/data/openssl-1.0.2/lib:${LD_LIBRARY_PATH}"
export LD_LIBRARY_PATH

Various Module Configuration Requirements

Cleaning configuration

The only option I discovered so far is to completely remove the source tree. I am sure others exist ... if I find them, add them here.

Configuration Examples

Example 1

Version 2.2.15

./configure --prefix=/cust/soe/opt/apache/2.2.15_without_mod_proxy 
            --enable-logio 
            --disable-proxy 
            --enable-rewrite 
            --enable-ssl 
            --enable-vhost-alias 
            --enable-headers 
            --enable-dav 
            --enable-dav-fs 
            --enable-modules=ssl 
            --with-ssl=/cust/soe/opt/openssl/1.0.0/ 
            --with-included-apr 
            --enable-dav-lock 
            --enable-deflate 
            --enable-so 
            --with-mpm=worker 

We disabled mod_proxy so we can use the version included in mod_cluster.

Example 2

We use mod_proxy:

#!/bin/bash

$(dirname $0)/configure \
 --prefix /data/httpd-2.2.29-worker-mpm \
 --enable-so \
 --with-included-apr \
 --enable-expires=shared \
 --with-mpm=worker \
 --enable-proxy \
 --enable-proxy-connect \
 --enable-proxy-http \
 --enable-proxy-ajp \
 --enable-proxy-balancer \
 --disable-cgi \
 --enable-ssl \
 --with-ssl=/data/openssl-1.0.2

mod_cluster Recommended Configuration

1. Apply http://anonsvn.jboss.org/repos/mod_cluster/trunk/native/mod_proxy_cluster/mod_proxy_ajp.patch (optional).

2. Configure:

./configure  --prefix=apache_installation_directory \
  --with-mpm=worker \
  --enable-mods-shared=most \
  --enable-maintainer-mode \
  --with-expat=builtin \
  --enable-ssl \
  --enable-proxy \
  --enable-proxy-http \
  --enable-proxy-ajp \
  --disable-proxy-balancer \
  --enable-so 


!!Configuration Parameters

|[httpd Compilation Configuration Parameters|httpdConfigurationCompilationParameters]

yum Installation