(Looks like, I had sent in html format earlier. Re-sending it in text format) 

Apache 2.2.4 File Layout proposal for SXDE

Hi
Continuing on the discussion for having multiple MPM support within SXDE, 
please find below a one pager with suggested file layout and build process 
change so as to successfully co-habitate multiple MPM within a single Apache 
HTTP server installation. I solicit your valuable insight on any pros and cons 
with the suggested file layout.

Cheers
Sriram


Apache 2.2.4 File Layout with Multiple MPM support for SXDE


Introduction

Web Stack project intends to deliver Apache 2.2.4 HTTPd server with multiple 
MPM support. Please refer to discussion - Choo sing default MPM for Apache 
2.2.x within SXDE for more information on these MPM models. As part of this 
project, pre-fork MPM is intended to be the default MPM compiled within the 
'httpd' binary for backward compatibility reasons and worker MPM support will 
be provided in the form of a separate 'httpd.worker' binary.


Project Description

Apache Software Foundation and Apache HTTP Server Project has released the 
version 2.2.4 of the Apache HTTP server for quite some time now. With Apache 
HTTP server 2.2.4 release, customers are strongly encouraged to upgrade to this 
release to leverage on the numerous enhancements. The goal of the Web Stack 
project within Open Solaris community is to deliver Apache HTTP Server 2.2.4 as 
part of updated SAMP stack within Solaris Developer Express .


Technical Description

With Apache HTTP Server 2.2.4 release, worker MPM besides the default pre-fork 
MPM has become very popular among customers. Accordingly, delivering multiple 
MPM based server binaries has now become the de-facto standard within popular 
Linux distributions like Red Hat Enterprise Linux and SuSE Enterprise Linux.

Apache 2.2.4 build system incorporates the flexibility to distribute multiple 
MPM (like pre-fork and worker MPM) within a single Apache HTTP server 
installation. The below mentioned steps is the minimum steps found necessary to 
co-habitiate a multiple MPM based Apche HTTPd server distribution within 
Solaris Developer Express .

    *

      Build and Install Apache Portal Runtime(APR) with multi-threaded support
    *

      Build and Install other third party libraries necessary for running 
Apache HTTP server with multi-threaded support.
    *

      Build and Install Apache HTTP server with 'pre-fork' MPM
    *

      Build Apache HTTP server using 'worker' MPM and copy the 'httpd' binary 
into the Apache HTTP server installation location as 'httpd.worker' .
    * Provide customized Apache HTTPd server configuration files with 
appropriate 'If' blocks so as to run successfully with different MPM models 
distributed within Apache HTTP server distribution.


Apache 2.2.4 File Layout Changes
Apache 2.2.4 File layout will be very similar to Apache 2.0 shipped with 
Solaris 10. Please refer to Apache 2.x ARC case (PSARC/2004/676/) for more 
information on the Apache 2 file layout shipped within Solaris 10 release. In 
this section, we highlight only the file layout changes compared to Apache 2.0 
so as to support multiple MPM within a single installation.

/

    * /etc

        * defaults/apache2 -> System wide Apache 2 HTTP MPM configuration file.
              o Default value in this file will be set to 'pre-fork' (MPM) so 
as to provide backward compatibility
              o Users should be able to edit this file to configure the 
appropriate MPM to be loaded by Apache 2.2.4 HTTP server.
              o Apache support scripts like 'apachectl' will include this file 
to determine the appropriate MPM model to be used at the time of Apache HTTP 
server startup.
              o Interface Stability Level : Uncommited

        * apache2/conf.d/ -> Directory hosts various Apache 2.2.4 server 
configuration files underneath.
              o Collection of various task specific configurations . All the 
configurations defined in this directory will be included at the time of server 
startup.
              o Interface Stability Level : Uncommited

    * /usr

        * apache2/bin/ -> Directory hosts common Apache 2.2.4 HTTPd server 
programs. For more information, please refer to Apache 2.2 Programs.
              o This directory will contain binaries like ab, apxs, apachectl, 
httpd and httpd.worker (for multiple MPM support)
              o Wrapper scripts like 'apachectl' will internally include 
/etc/default/apache2 file to determine the current user configured MPM model.
              o Interface Stability Level : Uncommited

        * apache2/lib -> Directory hosts bundled libraries within Apache 2.2.4
              o Bundled libraries with Apache 2.2.4 like APR (Apache Portable 
Runtime), PCRE(Perl Compatible Regular Expression Language) will be built with 
threading support
              o Interface Stability Level : Volatile

        * apache2/libexec -> Directory hosts various Apache 2.2.4 modules 
shipped with Apache 2.2.4 HTTP server.
              o Bundled Apache 2 modules with Apache 2.2.4 distribution will be 
built with threading support
              o Apache 2.2.4 Server configuration file will be updated so that 
modules that does not have threading support will not be loaded in MPMs like 
worker.
              o Interface Stability Level : Volatile



Please share your concerns or suggestions for improvements.
Thanks
Sriram
 
 
This message posted from opensolaris.org

Reply via email to