Tuesday, November 03, 2009

compiling apache 2.2.14 on CentOS 5

wrangled with this a bit today. One of our clients needed the upgrade for PCI compliance, and CentOS still has 2.2.8 as the latest version in YUM.

I couldn't find any decent RPMs, so I decided to compile from scratch by first downloading & extracting the source from apache.org.

The ./configure command for installing apache 2.2.14 on CentOS is below. The --disable lines you see are there because CentOS installs the default modules separately, which is probably a good thing. The rest of the options I found by reverse engineering the directory structure of the existing apache install.

To compile from source, you may need to first run: yum groupinstall 'Development Tools'

./configure \
--prefix=/etc/httpd \
--exec-prefix=/usr \
--bindir=/usr/bin \
--sbindir=/usr/sbin \
--mandir=/usr/share/man \
--libdir=/usr/lib64 \
--sysconfdir=/etc/httpd/conf \
--includedir=/usr/local/include/httpd \
--libexecdir=/etc/httpd/modules \
--datadir=/var/www \
--with-mpm=prefork \
--with-devrandom \
--disable-auth \
--disable-cgi \
--disable-cgid \
--disable-mime \
--disable-env \
--disable-setenvif \
--disable-negotiation \
--disable-alias \
--disable-actions \
--disable-autoindex \
--disable-include \
--disable-dir \
--disable-userdir \
--disable-status \
--disable-authn-file \
--disable-authn-default \
--disable-authz-default \
--disable-authz-user \
--disable-authz-host \
--disable-authz-groupfile \
--disable-auth-basic \
--disable-asis \

Note that I also had to then comment out the following lines, possibly because I didn't --enable-ldap during the compile. I don't need LDAP though, so I just commented out:

#LoadModule ldap_module modules/mod_ldap.so
#LoadModule authnz_ldap_module modules/mod_authnz_ldap.so