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

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

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

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

Legend:
Removed from v.1.3  
changed lines
  Added in v.1.7

  ViewVC Help
Powered by ViewVC 1.1.20