Httpd RHEL Compilation: Difference between revisions
Jump to navigation
Jump to search
No edit summary |
|||
Line 28: | Line 28: | ||
<pre> | <pre> | ||
cd src | cd src | ||
gunzip < ../archive/httpd-2. | gunzip < ../archive/httpd-2.2.17.tar.gz | tar xfv - | ||
</pre> | </pre> | ||
==Configure Compilation== | |||
* http://httpd.apache.org/docs/current/programs/configure.html | |||
Compilation can be configured as a non-root user. | |||
<pre> | |||
cd httpd-2.2.17 | |||
./configure \ | |||
--prefix /opt/httpd-2.2.17[-worker] \ | |||
--enable-so \ | |||
--enable-expires=shared \ | |||
--with-included-apr | |||
<pre> | |||
!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. | |||
* different module configuration requirements: | |||
|worker MPM| see [Woker MPM Compilation|HttpdWorkerMPM#Compilation] | |||
|mod_proxy| see [Mod_proxy#Compilation] | |||
|mod_proxy_ajp| see [Mod_proxy_ajp#Compilation] | |||
|mod_rewrite | see [Mod_clusterInstallation] | |||
|mod_expires| | |||
* If you need SSL, compile the latest OpenSSL (see [OpenSSL#Compilation]) and then | |||
{{{ | |||
... | |||
--enable-ssl | |||
--with-ssl=/data/openssl-1.0.2/ | |||
... | |||
}}} | |||
Also, important, 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 | |||
}}} | |||
!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. | |||
!Nike configuration | |||
{{{ | |||
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 disable mod_proxy so we can use the version included in mod_cluster. | |||
}}} | |||
!SMC Configuration | |||
They 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 [mod_proxy_ajp.path|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== | ==yum Installation== |
Revision as of 22:48, 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!Notes: * It is a good idea to compile Template:Httpd with shared module option enabled (Template:--enable-so --enable-expires=shared). * Template:Configure may complain about not finding APR. I worked around this by using Template:--with-included-apr in configure configuration. * different module configuration requirements: |worker MPM| see [Woker MPM Compilation|HttpdWorkerMPM#Compilation] |mod_proxy| see [Mod_proxy#Compilation] |mod_proxy_ajp| see [Mod_proxy_ajp#Compilation] |mod_rewrite | see [Mod_clusterInstallation] |mod_expires| * If you need SSL, compile the latest OpenSSL (see [OpenSSL#Compilation]) and then {{{ ... --enable-ssl --with-ssl=/data/openssl-1.0.2/ ... }}} Also, important, 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 }}} !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. !Nike configuration {{{ 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 disable mod_proxy so we can use the version included in mod_cluster. }}} !SMC Configuration They 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 [mod_proxy_ajp.path|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