Httpd RHEL Compilation: Difference between revisions
No edit summary |
|||
Line 131: | Line 131: | ||
</pre> | </pre> | ||
=mod_cluster Recommended Configuration= | ==mod_cluster Recommended Configuration== | ||
1. Apply 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). | ||
Line 151: | Line 151: | ||
</pre> | </pre> | ||
==Configuration Parameters== | |||
|[httpd Compilation Configuration Parameters|httpdConfigurationCompilationParameters] | |[httpd Compilation Configuration Parameters|httpdConfigurationCompilationParameters] | ||
==yum Installation== | ==yum Installation== |
Revision as of 23:47, 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]