<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

Reply via email to