<html><head>
<meta http-equiv="content-type" content="text/html; charset=ISO-8859-1"> <title>Apache 2.2.4 File Layout proposal for SXDE</title> </head><body> <p> Hi<br> Continuing on the <a href="http://www.opensolaris.org/jive/thread.jspa?threadID=35015&tstart=0"> discussion</a> 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. <br> <br>Cheers <br>Sriram <br> </p> <p><br> </p> <h2 style="text-align: center;"> Apache 2.2.4 File Layout with Multiple MPM support for SXDE<br> </h2> <p><br> </p> <h3> Introduction</h3> <p> Web Stack project intends to deliver Apache 2.2.4 HTTPd server with multiple MPM support. Please refer to discussion - <a href="http://www.opensolaris.org/jive/thread.jspa?threadID=35015&tstart=0">Choosing default MPM for Apache 2.2.x within SXDE</a> for more information on these MPM models. As part of this project, <span style="font-style: italic;">pre-fork </span>MPM is intended to be the default MPM compiled within the '<span style="font-style: italic;">httpd' </span>binary for backward compatibility reasons and <span style="font-style: italic;">worker </span>MPM support will be provided in the form of a separate '<span style="font-style: italic;">httpd.worker'</span> binary. </p> <p><br> </p> <h3>Project Description<br> </h3> <p>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 <a href="http://www.apache.org/dist/httpd/Announcement2.2.html">Apache HTTP server 2.2.4</a> release, customers are strongly encouraged to upgrade to this release to leverage on the <a href="http://httpd.apache.org/docs/2.2/new_features_2_2.html">numerous enhancements</a>. The goal of the <a href="http://www.opensolaris.org/os/project/webstack/">Web Stack </a>project within <a href="http://www.opensolaris.org">Open Solaris</a> community is to deliver Apache HTTP Server 2.2.4 as part of updated <a href="http://www.sun.com/software/solaris/amp/resources.html">SAMP </a>stack within <a href="http://developers.sun.com/sxde/">Solaris Developer Express</a> .</p> <p><br> </p> <h3>Technical Description</h3> <p>With Apache HTTP Server 2.2.4 release, <a href="http://httpd.apache.org/docs/2.2/mod/worker.html"><span style="font-style: italic;">worker </span></a>MPM besides the default <a href="http://httpd.apache.org/docs/2.2/mod/prefork.html"><span style="font-style: italic;">pre-fork </span></a>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. <br> </p> <p>Apache 2.2.4 build system incorporates the flexibility to distribute multiple MPM (like <span style="font-style: italic;">pre-fork </span>and <span style="font-style: italic;">worker </span>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 <a href="http://developers.sun.com/sxde/">Solaris Developer Express</a> .</p> <ul> <li> <p>Build and Install Apache Portal Runtime(APR) with multi-threaded support</p> </li> <li> <p>Build and Install other third party libraries necessary for running Apache HTTP server with multi-threaded support. </p> </li> <li> <p>Build and Install Apache HTTP server with 'pre-fork' MPM</p> </li> <li> <p>Build Apache HTTP server using 'worker' MPM and copy the '<span style="font-style: italic;">httpd' </span>binary into the Apache HTTP server installation location as '<span style="font-style: italic;">httpd.worker' </span>.</p> </li> <li>Provide customized Apache HTTPd server configuration files with appropriate '<span style="font-style: italic;">If' </span>blocks so as to run successfully with different MPM models distributed within Apache HTTP server distribution. <br> </li> </ul> <p style="font-style: italic;"><br> </p> <h3>Apache 2.2.4 File Layout Changes<br> </h3> 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. <br> <br> /<br> <ul> <li>/etc</li> </ul> <blockquote> <ul> <li> defaults/apache2 -> System wide Apache 2 HTTP MPM configuration file. </li> <ul> <li>Default value in this file will be set to <i>'pre-fork'</i> <i>(MPM) </i>so as to provide backward compatibility <br> </li> <li>Users should be able to edit this file to configure the appropriate MPM to be loaded by Apache 2.2.4 HTTP server. <br> </li> <li>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.</li> <li>Interface Stability Level : <i>Uncommited<br> </i></li> </ul> </ul> </blockquote> <blockquote> <ul> <li>apache2/conf.d/ -> Directory hosts various Apache 2.2.4 server configuration files underneath. <br> </li> <ul> <li>Collection of various task specific configurations . All the configurations defined in this directory will be included at the time of server startup.</li> </ul> <ul> <li>Interface Stability Level : <i>Uncommited</i></li> </ul> </ul> </blockquote> <ul> <li>/usr</li> </ul> <blockquote> <ul> <li>apache2/bin/ -> Directory hosts common Apache 2.2.4 HTTPd server programs. For more information, please refer to <a href="http://httpd.apache.org/docs/2.2/programs/">Apache 2.2 Programs</a>. </li> <ul> <li>This directory will contain binaries like <i>ab, apxs, apachectl, httpd </i>and <i>httpd.worker</i> (<i>for multiple MPM support</i>)<br> </li> <li>Wrapper scripts like '<i>apachectl' </i>will internally include <i>/etc/default/apache2 </i>file to determine the current user configured MPM model. <br> </li> <li>Interface Stability Level : <i>Uncommited</i></li> </ul> </ul> </blockquote> <blockquote> <ul> <li>apache2/lib -> Directory hosts bundled libraries within Apache 2.2.4<br> </li> <ul> <li>Bundled libraries with Apache 2.2.4 like <i>APR (Apache Portable Runtime)</i>, <i>PCRE(Perl Compatible Regular Expression Language)</i> will be built with threading support</li> </ul> <ul> <li>Interface Stability Level : <i>Volatile</i></li> </ul> </ul> </blockquote> <blockquote> <ul> <li>apache2/libexec -> Directory hosts various Apache 2.2.4 modules shipped with Apache 2.2.4 HTTP server. <br> </li> <ul> <li>Bundled Apache 2 modules with Apache 2.2.<i>4 </i>distribution will be built with threading support</li> <li>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 <i>worker.</i><br> </li> </ul> <ul> <li>Interface Stability Level : <i>Volatile</i></li> </ul> </ul> </blockquote> <blockquote> </blockquote> <br> <br>Please share your concerns or suggestions for improvements. <br>Thanks <br>Sriram <p><br></p> </body></html> This message posted from opensolaris.org
