Apache2 MPM-prefork MPM-worker multiple instances on same Ubuntu host machine possible

apache-2.2configurationmulti-threading

I have a live Apache2/MPM-Worker instance running Django. I want to also run an Apache2/MPM-prefork instance to run some Drupal6 applications on the same host machine and utilize a vast selection of PHP modules that run on the prefork model.

I plan to use my MPM-worker instance to reverse proxy to the Apache2-prefork instance for URLS starting with myhost.com/drupal6/. It seems theoretically doable/configurable by having the second Apache2-prefork instance configured to listen on an internal port, say 127.0.0.1:8080 and having my current Apache2-worker configured to proxy pass and reverse pass to it for the 'drupal6' URLs.

However, how do I compile or install the apache2-prefork version so it has a different executable name than /usr/sbin/apache2, for example /usr/sbin/apache2p, and so apache2ctl has a different name, say apache2pctl, and that apache2pctl invokes the /usr/sbin/apache2p instead of /usr/sbin/apache2… and so on down the line (eg /etc/apache2p) so I can start and restart my two instances independently?

As I understand it, no one executable of 'apache2' can be compiled with both the MPM-prefork and MPM-worker modules, so it seems I need two separate versions of the apache2 MPM flavors. But then I need to invoke and control them by separate names, I assume. I looked at the configuration options for apache2 and I am a bit queasy about compiling a second apache2 version with prefork because I am not sure I can set all the options so that none of my current apache2 files is overwritten. Is there a way?

Is there a standard solution to separately installing and controlling prefork and worker apache2 executables on the same machine without them stepping on each other during installation or operation?

Best Answer

The apache wiki at wiki.apache.org has the answer for me. My main concern was not clobbering files in my current version of apache2 when creating a new apache2, and I had not seen a configuration option before to control where apache2ctl is copied to. However, it's there, and this page leads me to believe that all apache2 files are accounted for and that config.layout allows one to direct where all of them go. http://wiki.apache.org/httpd/DistrosDefaultLayout#Apache_httpd_2.2_default_layout_.28apache.org_source_package.29: