Ubuntu – How to build (configure options) latest apache on ubuntu

apache-2.2Ubuntu

I cannot figure out what are the correct ./configure options to build apache on an (oldish) ubuntu distribution that would preserve the same configuration file system.

I need apache with MPM Worker and mod_WSGI

I've found this No apache MPM package installed error related question but there's no answer solving my issue. httpd -l says "prefork.c" which sounds like my desired 'mpm-worker' has not been compiled.

So far:

# get latest tar from a mirror
wget http://apache.crihan.fr/dist//httpd/httpd-2.2.19.tar.gz
# untar
tar -xf httpd-2.2.19.tar.gz
# get inside
cd httpd-2.2.19

the current configure:

 ./configure --enable-shared-mods=all --prefix=/usr/lib/apache2 --with-mpm=worker

(it actually say in the doc that 'all' does not build the modules, so I guess I'll have to fix that later)

and of course:

 make
 sudo make install

But then:

 No apache MPM package installed

and indeed no MPM exists under /usr/lib/apache2/mpm-worker/apache2

How do I compile/build MPM-worker? Is there any other configuration parameter I am missing?
Should I create a ln -s PATH /usr/sbin/apache2 to be compliant with ubuntu /etc/init.d/apache2 , or is there another suggested way?

Best Answer

I hunted down this url which is the rules file for the deb from dapper (before you replied to my comment.)

http://bazaar.launchpad.net/~ubuntu-branches/ubuntu/dapper/apache2/dapper/view/head:/debian/rules

Here is the home for apache2 in ubuntu.

https://launchpad.net/ubuntu/+source/apache2

I couldn't find a link to Karmic from there, but i just replaced the name in the url.

https://launchpad.net/ubuntu/karmic/+source/apache2

Browse a version and click the code tab and see the rules file in the code repository for the karmic release.

http://bazaar.launchpad.net/~ubuntu-branches/ubuntu/karmic/apache2/karmic/view/head:/debian/rules SAYS:

 --enable-layout=Debian --enable-so \
                  --with-program-name=apache2  \
          --with-ldap=yes --with-ldap-include=/usr/include \
          --with-ldap-lib=/usr/lib \
          --with-suexec-caller=www-data \
          --with-suexec-bin=/usr/lib/apache2/suexec \
          --with-suexec-docroot=/var/www \
          --with-suexec-userdir=public_html \
          --with-suexec-logfile=/var/log/apache2/suexec.log \
          --with-suexec-uidmin=100 \
          --enable-suexec=shared \
          --enable-log-config=static --enable-logio=static \
          --with-apr=/usr/bin/apr-1-config \
          --with-apr-util=/usr/bin/apu-1-config \
          --with-pcre=yes \
          --enable-pie

AND

AP2_MODS_CONFARGS =   --enable-authn-alias=shared --enable-authnz-ldap=shared  \
          --enable-disk-cache=shared --enable-cache=shared \
          --enable-mem-cache=shared --enable-file-cache=shared \
          --enable-cern-meta=shared --enable-dumpio=shared --enable-ext-filter=shared \
          --enable-charset-lite=shared --enable-cgi=shared \
          --enable-dav-lock=shared --enable-log-forensic=shared \
          --enable-ldap=shared --enable-proxy=shared \
          --enable-proxy-connect=shared --enable-proxy-ftp=shared \
          --enable-proxy-http=shared --enable-proxy-ajp=shared \
          --enable-proxy-balancer=shared --enable-ssl=shared \
          --enable-authn-dbm=shared --enable-authn-anon=shared \
          --enable-authn-dbd=shared --enable-authn-file=shared \
          --enable-authn-default=shared --enable-authz-host=shared \
          --enable-authz-groupfile=shared --enable-authz-user=shared \
          --enable-authz-dbm=shared --enable-authz-owner=shared \
          --enable-authnz-ldap=shared --enable-authz-default=shared \
          --enable-auth-basic=shared --enable-auth-digest=shared \
          --enable-dbd=shared --enable-deflate=shared \
          --enable-include=shared --enable-filter=shared \
          --enable-env=shared --enable-mime-magic=shared \
          --enable-expires=shared --enable-headers=shared \
          --enable-ident=shared --enable-usertrack=shared \
          --enable-unique-id=shared --enable-setenvif=shared \
          --enable-version=shared --enable-status=shared \
          --enable-autoindex=shared --enable-asis=shared \
          --enable-info=shared --enable-cgid=shared \
          --enable-dav=shared --enable-dav-fs=shared \
          --enable-vhost-alias=shared --enable-negotiation=shared \
          --enable-dir=shared --enable-imagemap=shared \
          --enable-actions=shared --enable-speling=shared \
          --enable-userdir=shared --enable-alias=shared \
          --enable-rewrite=shared --enable-mime=shared \
          --enable-substitute=shared

That will let you build apache with the same options as the installed deb.

Although, I think an easier approach would be to use a backports build, or make one yourself. Get the source deb and build it under Karmic.