It is definitely a very cool and easily manageable thing. But please note that every vendor who redistributes Apache has done it slightly in his own way. So, my humble request would be to thoroughly think this through with an administrative view of point without breaking the convention.
thanks sriram Shanti Subramanyam - PAE wrote: > +1 for enabling the extra conf files. This is the new way of doing > Apache configs and we should be supporting that rather than sticking to > the old single file httpd.conf. > > Shanti > > Seema Alevoor wrote: > >> There were some errors in the Apache Test suite conf files. I fixed them and >> ran the tests again. >> The result is as below: >> >> Failed Test Stat Wstat Total Fail Failed List of Failed >> ------------------------------------------------------------------------------- >> t/modules/include.t 86 1 1.16% 53 >> t/security/CVE-2006-5752.t 2 1 50.00% 2 >> 11 tests and 14 subtests skipped. >> Failed 2/66 test scripts, 96.97% okay. 2/2421 subtests failed, 99.92% okay. >> >> >> Some thoughts on the new layout : >> The initial proposal mentioned about a new directory, "conf.d" under >> /etc/apache2 to host various Apache 2.2.4 >> server configuration files. I don't think we need this new directory. We >> already have "extra" directory under >> /etc/apache2 which can serve this purpose. Currently, httpd.conf-example >> file explicitly includes >> (but the lines are commented) all the .conf files under /etc/apache2/extra >> dir. >> Instead, we can include the following line (commented by default) in >> httpd.conf-example file. >> Include /etc/apache2/extra/*.conf >> >> Similarly, can't we use the existing file, "/usr/apache2/bin/envvars" >> (already sourced from apachectl), for setting the variable >> "HTTPD" which determines the server mpm that would be used at startup ? >> >> >> Thanks and Regards, >> Seema. >> >> >> >> Seema Alevoor wrote: >> >>> Just a clarification on the directory name change. >>> The change from libexec to modules was not required for building the >>> co-located httpd binaries. >>> Stefan had suggested this change. So, I just modified the required files >>> along with the other build related files. >>> >>> Thanks, >>> Seema. >>> >>> 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 >>> >> _______________________________________________ >> 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 >
