I have attached the diffs.
Main changes:
* apache2/Makefile.sfw : changes to build and install both prefork and 
worker mpms. I have used 2 separate directories for prefork and worker 
to avoid overwriting of build environment.
* apache2/install-apache-worker (attached) : This is a new file which 
handles the renaming of worker httpd binary to httpd.worker
* apache2/src.patch : with the changed installbuilddir location

Kindly review.

Thanks,
Seema.


Basant Kukreja wrote:
> Will you share your changes (diff) with us? 
>
> Regards,
> Basant.
>
> On Wed, Aug 08, 2007 at 04:48:36PM +0530, Seema Alevoor wrote:
>   
>> Hi,
>>
>> I tried prototyping this layout structure with multiple MPMs using sfw build 
>> environment.
>> I modified sfw build scripts to build and install prefork, worker mpm 
>> binaries under usr/apache2/bin directory.
>> First I built apr and apr-util libraries with --enable-threads option and 
>> then built prefork followed by worker.
>> I have used different configure options for prefork and worker.
>> All the required modules are created during prefork mpm build (existing 
>> way).  For building worker mpm,
>> I did not include the extra module options used for prefork since only the 
>> 'httpd' binary from the worker build is copied to
>> usr/apache2/bin directory as httpd.worker. There is no need to build these 
>> modules again.
>> All the modules that are generated during prefork build get installed under 
>> usr/apache2/modules
>> (I have changed the directory name from "libexec" to "modules" which is more 
>> intuitive).
>>
>> I tested these 2 co-located mpms along with the prefork mpm (part of SXDE 
>> installation) located under /usr/apache2.
>> First, I used torture script.  Then I ran Apache Test suite. I have listed 
>> the result of these runs.
>> Initially, some of the tests of Apache Test suite which passed for prefork 
>> mpm failed (tests were hanging) for worker mpm.
>> It was failing in cgi module. By default, prefork mpm uses mod_cgi and 
>> worker mpm uses mod_cgid. My build didn't have mod_cgid.
>> When I built and used cgid module, these tests passed for worker mpm and got 
>> consistent results for co-located mpms and existing prefork mpm.
>>
>> I  have listed below, the configuration options used for building prefork 
>> and mpm.
>>
>> prefork:
>>              ./configure --prefix=/usr/apache2 \
>>                  --enable-layout=Solaris-Apache2 \
>>                  --enable-mods-shared=all \
>>                  --enable-so \
>>                  --enable-suexec \
>>                  --enable-proxy \
>>                  --enable-proxy-connect \
>>                  --enable-proxy-ftp \
>>                  --enable-proxy-http \
>>                  --enable-proxy-ajp \
>>                  --enable-proxy-balancer \
>>                  --enable-file-cache \
>>                  --enable-disk-cache \
>>                  --enable-cache \
>>                  --enable-mem-cache \
>>                  --enable-deflate \
>>                  --enable-cgi \
>>                  --enable-cgid \
>>                  --enable-ssl \
>>                  --with-ssl=/usr/sfw \
>>                  
>> --with-apr=$(SRC)/cmd/apache2/httpd-prefork/$(VER)/srclib/apr \
>>                  
>> --with-apr-util=$(SRC)/cmd/apache2/httpd-prefork/$(VER)/srclib/apr-util \
>>                  --with-mpm=prefork)
>>
>> worker:
>>              ./configure --prefix=/usr/apache2 \
>>                  --enable-layout=Solaris-Apache2 \
>>                  --enable-mods-shared=all \
>>                  --enable-so \
>>                  --with-ssl=/usr/sfw \
>>                  
>> --with-apr=$(SRC)/cmd/apache2/httpd-prefork/$(VER)/srclib/apr \
>>                  
>> --with-apr-util=$(SRC)/cmd/apache2/httpd-prefork/$(VER)/srclib/apr-util \
>>                  --with-mpm=worker)
>>
>>
>> Test Resutls:
>>
>> A) torture.pl script runs:
>>
>> 1) Running torture on co-located worker mpm
>>
>> output:
>> -------
>>  > ./torture.pl -c 3000 http://localhost:3000/index.html
>> ** torture.pl version 1.05 starting at Wed Aug  8 01:43:47 2007
>> Transactions:           3000
>> Elapsed time:           43.836 sec
>> Bytes Transferred:      72000 bytes
>> Response Time:          15.00 sec
>> Transaction Rate:       68.44 trans/sec
>> Throughput:             1642.50 bytes/sec
>> Concurrency:            1026.7
>> Status Code 200:        3000
>> ** torture.pl version 1.05 ending at Wed Aug  8 01:45:03 2007
>>
>>
>> 2) Running torture on co-located prefork mpm
>>
>> output:
>> -------
>>  > ./torture.pl -c 1000 http://localhost:3000/index.html
>> ** torture.pl version 1.05 starting at Wed Aug  8 02:04:06 2007
>> Transactions:           1000
>> Elapsed time:           171.426 sec
>> Bytes Transferred:      24000 bytes
>> Response Time:          65.32 sec
>> Transaction Rate:       5.83 trans/sec
>> Throughput:             140.00 bytes/sec
>> Concurrency:            381.1
>> Status Code 200:        1000
>> ** torture.pl version 1.05 ending at Wed Aug  8 02:07:07 2007
>>
>>  > ./torture.pl -c 2000 http://localhost:3000/index.html
>> ** torture.pl version 1.05 starting at Wed Aug  8 01:55:07 2007
>> Transactions:           2000
>> Elapsed time:           221.519 sec
>> Bytes Transferred:      38784 bytes
>> Response Time:          108.84 sec
>> Transaction Rate:       9.03 trans/sec
>> Throughput:             175.08 bytes/sec
>> Concurrency:            982.7
>> Status Code 200:        1616
>> Status Code 503:        384
>> ** torture.pl version 1.05 ending at Wed Aug  8 01:59:10 2007
>>
>>
>>
>> 2) Running torture on original (the one that gets installed as part of OS 
>> installation under /usr/apache2) prefork mpm
>>
>> output:
>> -------
>>  > ./torture.pl -c 1000 http://localhost:3000/index.html
>> ** torture.pl version 1.05 starting at Thu Aug  2 03:25:22 2007
>> Transactions:           1000
>> Elapsed time:           168.460 sec
>> Bytes Transferred:      44000 bytes
>> Response Time:          57.37 sec
>> Transaction Rate:       5.94 trans/sec
>> Throughput:             261.19 bytes/sec
>> Concurrency:            340.6
>> Status Code 200:        1000
>> ** torture.pl version 1.05 ending at Thu Aug  2 03:28:21 2007
>>
>> ./torture.pl -c 2000 http://localhost:3000/index.html
>> ** torture.pl version 1.05 starting at Thu Aug  2 03:20:29 2007
>> Transactions:           2000
>> Elapsed time:           223.134 sec
>> Bytes Transferred:      69916 bytes
>> Response Time:          110.50 sec
>> Transaction Rate:       8.96 trans/sec
>> Throughput:             313.34 bytes/sec
>> Concurrency:            990.4
>> Status Code 200:        1589
>> Status Code 503:        411
>> ** torture.pl version 1.05 ending at Thu Aug  2 03:24:33 2007
>>
>>
>>
>> B) Apache Test suite runs: on co-located prefork, worker and original (the 
>> one that gets installed as part of OS installation under /usr/apache2) 
>> prefork mpms :
>>
>> Failed Test                Stat Wstat Total Fail  Failed  List of Failed
>> -------------------------------------------------------------------------------
>> t/apache/errordoc.t                      14    6  42.86%  2 4 6 10 12 14
>> t/modules/cache.t                         3    3 100.00%  1-3
>> t/modules/include.t                      86    6   6.98%  4-6 47-48 53
>> t/modules/proxy.t                        13   12  92.31%  1-8 10-13
>> t/modules/proxy_balancer.t                1    1 100.00%  1
>> t/modules/vhost_alias.t                   8    8 100.00%  1-8
>> t/protocol/nntp-like.t      255 65280     5    8 160.00%  2-5
>> t/security/CVE-2006-5752.t                2    1  50.00%  2
>> 11 tests and 14 subtests skipped.
>> Failed 8/66 test scripts, 87.88% okay. 41/2421 subtests failed, 98.31% okay.
>>
>>
>>
>>
>> The modified part of the layout looks like this:
>>
>>      proto/root_i386/usr/apache2/bin/httpd.worker
>>      proto/root_i386/usr/apache2/bin/httpd
>>      proto/root_i386/usr/apache2/bin/apr-1-config
>>      proto/root_i386/usr/apache2/bin/apu-1-config
>>      proto/root_i386/usr/apache2/bin/htpasswd
>>      proto/root_i386/usr/apache2/bin/htdigest
>>      proto/root_i386/usr/apache2/bin/rotatelogs
>>      proto/root_i386/usr/apache2/bin/logresolve
>>      proto/root_i386/usr/apache2/bin/ab
>>      proto/root_i386/usr/apache2/bin/checkgid
>>      proto/root_i386/usr/apache2/bin/htdbm
>>      proto/root_i386/usr/apache2/bin/htcacheclean
>>      proto/root_i386/usr/apache2/bin/httxt2dbm
>>      proto/root_i386/usr/apache2/bin/apxs
>>      proto/root_i386/usr/apache2/bin/apachectl
>>      proto/root_i386/usr/apache2/bin/dbmmanage
>>      proto/root_i386/usr/apache2/bin/envvars-std
>>      proto/root_i386/usr/apache2/bin/envvars
>>      proto/root_i386/usr/apache2/bin/suexec.disabled
>>      proto/root_i386/usr/apache2/modules
>>      proto/root_i386/usr/apache2/modules/mod_auth_gss.so
>>      proto/root_i386/usr/apache2/modules/mod_authn_file.so
>>      proto/root_i386/usr/apache2/modules/mod_authn_dbm.so
>>      proto/root_i386/usr/apache2/modules/mod_authn_anon.so
>>      proto/root_i386/usr/apache2/modules/mod_authn_dbd.so
>>      proto/root_i386/usr/apache2/modules/mod_authn_default.so
>>      proto/root_i386/usr/apache2/modules/mod_authz_host.so
>>      proto/root_i386/usr/apache2/modules/mod_authz_groupfile.so
>>      proto/root_i386/usr/apache2/modules/mod_authz_user.so
>>      proto/root_i386/usr/apache2/modules/mod_authz_dbm.so
>>      proto/root_i386/usr/apache2/modules/mod_authz_owner.so
>>      proto/root_i386/usr/apache2/modules/mod_authz_default.so
>>      proto/root_i386/usr/apache2/modules/mod_auth_basic.so
>>      proto/root_i386/usr/apache2/modules/mod_auth_digest.so
>>      proto/root_i386/usr/apache2/modules/mod_file_cache.so
>>      proto/root_i386/usr/apache2/modules/mod_cache.so
>>      proto/root_i386/usr/apache2/modules/mod_disk_cache.so
>>      proto/root_i386/usr/apache2/modules/mod_mem_cache.so
>>      proto/root_i386/usr/apache2/modules/mod_dbd.so
>>      proto/root_i386/usr/apache2/modules/mod_dumpio.so
>>      proto/root_i386/usr/apache2/modules/mod_ext_filter.so
>>      proto/root_i386/usr/apache2/modules/mod_include.so
>>      proto/root_i386/usr/apache2/modules/mod_filter.so
>>      proto/root_i386/usr/apache2/modules/mod_deflate.so
>>      proto/root_i386/usr/apache2/modules/mod_log_config.so
>>      proto/root_i386/usr/apache2/modules/mod_log_forensic.so
>>      
>>
>>
>> Please share your thoughts on this new layout & build options.
>>
>>
>> Thanks and Regards,
>> Seema.
>>
>>
>> Sriram Natarajan wrote:
>>     
>>> Hi
>>>   I just posted my thoughts on as to how Apache 2.2.4 file layout could 
>>> look so as to support multiple MPM support as part of our SAMP stack 
>>> effort within SXDE. I would very much appreciate, if you could take a 
>>> moment to review this proposal and let us know your concerns / suggestions.
>>>
>>> Here is the url
>>> http://www.opensolaris.org/jive/thread.jspa?threadID=36272
>>>
>>>
>>> Thanks in advance
>>> sriram
>>> _______________________________________________
>>> webstack-discuss mailing list
>>> webstack-discuss at opensolaris.org
>>> http://mail.opensolaris.org/mailman/listinfo/webstack-discuss
>>>       
>> _______________________________________________
>> webstack-discuss mailing list
>> webstack-discuss at opensolaris.org
>> http://mail.opensolaris.org/mailman/listinfo/webstack-discuss
>>     
> _______________________________________________
> webstack-discuss mailing list
> webstack-discuss at opensolaris.org
> http://mail.opensolaris.org/mailman/listinfo/webstack-discuss
>   
-------------- next part --------------
An embedded and charset-unspecified text was scrubbed...
Name: new.layout.changes
URL: 
<http://mail.opensolaris.org/pipermail/webstack-discuss/attachments/20070816/3c78d2b5/attachment.ksh>
-------------- next part --------------
An embedded and charset-unspecified text was scrubbed...
Name: install-apache-worker
URL: 
<http://mail.opensolaris.org/pipermail/webstack-discuss/attachments/20070816/3c78d2b5/attachment-0001.ksh>

Reply via email to