/[gentoo]/xml/htdocs/proj/en/glep/glep-0011.html
Gentoo

Contents of /xml/htdocs/proj/en/glep/glep-0011.html

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1.6 - (hide annotations) (download) (as text)
Tue Oct 10 20:25:14 2006 UTC (8 years, 1 month ago) by g2boojum
Branch: MAIN
Changes since 1.5: +340 -92 lines
File MIME type: text/html
regenerate all .html files

1 g2boojum 1.1 <?xml version="1.0" encoding="utf-8" ?>
2     <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
3     <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
4     <!--
5     This HTML is auto-generated. DO NOT EDIT THIS FILE! If you are writing a new
6     PEP, see http://www.python.org/peps/pep-0001.html for instructions and links
7     to templates. DO NOT USE THIS HTML FILE AS YOUR TEMPLATE!
8     -->
9     <head>
10     <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
11 g2boojum 1.6 <meta name="generator" content="Docutils 0.4: http://docutils.sourceforge.net/" />
12 g2boojum 1.1 <title>GLEP 11 -- Web Application Installation</title>
13 g2boojum 1.6 <style type="text/css">
14    
15     /*
16     :Author: David Goodger
17     :Contact: goodger@users.sourceforge.net
18     :date: $Date: 2003/06/02 17:03:08 $
19     :version: $Revision: 1.1 $
20     :copyright: This stylesheet has been placed in the public domain.
21    
22     Default cascading style sheet for the PEP HTML output of Docutils.
23     */
24    
25     .first {
26     margin-top: 0 }
27    
28     .last {
29     margin-bottom: 0 }
30    
31     .navigation {
32     width: 100% ;
33     background: #cc99ff ;
34     margin-top: 0px ;
35     margin-bottom: 0px }
36    
37     .navigation .navicon {
38     width: 150px ;
39     height: 35px }
40    
41     .navigation .textlinks {
42     padding-left: 1em ;
43     text-align: left }
44    
45     .navigation td, .navigation th {
46     padding-left: 0em ;
47     padding-right: 0em ;
48     vertical-align: middle }
49    
50     .rfc2822 {
51     margin-top: 0.5em ;
52     margin-left: 0.5em ;
53     margin-right: 0.5em ;
54     margin-bottom: 0em }
55    
56     .rfc2822 td {
57     text-align: left }
58    
59     .rfc2822 th.field-name {
60     text-align: right ;
61     font-family: sans-serif ;
62     padding-right: 0.5em ;
63     font-weight: bold ;
64     margin-bottom: 0em }
65    
66     a.toc-backref {
67     text-decoration: none ;
68     color: black }
69    
70     body {
71     margin: 0px ;
72     margin-bottom: 1em ;
73     padding: 0px }
74    
75     dd {
76     margin-bottom: 0.5em }
77    
78     div.section {
79     margin-left: 1em ;
80     margin-right: 1em ;
81     margin-bottom: 1.5em }
82    
83     div.section div.section {
84     margin-left: 0em ;
85     margin-right: 0em ;
86     margin-top: 1.5em }
87    
88     div.abstract {
89     margin: 2em 5em }
90    
91     div.abstract p.topic-title {
92     font-weight: bold ;
93     text-align: center }
94    
95     div.attention, div.caution, div.danger, div.error, div.hint,
96     div.important, div.note, div.tip, div.warning {
97     margin: 2em ;
98     border: medium outset ;
99     padding: 1em }
100    
101     div.attention p.admonition-title, div.caution p.admonition-title,
102     div.danger p.admonition-title, div.error p.admonition-title,
103     div.warning p.admonition-title {
104     color: red ;
105     font-weight: bold ;
106     font-family: sans-serif }
107    
108     div.hint p.admonition-title, div.important p.admonition-title,
109     div.note p.admonition-title, div.tip p.admonition-title {
110     font-weight: bold ;
111     font-family: sans-serif }
112    
113     div.figure {
114     margin-left: 2em }
115    
116     div.footer, div.header {
117     font-size: smaller }
118    
119     div.footer {
120     margin-left: 1em ;
121     margin-right: 1em }
122    
123     div.system-messages {
124     margin: 5em }
125    
126     div.system-messages h1 {
127     color: red }
128    
129     div.system-message {
130     border: medium outset ;
131     padding: 1em }
132    
133     div.system-message p.system-message-title {
134     color: red ;
135     font-weight: bold }
136    
137     div.topic {
138     margin: 2em }
139    
140     h1 {
141     font-family: sans-serif ;
142     font-size: large }
143    
144     h2 {
145     font-family: sans-serif ;
146     font-size: medium }
147    
148     h3 {
149     font-family: sans-serif ;
150     font-size: small }
151    
152     h4 {
153     font-family: sans-serif ;
154     font-style: italic ;
155     font-size: small }
156    
157     h5 {
158     font-family: sans-serif;
159     font-size: x-small }
160    
161     h6 {
162     font-family: sans-serif;
163     font-style: italic ;
164     font-size: x-small }
165    
166     .section hr {
167     width: 75% }
168    
169     ol.simple, ul.simple {
170     margin-bottom: 1em }
171    
172     ol.arabic {
173     list-style: decimal }
174    
175     ol.loweralpha {
176     list-style: lower-alpha }
177    
178     ol.upperalpha {
179     list-style: upper-alpha }
180    
181     ol.lowerroman {
182     list-style: lower-roman }
183    
184     ol.upperroman {
185     list-style: upper-roman }
186    
187     p.caption {
188     font-style: italic }
189    
190     p.credits {
191     font-style: italic ;
192     font-size: smaller }
193    
194     p.label {
195     white-space: nowrap }
196    
197     p.topic-title {
198     font-family: sans-serif ;
199     font-weight: bold }
200    
201     pre.line-block {
202     font-family: serif ;
203     font-size: 100% }
204    
205     pre.literal-block, pre.doctest-block {
206     margin-left: 2em ;
207     margin-right: 2em ;
208     background-color: #eeeeee }
209    
210     span.classifier {
211     font-family: sans-serif ;
212     font-style: oblique }
213    
214     span.classifier-delimiter {
215     font-family: sans-serif ;
216     font-weight: bold }
217    
218     span.interpreted {
219     font-family: sans-serif }
220    
221     span.option-argument {
222     font-style: italic }
223    
224     span.pre {
225     white-space: pre }
226    
227     span.problematic {
228     color: red }
229    
230     table {
231     margin-top: 0.5em ;
232     margin-bottom: 0.5em }
233    
234     td, th {
235     padding-left: 0.5em ;
236     padding-right: 0.5em ;
237     vertical-align: top }
238    
239     td.num {
240     text-align: right }
241    
242     th.field-name {
243     font-weight: bold ;
244     text-align: left ;
245     white-space: nowrap }
246    
247     h1 tt, h2 tt, h3 tt, h4 tt, h5 tt, h6 tt {
248     font-size: 100% }
249    
250     tt {
251     background-color: #eeeeee }
252    
253     ul.auto-toc {
254     list-style-type: none }
255    
256     </style>
257 g2boojum 1.1 </head>
258     <body bgcolor="white">
259     <table class="navigation" cellpadding="0" cellspacing="0"
260     width="100%" border="0">
261     <tr><td class="navicon" width="150" height="35">
262     <a href="http://www.gentoo.org/" title="Gentoo Linux Home Page">
263     <img src="http://www.gentoo.org/images/gentoo-new.gif" alt="[Gentoo]"
264     border="0" width="150" height="35" /></a></td>
265     <td class="textlinks" align="left">
266     [<b><a href="http://www.gentoo.org/">Gentoo Linux Home</a></b>]
267 g2boojum 1.6 [<b><a href="http://www.gentoo.org/peps">GLEP Index</a></b>]
268 g2boojum 1.1 [<b><a href="http://www.gentoo.org/proj/en/glep/glep-0011.txt">GLEP Source</a></b>]
269     </td></tr></table>
270 g2boojum 1.6 <table class="rfc2822 docutils field-list" frame="void" rules="none">
271 g2boojum 1.1 <col class="field-name" />
272     <col class="field-body" />
273     <tbody valign="top">
274     <tr class="field"><th class="field-name">GLEP:</th><td class="field-body">11</td>
275     </tr>
276     <tr class="field"><th class="field-name">Title:</th><td class="field-body">Web Application Installation</td>
277     </tr>
278 g2boojum 1.6 <tr class="field"><th class="field-name">Version:</th><td class="field-body">1.6</td>
279 g2boojum 1.1 </tr>
280 g2boojum 1.6 <tr class="field"><th class="field-name">Last-Modified:</th><td class="field-body"><a class="reference" href="http://www.gentoo.org/cgi-bin/viewcvs.cgi/xml/htdocs/proj/en/glep/glep-0011.txt?cvsroot=gentoo">2006/09/04 03:12:43</a></td>
281 g2boojum 1.1 </tr>
282     <tr class="field"><th class="field-name">Author:</th><td class="field-body">Troy Dack &lt;tad&#32;&#97;t&#32;gentoo.org&gt;</td>
283     </tr>
284 g2boojum 1.5 <tr class="field"><th class="field-name">Author:</th><td class="field-body">Stuart Herbert &lt;stuart&#32;&#97;t&#32;gentoo.org&gt;</td>
285     </tr>
286 g2boojum 1.1 <tr class="field"><th class="field-name">Discussions-To:</th><td class="field-body"><a class="reference" href="mailto:gentoo-dev&#64;gentoo.org?subject=PEP%2011">gentoo-dev&#32;&#97;t&#32;gentoo.org</a></td>
287     </tr>
288 g2boojum 1.6 <tr class="field"><th class="field-name">Status:</th><td class="field-body">Final</td>
289 g2boojum 1.1 </tr>
290     <tr class="field"><th class="field-name">Type:</th><td class="field-body">Standards Track</td>
291     </tr>
292     <tr class="field"><th class="field-name">Content-Type:</th><td class="field-body"><a class="reference" href="glep-0002.html">text/x-rst</a></td>
293     </tr>
294 g2boojum 1.4 <tr class="field"><th class="field-name">Created:</th><td class="field-body">02-August-2003</td>
295 g2boojum 1.1 </tr>
296 g2boojum 1.6 <tr class="field"><th class="field-name">Post-History:</th><td class="field-body">07-Aug-2003, 12-Aug-2003, 13-Aug-2003, 3-Sep-2006</td>
297 g2boojum 1.1 </tr>
298     </tbody>
299     </table>
300     <hr />
301 g2boojum 1.6 <div class="contents topic">
302     <p class="topic-title first"><a id="contents" name="contents">Contents</a></p>
303 g2boojum 1.1 <ul class="simple">
304 g2boojum 1.6 <li><a class="reference" href="#status" id="id7" name="id7">Status</a></li>
305     <li><a class="reference" href="#credits" id="id8" name="id8">Credits</a></li>
306     <li><a class="reference" href="#definitions" id="id9" name="id9">Definitions</a></li>
307     <li><a class="reference" href="#conventions" id="id10" name="id10">Conventions</a></li>
308     <li><a class="reference" href="#abstract" id="id11" name="id11">Abstract</a></li>
309     <li><a class="reference" href="#motivation" id="id12" name="id12">Motivation</a></li>
310     <li><a class="reference" href="#rationale" id="id13" name="id13">Rationale</a></li>
311     <li><a class="reference" href="#implementation" id="id14" name="id14">Implementation</a><ul>
312     <li><a class="reference" href="#web-server" id="id15" name="id15">1. Web Server</a><ul>
313     <li><a class="reference" href="#default-document-root" id="id16" name="id16">1.1 Default Document Root</a></li>
314     <li><a class="reference" href="#apache-2" id="id17" name="id17">1.2 Apache 2</a></li>
315 g2boojum 1.1 </ul>
316     </li>
317 g2boojum 1.6 <li><a class="reference" href="#application-installation" id="id18" name="id18">2. Application Installation</a><ul>
318     <li><a class="reference" href="#application-slots" id="id19" name="id19">2.1 Application SLOTs</a></li>
319     <li><a class="reference" href="#installation-paths" id="id20" name="id20">2.2 Installation Paths</a></li>
320 g2boojum 1.1 </ul>
321     </li>
322 g2boojum 1.6 <li><a class="reference" href="#virtual-host-support" id="id21" name="id21">3. Virtual Host Support</a><ul>
323     <li><a class="reference" href="#new-vhost-use-flag" id="id22" name="id22">3.1 New &quot;vhost&quot; USE Flag</a></li>
324     <li><a class="reference" href="#vhost-configuration-tool" id="id23" name="id23">3.2 VHost Configuration Tool</a></li>
325     <li><a class="reference" href="#single-host-installation" id="id24" name="id24">3.3 Single Host Installation</a></li>
326     <li><a class="reference" href="#virtual-host-installation" id="id25" name="id25">3.4 Virtual Host Installation</a></li>
327     <li><a class="reference" href="#configuration-files" id="id26" name="id26">3.5 Configuration Files</a></li>
328 g2boojum 1.1 </ul>
329     </li>
330 g2boojum 1.6 <li><a class="reference" href="#application-permissions" id="id27" name="id27">4. Application Permissions</a></li>
331 g2boojum 1.1 </ul>
332     </li>
333 g2boojum 1.6 <li><a class="reference" href="#backwards-compatibility" id="id28" name="id28">Backwards Compatibility</a></li>
334     <li><a class="reference" href="#references" id="id29" name="id29">References</a></li>
335     <li><a class="reference" href="#copyright" id="id30" name="id30">Copyright</a></li>
336 g2boojum 1.1 </ul>
337     </div>
338 g2boojum 1.6 <div class="section">
339     <h1><a class="toc-backref" href="#id7" id="status" name="status">Status</a></h1>
340     <p>As of 2006-09-03 the webapp eclass has existed for some time.</p>
341     </div>
342     <div class="section">
343     <h1><a class="toc-backref" href="#id8" id="credits" name="credits">Credits</a></h1>
344 g2boojum 1.1 <p>Based on comments posted to gentoo-dev mailing list <a class="footnote-reference" href="#webapppost1" id="id1" name="id1">[1]</a>
345     <a class="footnote-reference" href="#webapppost2" id="id2" name="id2">[2]</a> <a class="footnote-reference" href="#webapppost3" id="id3" name="id3">[3]</a> by:</p>
346     <blockquote>
347 g2boojum 1.2 Stuart Herbert &lt;stuart at gentoo.org&gt;, Max Kalika &lt;max at gentoo.org&gt;,
348     Robin H.Johnson &lt;robbat2 at gentoo.org&gt; and others</blockquote>
349 g2boojum 1.1 </div>
350 g2boojum 1.6 <div class="section">
351     <h1><a class="toc-backref" href="#id9" id="definitions" name="definitions">Definitions</a></h1>
352 g2boojum 1.1 <blockquote>
353 g2boojum 1.6 <dl class="docutils">
354 g2boojum 1.1 <dt><em>Web Application</em></dt>
355     <dd>an application that requires a web server to function and interacts with
356     the user via a browser</dd>
357     <dt><em>Web Application Instance</em></dt>
358     <dd>An apparent install of the Web Application that is served up via the
359     webserver. There may be any number of instances per Web Application.
360     This is a major use for web applications. Our Gentoo Zope setup
361     already provides instances and can be used for some concepts on this
362     matter.</dd>
363     <dt><em>Web Application Setup Program</em></dt>
364     <dd>A script similar in function to zope-config that sets up instances.</dd>
365     <dt><em>Document Root</em></dt>
366     <dd>a location in the file system that forms the main document tree visible from
367     the web</dd>
368     </dl>
369     </blockquote>
370     </div>
371 g2boojum 1.6 <div class="section">
372     <h1><a class="toc-backref" href="#id10" id="conventions" name="conventions">Conventions</a></h1>
373 g2boojum 1.1 <blockquote>
374     <p>When describing the location of a directory in the file system it
375     wil be shown <em>with</em> a trailing slash, eg:</p>
376     <pre class="literal-block">
377     /foo/bar/
378     </pre>
379     <p>When describing the location of a specific file (irrespective of any
380     file extention) it will shown <em>with out</em> a trailing slash, eg:</p>
381     <pre class="literal-block">
382     /foo/blah
383     </pre>
384     </blockquote>
385     </div>
386 g2boojum 1.6 <div class="section">
387     <h1><a class="toc-backref" href="#id11" id="abstract" name="abstract">Abstract</a></h1>
388 g2boojum 1.1 <p>To define where and how web based applications should be installed by Gentoo.</p>
389     </div>
390 g2boojum 1.6 <div class="section">
391     <h1><a class="toc-backref" href="#id12" id="motivation" name="motivation">Motivation</a></h1>
392 g2boojum 1.1 <p>Currently there is no standard defined regarding the installation of web
393     based applicaitons in Gentoo. This leads to ebuild authors creating a
394     variety of methods to determine:</p>
395     <blockquote>
396     <ul class="simple">
397     <li>where the application should be installed</li>
398     <li>what user and permissions the application should be given</li>
399     <li>where any configuration files related to the application should be
400     installed.</li>
401     </ul>
402     </blockquote>
403     <p>Due to a lack of standard install method configuration files are at
404     risk of being overwritten during upgrade, potentially causing system
405     administrators down tine as they have to reconfigure web applications
406     after an upgrade.</p>
407     </div>
408 g2boojum 1.6 <div class="section">
409     <h1><a class="toc-backref" href="#id13" id="rationale" name="rationale">Rationale</a></h1>
410 g2boojum 1.1 <p>A discussion on the gentoo-dev mailing list <a class="footnote-reference" href="#webapppost1" id="id4" name="id4">[1]</a> raised the
411     following points regarding how Gentoo handles the installation of web based
412     applications:</p>
413     <blockquote>
414     <ol class="arabic">
415     <li><p class="first">Gentoo installed web applications (eg: horde, phpbb, cacti,
416     phpmysql) should not be installed in the Document Root of a web server.</p>
417     </li>
418     <li><p class="first">Web applications should not have their configuration files installed
419     under the Document Root of a web server.</p>
420     <blockquote>
421     <ol class="lowerroman simple">
422 g2boojum 1.2 <li>Web Application must be slotted by their full version numbers to
423 g2boojum 1.1 further avoid downtime when true configuration changes are required.</li>
424     </ol>
425     </blockquote>
426     </li>
427     <li><p class="first">Web applications should not be owned by the same user as the web server.</p>
428     </li>
429     <li><p class="first">It should be easily possible to have multiple instances of a web
430     application without any duplication of source files.</p>
431     </li>
432     <li><p class="first">It should be immediately apparent how to control instances of a web
433     application.</p>
434     </li>
435     </ol>
436     </blockquote>
437     </div>
438 g2boojum 1.6 <div class="section">
439     <h1><a class="toc-backref" href="#id14" id="implementation" name="implementation">Implementation</a></h1>
440 g2boojum 1.2 <p>Max Kalika &lt;max at gentoo.org&gt; stated that he has a preliminary eclass that
441 g2boojum 1.1 implements a good deal of this GLEP.</p>
442 g2boojum 1.2 <p>Stuart Herbert &lt;stuart at gentoo.org&gt; has committed:</p>
443 g2boojum 1.1 <pre class="literal-block">
444     webapp-apache.eclass
445     </pre>
446     <p>to CVS, this is a stop-gap measure whilst this GLEP is being finalised.</p>
447 g2boojum 1.6 <div class="section">
448     <h2><a class="toc-backref" href="#id15" id="web-server" name="web-server">1. Web Server</a></h2>
449     <p>A common default web server should be selected. Selection of a default web
450 g2boojum 1.2 server will help to reduce the number of bugs that are reported.</p>
451 g2boojum 1.6 <p>Given the popularity of the Apache web server it is suggested that Apache be
452 g2boojum 1.2 selected as the Gentoo default web server.</p>
453     <p>The Virtual Host Configuration tool (see below) will transparently support
454 g2boojum 1.6 different web servers, thus enabling web applications to be installed on a
455 g2boojum 1.2 Gentoo system irrespective of the installed web server.</p>
456 g2boojum 1.6 <div class="section">
457     <h3><a class="toc-backref" href="#id16" id="default-document-root" name="default-document-root">1.1 Default Document Root</a></h3>
458 g2boojum 1.2 <p>The current default Document Root for Gentoo is /home/httpd/, this is
459     unsuitable for a couple of reasons:</p>
460     <blockquote>
461     <ul class="simple">
462     <li>/home/ may be exported via nfs to numerous other hosts, it is not
463     acceptable to share publically accessible files with numerous hosts.</li>
464     <li>there is a potential (all be it small) for a user name clash</li>
465     </ul>
466     </blockquote>
467 g2boojum 1.1 <p>To ensure the greatest flexibility when installing applications the following
468     <em>Document Root</em> locations are to be used:</p>
469     <blockquote>
470     <ul>
471     <li><p class="first">For single host installations:</p>
472     <pre class="literal-block">
473 g2boojum 1.2 /var/www/localhost/
474 g2boojum 1.1 </pre>
475     </li>
476 g2boojum 1.2 <li><p class="first">For multiple virtual host installations:</p>
477 g2boojum 1.1 <pre class="literal-block">
478 g2boojum 1.2 /var/www/&lt;fully qualified domain name&gt;/
479    
480 g2boojum 1.1 eg:
481 g2boojum 1.2 /var/www/www.gentoo.org/
482 g2boojum 1.1 </pre>
483     </li>
484     </ul>
485     </blockquote>
486 g2boojum 1.2 <p>Additionally the chosen location ( /var/www/ ) appears to be becoming a defacto
487     standard for Linux distributions.</p>
488 g2boojum 1.1 </div>
489 g2boojum 1.6 <div class="section">
490     <h3><a class="toc-backref" href="#id17" id="apache-2" name="apache-2">1.2 Apache 2</a></h3>
491 g2boojum 1.2 <p>All web application .ebuilds will honour any USE flags that are intended to
492 g2boojum 1.1 add support for Apache 2 as well as supporting Apache 1 installations.</p>
493     </div>
494     </div>
495 g2boojum 1.6 <div class="section">
496     <h2><a class="toc-backref" href="#id18" id="application-installation" name="application-installation">2. Application Installation</a></h2>
497 g2boojum 1.2 <p>The current accepted standard Document Root in Gentoo is /home/httpd. The
498     discussion suggest that this is not the best location to install web based
499     applications.</p>
500 g2boojum 1.6 <div class="section">
501     <h3><a class="toc-backref" href="#id19" id="application-slots" name="application-slots">2.1 Application SLOTs</a></h3>
502 g2boojum 1.2 <p>All ebuilds are to set the SLOT variable as follows:</p>
503 g2boojum 1.1 <pre class="literal-block">
504 g2boojum 1.2 SLOT=&quot;${PV}&quot;
505 g2boojum 1.1 </pre>
506 g2boojum 1.2 <p>Setting the SLOT variable as shown will enable different versions of the same
507     web application to be served concurrently by one server.</p>
508 g2boojum 1.1 </div>
509 g2boojum 1.6 <div class="section">
510     <h3><a class="toc-backref" href="#id20" id="installation-paths" name="installation-paths">2.2 Installation Paths</a></h3>
511 g2boojum 1.1 <p>Web applications should be installed outside of the Document Root using the following
512     defaults:</p>
513     <blockquote>
514     <ul>
515     <li><p class="first">for files to be served to clients:</p>
516     <pre class="literal-block">
517 g2boojum 1.2 /usr/share/webapps/${PF}/htdocs/
518 g2boojum 1.1
519 g2boojum 1.2 /usr/share/webapps/${PF}/cgi-bin/
520 g2boojum 1.1 </pre>
521     </li>
522 g2boojum 1.2 <li><p class="first">install <em>site default</em> configuration files in:</p>
523 g2boojum 1.1 <pre class="literal-block">
524     /etc/webapps/${PF}/
525     </pre>
526     </li>
527     <li><p class="first">for documentation files (not served to clients):</p>
528     <pre class="literal-block">
529     /usr/share/doc/${PF}/
530     </pre>
531     </li>
532     </ul>
533     </blockquote>
534 g2boojum 1.2 </div>
535     </div>
536 g2boojum 1.6 <div class="section">
537     <h2><a class="toc-backref" href="#id21" id="virtual-host-support" name="virtual-host-support">3. Virtual Host Support</a></h2>
538 g2boojum 1.2 <p>The ability to easily configure and administer multiple virtual hosts is a
539     must.</p>
540 g2boojum 1.6 <div class="section">
541     <h3><a class="toc-backref" href="#id22" id="new-vhost-use-flag" name="new-vhost-use-flag">3.1 New &quot;vhost&quot; USE Flag</a></h3>
542 g2boojum 1.2 <p>To enable support for multiple virtual host installations a new USE flag is
543     to be added to Portage. The use flag will be:</p>
544     <pre class="literal-block">
545     vhost
546     </pre>
547     <p>When <em>vhost</em> is _set_ the installation location and configuration for the web
548     application will be effected, see below for more details.</p>
549     </div>
550 g2boojum 1.6 <div class="section">
551     <h3><a class="toc-backref" href="#id23" id="vhost-configuration-tool" name="vhost-configuration-tool">3.2 VHost Configuration Tool</a></h3>
552 g2boojum 1.2 <p>To assist administration of multiple virtual hosts a &quot;VHost Configuration Tool&quot;
553     needs to be developed and implemented. Initial discussion regarding the VHost
554     Config tool and proposed usage can be found at <a class="reference" href="http://article.gmane.org/gmane.linux.gentoo.devel/10874">http://article.gmane.org/gmane.linux.gentoo.devel/10874</a>.</p>
555 robbat2 1.3 <p>It's the job of the VHost Config toolset to make a local instance of the web
556 g2boojum 1.2 application run under a specific web server.</p>
557 robbat2 1.3 <p>The VHost Configuration Utility will need to be a seperate package, maintained by Gentoo.</p>
558     <p>Web Server .ebuilds will require the VHost Config tool as a dependency (DEPEND).</p>
559 g2boojum 1.2 <p><a class="reference" href="http://bugs.gentoo.org/show_bug.cgi?id=26293">Bug #26293</a> <a class="footnote-reference" href="#id5" id="id6" name="id6">[4]</a> will be used to track the initial progress of the VHost
560     Configuration Tool.</p>
561     <p>The vhost-config must do three main things:</p>
562     <blockquote>
563     <ul class="simple">
564     <li>creates directories (copies a skeleton directory for the most part).</li>
565     <li>create web server vhost config files.</li>
566     <li>HUP web server so it reads in the new config without stopping.</li>
567     </ul>
568     </blockquote>
569     <p>Initially the VHost Config tool should provide support for the Apache web
570     server. As the tool matures support for other web servers can be added.</p>
571     </div>
572 g2boojum 1.6 <div class="section">
573     <h3><a class="toc-backref" href="#id24" id="single-host-installation" name="single-host-installation">3.3 Single Host Installation</a></h3>
574 g2boojum 1.1 <p>For single host installations the .ebuild will make the required
575     configurations changes and symlinks using the VHost Config tool to ensure
576     that the web application is available to be served from:</p>
577     <pre class="literal-block">
578 g2boojum 1.2 /var/www/localhost/htdocs/${PF}/
579 g2boojum 1.1 </pre>
580 g2boojum 1.2 <p>In this case it may be feasible for the VHost Config tool to simply symlink the
581     directories from /usr/share/webapps/${PF}/ as is appropriate.</p>
582 g2boojum 1.1 </div>
583 g2boojum 1.6 <div class="section">
584     <h3><a class="toc-backref" href="#id25" id="virtual-host-installation" name="virtual-host-installation">3.4 Virtual Host Installation</a></h3>
585 g2boojum 1.1 <p>For installations that support multiple virtual hosts the .ebuild will
586     install the web application into the default location and then leave configuration
587     to the user through the VHost Config tool.</p>
588 g2boojum 1.2 <p>In this case the web application files will be copied from
589     /usr/share/webapps/${PF}/ to /var/www/&lt;FQDN&gt;/ by the VHost Config tool.</p>
590 g2boojum 1.1 </div>
591 g2boojum 1.6 <div class="section">
592     <h3><a class="toc-backref" href="#id26" id="configuration-files" name="configuration-files">3.5 Configuration Files</a></h3>
593 robbat2 1.3 <p>As stated above web application <em>site default</em> configuration files are to be
594 g2boojum 1.2 installed into:</p>
595 g2boojum 1.1 <pre class="literal-block">
596     /etc/webapps/${PF}/
597     </pre>
598 g2boojum 1.2 <p>The files in this directory are then copied (not symlinked!) by the VHost
599     Config tool to the Document Root for each instance of the app that is installed.</p>
600 robbat2 1.3 <p>This will require the VHost Config toolset to emulate Portage's CONFIG_PROTECT
601 g2boojum 1.2 behaviour for the web applications.</p>
602 g2boojum 1.1 </div>
603     </div>
604 g2boojum 1.6 <div class="section">
605     <h2><a class="toc-backref" href="#id27" id="application-permissions" name="application-permissions">4. Application Permissions</a></h2>
606 g2boojum 1.1 <p>Installing web applications and giving the web server ownership of the files
607     is a security risk. This can possibly lead to application configuration
608     files being accessed by unwanted third parties.</p>
609     <p>All web applications should be owned by <em>root</em> unless the application
610     absolutely requires write access to its installation directories at execution
611     time.</p>
612     </div>
613     </div>
614 g2boojum 1.6 <div class="section">
615     <h1><a class="toc-backref" href="#id28" id="backwards-compatibility" name="backwards-compatibility">Backwards Compatibility</a></h1>
616 g2boojum 1.1 <p>There may be some issues regarding compatibility with existing installs of
617     web applications. This is particularly true if the default Document Root is
618     moved from what is accepted as the current standard (/home/httpd).</p>
619 g2boojum 1.6 <dl class="docutils">
620 g2boojum 1.1 <dt>The main issues are:</dt>
621     <dd><ul class="first last simple">
622     <li>transition of existing configuration files to the
623     /etc/webapps/${PF}/ directory.</li>
624     <li>modification/reconfiguration of applications so that they
625     are aware of the location of configuration files.</li>
626 g2boojum 1.2 <li>creating the VHost Config toolset to enable installation and
627     configuration of web applications irrespective of web server.</li>
628 g2boojum 1.1 </ul>
629     </dd>
630     </dl>
631     </div>
632 g2boojum 1.6 <div class="section">
633     <h1><a class="toc-backref" href="#id29" id="references" name="references">References</a></h1>
634     <table class="docutils footnote" frame="void" id="webapppost1" rules="none">
635 g2boojum 1.1 <colgroup><col class="label" /><col /></colgroup>
636     <tbody valign="top">
637     <tr><td class="label"><a name="webapppost1">[1]</a></td><td><em>(<a class="fn-backref" href="#id1">1</a>, <a class="fn-backref" href="#id4">2</a>)</em> <a class="reference" href="http://article.gmane.org/gmane.linux.gentoo.devel/10411">http://article.gmane.org/gmane.linux.gentoo.devel/10411</a></td></tr>
638     </tbody>
639     </table>
640 g2boojum 1.6 <table class="docutils footnote" frame="void" id="webapppost2" rules="none">
641 g2boojum 1.1 <colgroup><col class="label" /><col /></colgroup>
642     <tbody valign="top">
643     <tr><td class="label"><a class="fn-backref" href="#id2" name="webapppost2">[2]</a></td><td><a class="reference" href="http://news.gmane.org/onethread.php?group=gmane.linux.gentoo.devel&amp;root=%3C1059843010.5023.80.camel%40carbon.internal.lan%3E">http://news.gmane.org/onethread.php?group=gmane.linux.gentoo.devel&amp;root=%3C1059843010.5023.80.camel%40carbon.internal.lan%3E</a></td></tr>
644     </tbody>
645     </table>
646 g2boojum 1.6 <table class="docutils footnote" frame="void" id="webapppost3" rules="none">
647 g2boojum 1.1 <colgroup><col class="label" /><col /></colgroup>
648     <tbody valign="top">
649     <tr><td class="label"><a class="fn-backref" href="#id3" name="webapppost3">[3]</a></td><td><a class="reference" href="http://news.gmane.org/onethread.php?group=gmane.linux.gentoo.devel&amp;root=%3C86960000.1060038977%40valkyrie.lsit.ucsb.edu%3E">http://news.gmane.org/onethread.php?group=gmane.linux.gentoo.devel&amp;root=%3C86960000.1060038977%40valkyrie.lsit.ucsb.edu%3E</a></td></tr>
650     </tbody>
651     </table>
652 g2boojum 1.6 <table class="docutils footnote" frame="void" id="id5" rules="none">
653 g2boojum 1.2 <colgroup><col class="label" /><col /></colgroup>
654     <tbody valign="top">
655     <tr><td class="label"><a class="fn-backref" href="#id6" name="id5">[4]</a></td><td><a class="reference" href="http://bugs.gentoo.org/show_bug.cgi?id=26293">http://bugs.gentoo.org/show_bug.cgi?id=26293</a></td></tr>
656     </tbody>
657     </table>
658 g2boojum 1.1 </div>
659 g2boojum 1.6 <div class="section">
660     <h1><a class="toc-backref" href="#id30" id="copyright" name="copyright">Copyright</a></h1>
661 g2boojum 1.1 <p>This document has been placed in the public domain.</p>
662     </div>
663 g2boojum 1.6
664 g2boojum 1.1 </div>
665     <div class="footer">
666 g2boojum 1.6 <hr class="footer" />
667 g2boojum 1.1 <a class="reference" href="glep-0011.txt">View document source</a>.
668 g2boojum 1.6 Generated on: 2006-10-10 20:23 UTC.
669 g2boojum 1.1 Generated by <a class="reference" href="http://docutils.sourceforge.net/">Docutils</a> from <a class="reference" href="http://docutils.sourceforge.net/rst.html">reStructuredText</a> source.
670 g2boojum 1.6
671 g2boojum 1.1 </div>
672     </body>
673     </html>

  ViewVC Help
Powered by ViewVC 1.1.20