/[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.5 Revision 1.8
1<?xml version="1.0" encoding="utf-8" ?> 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"> 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"> 3<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
4<!-- 4
5This HTML is auto-generated. DO NOT EDIT THIS FILE! If you are writing a new
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!
8-->
9<head> 5<head>
10 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 6 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
11 <meta name="generator" content="Docutils 0.3.0: http://docutils.sourceforge.net/" /> 7 <meta name="generator" content="Docutils 0.4: http://docutils.sourceforge.net/" />
12 <title>GLEP 11 -- Web Application Installation</title> 8 <title>GLEP 11 -- Web Application Installation</title>
13 <link rel="stylesheet" href="tools/glep.css" type="text/css" /> 9 <link rel="stylesheet" href="tools/glep.css" type="text/css" />
14</head> 10</head>
15<body bgcolor="white"> 11<body bgcolor="white">
16<table class="navigation" cellpadding="0" cellspacing="0" 12<table class="navigation" cellpadding="0" cellspacing="0"
22<td class="textlinks" align="left"> 18<td class="textlinks" align="left">
23[<b><a href="http://www.gentoo.org/">Gentoo Linux Home</a></b>] 19[<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>] 20[<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>] 21[<b><a href="http://www.gentoo.org/proj/en/glep/glep-0011.txt">GLEP Source</a></b>]
26</td></tr></table> 22</td></tr></table>
27<div class="document">
28<table class="rfc2822 field-list" frame="void" rules="none"> 23<table class="rfc2822 docutils field-list" frame="void" rules="none">
29<col class="field-name" /> 24<col class="field-name" />
30<col class="field-body" /> 25<col class="field-body" />
31<tbody valign="top"> 26<tbody valign="top">
32<tr class="field"><th class="field-name">GLEP:</th><td class="field-body">11</td> 27<tr class="field"><th class="field-name">GLEP:</th><td class="field-body">11</td>
33</tr> 28</tr>
34<tr class="field"><th class="field-name">Title:</th><td class="field-body">Web Application Installation</td> 29<tr class="field"><th class="field-name">Title:</th><td class="field-body">Web Application Installation</td>
35</tr> 30</tr>
36<tr class="field"><th class="field-name">Version:</th><td class="field-body">1.4</td> 31<tr class="field"><th class="field-name">Version:</th><td class="field-body">1.6</td>
37</tr> 32</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 13:45:38</a></td> 33<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> 34</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> 35<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> 36</tr>
42<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> 37<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>
43</tr> 38</tr>
44<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> 39<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>
45</tr> 40</tr>
46<tr class="field"><th class="field-name">Status:</th><td class="field-body">Accepted</td> 41<tr class="field"><th class="field-name">Status:</th><td class="field-body">Final</td>
47</tr> 42</tr>
48<tr class="field"><th class="field-name">Type:</th><td class="field-body">Standards Track</td> 43<tr class="field"><th class="field-name">Type:</th><td class="field-body">Standards Track</td>
49</tr> 44</tr>
50<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> 45<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>
51</tr> 46</tr>
52<tr class="field"><th class="field-name">Created:</th><td class="field-body">02-August-2003</td> 47<tr class="field"><th class="field-name">Created:</th><td class="field-body">02-August-2003</td>
53</tr> 48</tr>
54<tr class="field"><th class="field-name">Post-History:</th><td class="field-body">07-Aug-2003, 12-Aug-2003, 13-Aug-2003</td> 49<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>
55</tr> 50</tr>
56</tbody> 51</tbody>
57</table> 52</table>
58<hr /> 53<hr />
59<div class="contents topic" id="contents"> 54<div class="contents topic">
60<p class="topic-title"><a name="contents">Contents</a></p> 55<p class="topic-title first"><a id="contents" name="contents">Contents</a></p>
61<ul class="simple"> 56<ul class="simple">
57<li><a class="reference" href="#status" id="id7" name="id7">Status</a></li>
62<li><a class="reference" href="#credits" id="id7" name="id7">Credits</a></li> 58<li><a class="reference" href="#credits" id="id8" name="id8">Credits</a></li>
63<li><a class="reference" href="#definitions" id="id8" name="id8">Definitions</a></li> 59<li><a class="reference" href="#definitions" id="id9" name="id9">Definitions</a></li>
64<li><a class="reference" href="#conventions" id="id9" name="id9">Conventions</a></li> 60<li><a class="reference" href="#conventions" id="id10" name="id10">Conventions</a></li>
65<li><a class="reference" href="#abstract" id="id10" name="id10">Abstract</a></li> 61<li><a class="reference" href="#abstract" id="id11" name="id11">Abstract</a></li>
66<li><a class="reference" href="#motivation" id="id11" name="id11">Motivation</a></li> 62<li><a class="reference" href="#motivation" id="id12" name="id12">Motivation</a></li>
67<li><a class="reference" href="#rationale" id="id12" name="id12">Rationale</a></li> 63<li><a class="reference" href="#rationale" id="id13" name="id13">Rationale</a></li>
68<li><a class="reference" href="#implementation" id="id13" name="id13">Implementation</a><ul> 64<li><a class="reference" href="#implementation" id="id14" name="id14">Implementation</a><ul>
69<li><a class="reference" href="#web-server" id="id14" name="id14">1. Web Server</a><ul> 65<li><a class="reference" href="#web-server" id="id15" name="id15">1. Web Server</a><ul>
70<li><a class="reference" href="#default-document-root" id="id15" name="id15">1.1 Default Document Root</a></li> 66<li><a class="reference" href="#default-document-root" id="id16" name="id16">1.1 Default Document Root</a></li>
71<li><a class="reference" href="#apache-2" id="id16" name="id16">1.2 Apache 2</a></li> 67<li><a class="reference" href="#apache-2" id="id17" name="id17">1.2 Apache 2</a></li>
72</ul>
73</li> 68</ul>
69</li>
74<li><a class="reference" href="#application-installation" id="id17" name="id17">2. Application Installation</a><ul> 70<li><a class="reference" href="#application-installation" id="id18" name="id18">2. Application Installation</a><ul>
75<li><a class="reference" href="#application-slots" id="id18" name="id18">2.1 Application SLOTs</a></li> 71<li><a class="reference" href="#application-slots" id="id19" name="id19">2.1 Application SLOTs</a></li>
76<li><a class="reference" href="#installation-paths" id="id19" name="id19">2.2 Installation Paths</a></li> 72<li><a class="reference" href="#installation-paths" id="id20" name="id20">2.2 Installation Paths</a></li>
77</ul>
78</li> 73</ul>
74</li>
79<li><a class="reference" href="#virtual-host-support" id="id20" name="id20">3. Virtual Host Support</a><ul> 75<li><a class="reference" href="#virtual-host-support" id="id21" name="id21">3. Virtual Host Support</a><ul>
80<li><a class="reference" href="#new-vhost-use-flag" id="id21" name="id21">3.1 New &quot;vhost&quot; USE Flag</a></li> 76<li><a class="reference" href="#new-vhost-use-flag" id="id22" name="id22">3.1 New &quot;vhost&quot; USE Flag</a></li>
81<li><a class="reference" href="#vhost-configuration-tool" id="id22" name="id22">3.2 VHost Configuration Tool</a></li> 77<li><a class="reference" href="#vhost-configuration-tool" id="id23" name="id23">3.2 VHost Configuration Tool</a></li>
82<li><a class="reference" href="#single-host-installation" id="id23" name="id23">3.3 Single Host Installation</a></li> 78<li><a class="reference" href="#single-host-installation" id="id24" name="id24">3.3 Single Host Installation</a></li>
83<li><a class="reference" href="#virtual-host-installation" id="id24" name="id24">3.4 Virtual Host Installation</a></li> 79<li><a class="reference" href="#virtual-host-installation" id="id25" name="id25">3.4 Virtual Host Installation</a></li>
84<li><a class="reference" href="#configuration-files" id="id25" name="id25">3.5 Configuration Files</a></li> 80<li><a class="reference" href="#configuration-files" id="id26" name="id26">3.5 Configuration Files</a></li>
85</ul>
86</li> 81</ul>
82</li>
87<li><a class="reference" href="#application-permissions" id="id26" name="id26">4. Application Permissions</a></li> 83<li><a class="reference" href="#application-permissions" id="id27" name="id27">4. Application Permissions</a></li>
88</ul>
89</li> 84</ul>
85</li>
90<li><a class="reference" href="#backwards-compatibility" id="id27" name="id27">Backwards Compatibility</a></li> 86<li><a class="reference" href="#backwards-compatibility" id="id28" name="id28">Backwards Compatibility</a></li>
91<li><a class="reference" href="#references" id="id28" name="id28">References</a></li> 87<li><a class="reference" href="#references" id="id29" name="id29">References</a></li>
92<li><a class="reference" href="#copyright" id="id29" name="id29">Copyright</a></li> 88<li><a class="reference" href="#copyright" id="id30" name="id30">Copyright</a></li>
93</ul> 89</ul>
94</div> 90</div>
95<div class="section" id="credits"> 91<div class="section">
92<h1><a class="toc-backref" href="#id7" id="status" name="status">Status</a></h1>
93<p>As of 2006-09-03 the webapp eclass has existed for some time.</p>
94</div>
95<div class="section">
96<h1><a class="toc-backref" href="#id7" name="credits">Credits</a></h1> 96<h1><a class="toc-backref" href="#id8" id="credits" name="credits">Credits</a></h1>
97<p>Based on comments posted to gentoo-dev mailing list <a class="footnote-reference" href="#webapppost1" id="id1" name="id1">[1]</a> 97<p>Based on comments posted to gentoo-dev mailing list <a class="footnote-reference" href="#webapppost1" id="id1" name="id1">[1]</a>
98<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> 98<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>
99<blockquote> 99<blockquote>
100Stuart Herbert &lt;stuart at gentoo.org&gt;, Max Kalika &lt;max at gentoo.org&gt;, 100Stuart Herbert &lt;stuart at gentoo.org&gt;, Max Kalika &lt;max at gentoo.org&gt;,
101Robin H.Johnson &lt;robbat2 at gentoo.org&gt; and others</blockquote> 101Robin H.Johnson &lt;robbat2 at gentoo.org&gt; and others</blockquote>
102</div> 102</div>
103<div class="section" id="definitions"> 103<div class="section">
104<h1><a class="toc-backref" href="#id8" name="definitions">Definitions</a></h1> 104<h1><a class="toc-backref" href="#id9" id="definitions" name="definitions">Definitions</a></h1>
105<blockquote> 105<blockquote>
106<dl> 106<dl class="docutils">
107<dt><em>Web Application</em></dt> 107<dt><em>Web Application</em></dt>
108<dd>an application that requires a web server to function and interacts with 108<dd>an application that requires a web server to function and interacts with
109the user via a browser</dd> 109the user via a browser</dd>
110<dt><em>Web Application Instance</em></dt> 110<dt><em>Web Application Instance</em></dt>
111<dd>An apparent install of the Web Application that is served up via the 111<dd>An apparent install of the Web Application that is served up via the
119<dd>a location in the file system that forms the main document tree visible from 119<dd>a location in the file system that forms the main document tree visible from
120the web</dd> 120the web</dd>
121</dl> 121</dl>
122</blockquote> 122</blockquote>
123</div> 123</div>
124<div class="section" id="conventions"> 124<div class="section">
125<h1><a class="toc-backref" href="#id9" name="conventions">Conventions</a></h1> 125<h1><a class="toc-backref" href="#id10" id="conventions" name="conventions">Conventions</a></h1>
126<blockquote> 126<blockquote>
127<p>When describing the location of a directory in the file system it 127<p>When describing the location of a directory in the file system it
128wil be shown <em>with</em> a trailing slash, eg:</p> 128wil be shown <em>with</em> a trailing slash, eg:</p>
129<pre class="literal-block"> 129<pre class="literal-block">
130/foo/bar/ 130/foo/bar/
134<pre class="literal-block"> 134<pre class="literal-block">
135/foo/blah 135/foo/blah
136</pre> 136</pre>
137</blockquote> 137</blockquote>
138</div> 138</div>
139<div class="section" id="abstract"> 139<div class="section">
140<h1><a class="toc-backref" href="#id10" name="abstract">Abstract</a></h1> 140<h1><a class="toc-backref" href="#id11" id="abstract" name="abstract">Abstract</a></h1>
141<p>To define where and how web based applications should be installed by Gentoo.</p> 141<p>To define where and how web based applications should be installed by Gentoo.</p>
142</div> 142</div>
143<div class="section" id="motivation"> 143<div class="section">
144<h1><a class="toc-backref" href="#id11" name="motivation">Motivation</a></h1> 144<h1><a class="toc-backref" href="#id12" id="motivation" name="motivation">Motivation</a></h1>
145<p>Currently there is no standard defined regarding the installation of web 145<p>Currently there is no standard defined regarding the installation of web
146based applicaitons in Gentoo. This leads to ebuild authors creating a 146based applicaitons in Gentoo. This leads to ebuild authors creating a
147variety of methods to determine:</p> 147variety of methods to determine:</p>
148<blockquote> 148<blockquote>
149<ul class="simple"> 149<ul class="simple">
156<p>Due to a lack of standard install method configuration files are at 156<p>Due to a lack of standard install method configuration files are at
157risk of being overwritten during upgrade, potentially causing system 157risk of being overwritten during upgrade, potentially causing system
158administrators down tine as they have to reconfigure web applications 158administrators down tine as they have to reconfigure web applications
159after an upgrade.</p> 159after an upgrade.</p>
160</div> 160</div>
161<div class="section" id="rationale"> 161<div class="section">
162<h1><a class="toc-backref" href="#id12" name="rationale">Rationale</a></h1> 162<h1><a class="toc-backref" href="#id13" id="rationale" name="rationale">Rationale</a></h1>
163<p>A discussion on the gentoo-dev mailing list <a class="footnote-reference" href="#webapppost1" id="id4" name="id4">[1]</a> raised the 163<p>A discussion on the gentoo-dev mailing list <a class="footnote-reference" href="#webapppost1" id="id4" name="id4">[1]</a> raised the
164following points regarding how Gentoo handles the installation of web based 164following points regarding how Gentoo handles the installation of web based
165applications:</p> 165applications:</p>
166<blockquote> 166<blockquote>
167<ol class="arabic"> 167<ol class="arabic">
186application.</p> 186application.</p>
187</li> 187</li>
188</ol> 188</ol>
189</blockquote> 189</blockquote>
190</div> 190</div>
191<div class="section" id="implementation"> 191<div class="section">
192<h1><a class="toc-backref" href="#id13" name="implementation">Implementation</a></h1> 192<h1><a class="toc-backref" href="#id14" id="implementation" name="implementation">Implementation</a></h1>
193<p>Max Kalika &lt;max at gentoo.org&gt; stated that he has a preliminary eclass that 193<p>Max Kalika &lt;max at gentoo.org&gt; stated that he has a preliminary eclass that
194implements a good deal of this GLEP.</p> 194implements a good deal of this GLEP.</p>
195<p>Stuart Herbert &lt;stuart at gentoo.org&gt; has committed:</p> 195<p>Stuart Herbert &lt;stuart at gentoo.org&gt; has committed:</p>
196<pre class="literal-block"> 196<pre class="literal-block">
197webapp-apache.eclass 197webapp-apache.eclass
198</pre> 198</pre>
199<p>to CVS, this is a stop-gap measure whilst this GLEP is being finalised.</p> 199<p>to CVS, this is a stop-gap measure whilst this GLEP is being finalised.</p>
200<div class="section" id="web-server"> 200<div class="section">
201<h2><a class="toc-backref" href="#id14" name="web-server">1. Web Server</a></h2> 201<h2><a class="toc-backref" href="#id15" id="web-server" name="web-server">1. Web Server</a></h2>
202<p>A common default web server should be selected. Selection of a default web 202<p>A common default web server should be selected. Selection of a default web
203server will help to reduce the number of bugs that are reported.</p> 203server will help to reduce the number of bugs that are reported.</p>
204<p>Given the popularity of the Apache web server it is suggested that Apache be 204<p>Given the popularity of the Apache web server it is suggested that Apache be
205selected as the Gentoo default web server.</p> 205selected as the Gentoo default web server.</p>
206<p>The Virtual Host Configuration tool (see below) will transparently support 206<p>The Virtual Host Configuration tool (see below) will transparently support
207different web servers, thus enabling web applications to be installed on a 207different web servers, thus enabling web applications to be installed on a
208Gentoo system irrespective of the installed web server.</p> 208Gentoo system irrespective of the installed web server.</p>
209<div class="section" id="default-document-root"> 209<div class="section">
210<h3><a class="toc-backref" href="#id15" name="default-document-root">1.1 Default Document Root</a></h3> 210<h3><a class="toc-backref" href="#id16" id="default-document-root" name="default-document-root">1.1 Default Document Root</a></h3>
211<p>The current default Document Root for Gentoo is /home/httpd/, this is 211<p>The current default Document Root for Gentoo is /home/httpd/, this is
212unsuitable for a couple of reasons:</p> 212unsuitable for a couple of reasons:</p>
213<blockquote> 213<blockquote>
214<ul class="simple"> 214<ul class="simple">
215<li>/home/ may be exported via nfs to numerous other hosts, it is not 215<li>/home/ may be exported via nfs to numerous other hosts, it is not
237</ul> 237</ul>
238</blockquote> 238</blockquote>
239<p>Additionally the chosen location ( /var/www/ ) appears to be becoming a defacto 239<p>Additionally the chosen location ( /var/www/ ) appears to be becoming a defacto
240standard for Linux distributions.</p> 240standard for Linux distributions.</p>
241</div> 241</div>
242<div class="section" id="apache-2"> 242<div class="section">
243<h3><a class="toc-backref" href="#id16" name="apache-2">1.2 Apache 2</a></h3> 243<h3><a class="toc-backref" href="#id17" id="apache-2" name="apache-2">1.2 Apache 2</a></h3>
244<p>All web application .ebuilds will honour any USE flags that are intended to 244<p>All web application .ebuilds will honour any USE flags that are intended to
245add support for Apache 2 as well as supporting Apache 1 installations.</p> 245add support for Apache 2 as well as supporting Apache 1 installations.</p>
246</div> 246</div>
247</div> 247</div>
248<div class="section" id="application-installation"> 248<div class="section">
249<h2><a class="toc-backref" href="#id17" name="application-installation">2. Application Installation</a></h2> 249<h2><a class="toc-backref" href="#id18" id="application-installation" name="application-installation">2. Application Installation</a></h2>
250<p>The current accepted standard Document Root in Gentoo is /home/httpd. The 250<p>The current accepted standard Document Root in Gentoo is /home/httpd. The
251discussion suggest that this is not the best location to install web based 251discussion suggest that this is not the best location to install web based
252applications.</p> 252applications.</p>
253<div class="section" id="application-slots"> 253<div class="section">
254<h3><a class="toc-backref" href="#id18" name="application-slots">2.1 Application SLOTs</a></h3> 254<h3><a class="toc-backref" href="#id19" id="application-slots" name="application-slots">2.1 Application SLOTs</a></h3>
255<p>All ebuilds are to set the SLOT variable as follows:</p> 255<p>All ebuilds are to set the SLOT variable as follows:</p>
256<pre class="literal-block"> 256<pre class="literal-block">
257SLOT=&quot;${PV}&quot; 257SLOT=&quot;${PV}&quot;
258</pre> 258</pre>
259<p>Setting the SLOT variable as shown will enable different versions of the same 259<p>Setting the SLOT variable as shown will enable different versions of the same
260web application to be served concurrently by one server.</p> 260web application to be served concurrently by one server.</p>
261</div> 261</div>
262<div class="section" id="installation-paths"> 262<div class="section">
263<h3><a class="toc-backref" href="#id19" name="installation-paths">2.2 Installation Paths</a></h3> 263<h3><a class="toc-backref" href="#id20" id="installation-paths" name="installation-paths">2.2 Installation Paths</a></h3>
264<p>Web applications should be installed outside of the Document Root using the following 264<p>Web applications should be installed outside of the Document Root using the following
265defaults:</p> 265defaults:</p>
266<blockquote> 266<blockquote>
267<ul> 267<ul>
268<li><p class="first">for files to be served to clients:</p> 268<li><p class="first">for files to be served to clients:</p>
284</li> 284</li>
285</ul> 285</ul>
286</blockquote> 286</blockquote>
287</div> 287</div>
288</div> 288</div>
289<div class="section" id="virtual-host-support"> 289<div class="section">
290<h2><a class="toc-backref" href="#id20" name="virtual-host-support">3. Virtual Host Support</a></h2> 290<h2><a class="toc-backref" href="#id21" id="virtual-host-support" name="virtual-host-support">3. Virtual Host Support</a></h2>
291<p>The ability to easily configure and administer multiple virtual hosts is a 291<p>The ability to easily configure and administer multiple virtual hosts is a
292must.</p> 292must.</p>
293<div class="section" id="new-vhost-use-flag"> 293<div class="section">
294<h3><a class="toc-backref" href="#id21" name="new-vhost-use-flag">3.1 New &quot;vhost&quot; USE Flag</a></h3> 294<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>
295<p>To enable support for multiple virtual host installations a new USE flag is 295<p>To enable support for multiple virtual host installations a new USE flag is
296to be added to Portage. The use flag will be:</p> 296to be added to Portage. The use flag will be:</p>
297<pre class="literal-block"> 297<pre class="literal-block">
298vhost 298vhost
299</pre> 299</pre>
300<p>When <em>vhost</em> is _set_ the installation location and configuration for the web 300<p>When <em>vhost</em> is _set_ the installation location and configuration for the web
301application will be effected, see below for more details.</p> 301application will be effected, see below for more details.</p>
302</div> 302</div>
303<div class="section" id="vhost-configuration-tool"> 303<div class="section">
304<h3><a class="toc-backref" href="#id22" name="vhost-configuration-tool">3.2 VHost Configuration Tool</a></h3> 304<h3><a class="toc-backref" href="#id23" id="vhost-configuration-tool" name="vhost-configuration-tool">3.2 VHost Configuration Tool</a></h3>
305<p>To assist administration of multiple virtual hosts a &quot;VHost Configuration Tool&quot; 305<p>To assist administration of multiple virtual hosts a &quot;VHost Configuration Tool&quot;
306needs to be developed and implemented. Initial discussion regarding the VHost 306needs to be developed and implemented. Initial discussion regarding the VHost
307Config 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> 307Config 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>
308<p>It's the job of the VHost Config toolset to make a local instance of the web 308<p>It's the job of the VHost Config toolset to make a local instance of the web
309application run under a specific web server.</p> 309application run under a specific web server.</p>
320</ul> 320</ul>
321</blockquote> 321</blockquote>
322<p>Initially the VHost Config tool should provide support for the Apache web 322<p>Initially the VHost Config tool should provide support for the Apache web
323server. As the tool matures support for other web servers can be added.</p> 323server. As the tool matures support for other web servers can be added.</p>
324</div> 324</div>
325<div class="section" id="single-host-installation"> 325<div class="section">
326<h3><a class="toc-backref" href="#id23" name="single-host-installation">3.3 Single Host Installation</a></h3> 326<h3><a class="toc-backref" href="#id24" id="single-host-installation" name="single-host-installation">3.3 Single Host Installation</a></h3>
327<p>For single host installations the .ebuild will make the required 327<p>For single host installations the .ebuild will make the required
328configurations changes and symlinks using the VHost Config tool to ensure 328configurations changes and symlinks using the VHost Config tool to ensure
329that the web application is available to be served from:</p> 329that the web application is available to be served from:</p>
330<pre class="literal-block"> 330<pre class="literal-block">
331/var/www/localhost/htdocs/${PF}/ 331/var/www/localhost/htdocs/${PF}/
332</pre> 332</pre>
333<p>In this case it may be feasible for the VHost Config tool to simply symlink the 333<p>In this case it may be feasible for the VHost Config tool to simply symlink the
334directories from /usr/share/webapps/${PF}/ as is appropriate.</p> 334directories from /usr/share/webapps/${PF}/ as is appropriate.</p>
335</div> 335</div>
336<div class="section" id="virtual-host-installation"> 336<div class="section">
337<h3><a class="toc-backref" href="#id24" name="virtual-host-installation">3.4 Virtual Host Installation</a></h3> 337<h3><a class="toc-backref" href="#id25" id="virtual-host-installation" name="virtual-host-installation">3.4 Virtual Host Installation</a></h3>
338<p>For installations that support multiple virtual hosts the .ebuild will 338<p>For installations that support multiple virtual hosts the .ebuild will
339install the web application into the default location and then leave configuration 339install the web application into the default location and then leave configuration
340to the user through the VHost Config tool.</p> 340to the user through the VHost Config tool.</p>
341<p>In this case the web application files will be copied from 341<p>In this case the web application files will be copied from
342/usr/share/webapps/${PF}/ to /var/www/&lt;FQDN&gt;/ by the VHost Config tool.</p> 342/usr/share/webapps/${PF}/ to /var/www/&lt;FQDN&gt;/ by the VHost Config tool.</p>
343</div> 343</div>
344<div class="section" id="configuration-files"> 344<div class="section">
345<h3><a class="toc-backref" href="#id25" name="configuration-files">3.5 Configuration Files</a></h3> 345<h3><a class="toc-backref" href="#id26" id="configuration-files" name="configuration-files">3.5 Configuration Files</a></h3>
346<p>As stated above web application <em>site default</em> configuration files are to be 346<p>As stated above web application <em>site default</em> configuration files are to be
347installed into:</p> 347installed into:</p>
348<pre class="literal-block"> 348<pre class="literal-block">
349/etc/webapps/${PF}/ 349/etc/webapps/${PF}/
350</pre> 350</pre>
352Config tool to the Document Root for each instance of the app that is installed.</p> 352Config tool to the Document Root for each instance of the app that is installed.</p>
353<p>This will require the VHost Config toolset to emulate Portage's CONFIG_PROTECT 353<p>This will require the VHost Config toolset to emulate Portage's CONFIG_PROTECT
354behaviour for the web applications.</p> 354behaviour for the web applications.</p>
355</div> 355</div>
356</div> 356</div>
357<div class="section" id="application-permissions"> 357<div class="section">
358<h2><a class="toc-backref" href="#id26" name="application-permissions">4. Application Permissions</a></h2> 358<h2><a class="toc-backref" href="#id27" id="application-permissions" name="application-permissions">4. Application Permissions</a></h2>
359<p>Installing web applications and giving the web server ownership of the files 359<p>Installing web applications and giving the web server ownership of the files
360is a security risk. This can possibly lead to application configuration 360is a security risk. This can possibly lead to application configuration
361files being accessed by unwanted third parties.</p> 361files being accessed by unwanted third parties.</p>
362<p>All web applications should be owned by <em>root</em> unless the application 362<p>All web applications should be owned by <em>root</em> unless the application
363absolutely requires write access to its installation directories at execution 363absolutely requires write access to its installation directories at execution
364time.</p> 364time.</p>
365</div> 365</div>
366</div> 366</div>
367<div class="section" id="backwards-compatibility"> 367<div class="section">
368<h1><a class="toc-backref" href="#id27" name="backwards-compatibility">Backwards Compatibility</a></h1> 368<h1><a class="toc-backref" href="#id28" id="backwards-compatibility" name="backwards-compatibility">Backwards Compatibility</a></h1>
369<p>There may be some issues regarding compatibility with existing installs of 369<p>There may be some issues regarding compatibility with existing installs of
370web applications. This is particularly true if the default Document Root is 370web applications. This is particularly true if the default Document Root is
371moved from what is accepted as the current standard (/home/httpd).</p> 371moved from what is accepted as the current standard (/home/httpd).</p>
372<dl> 372<dl class="docutils">
373<dt>The main issues are:</dt> 373<dt>The main issues are:</dt>
374<dd><ul class="first last simple"> 374<dd><ul class="first last simple">
375<li>transition of existing configuration files to the 375<li>transition of existing configuration files to the
376/etc/webapps/${PF}/ directory.</li> 376/etc/webapps/${PF}/ directory.</li>
377<li>modification/reconfiguration of applications so that they 377<li>modification/reconfiguration of applications so that they
380configuration of web applications irrespective of web server.</li> 380configuration of web applications irrespective of web server.</li>
381</ul> 381</ul>
382</dd> 382</dd>
383</dl> 383</dl>
384</div> 384</div>
385<div class="section" id="references"> 385<div class="section">
386<h1><a class="toc-backref" href="#id28" name="references">References</a></h1> 386<h1><a class="toc-backref" href="#id29" id="references" name="references">References</a></h1>
387<table class="footnote" frame="void" id="webapppost1" rules="none"> 387<table class="docutils footnote" frame="void" id="webapppost1" rules="none">
388<colgroup><col class="label" /><col /></colgroup> 388<colgroup><col class="label" /><col /></colgroup>
389<tbody valign="top"> 389<tbody valign="top">
390<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> 390<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>
391</tbody> 391</tbody>
392</table> 392</table>
393<table class="footnote" frame="void" id="webapppost2" rules="none"> 393<table class="docutils footnote" frame="void" id="webapppost2" rules="none">
394<colgroup><col class="label" /><col /></colgroup> 394<colgroup><col class="label" /><col /></colgroup>
395<tbody valign="top"> 395<tbody valign="top">
396<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> 396<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>
397</tbody> 397</tbody>
398</table> 398</table>
399<table class="footnote" frame="void" id="webapppost3" rules="none"> 399<table class="docutils footnote" frame="void" id="webapppost3" rules="none">
400<colgroup><col class="label" /><col /></colgroup> 400<colgroup><col class="label" /><col /></colgroup>
401<tbody valign="top"> 401<tbody valign="top">
402<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> 402<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>
403</tbody> 403</tbody>
404</table> 404</table>
405<table class="footnote" frame="void" id="id5" rules="none"> 405<table class="docutils footnote" frame="void" id="id5" rules="none">
406<colgroup><col class="label" /><col /></colgroup> 406<colgroup><col class="label" /><col /></colgroup>
407<tbody valign="top"> 407<tbody valign="top">
408<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> 408<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>
409</tbody> 409</tbody>
410</table> 410</table>
411</div> 411</div>
412<div class="section" id="copyright"> 412<div class="section">
413<h1><a class="toc-backref" href="#id29" name="copyright">Copyright</a></h1> 413<h1><a class="toc-backref" href="#id30" id="copyright" name="copyright">Copyright</a></h1>
414<p>This document has been placed in the public domain.</p> 414<p>This document has been placed in the public domain.</p>
415</div> 415</div>
416</div>
417 416
418<hr class="footer"/> 417</div>
419<div class="footer"> 418<div class="footer">
419<hr class="footer" />
420<a class="reference" href="glep-0011.txt">View document source</a>. 420<a class="reference" href="glep-0011.txt">View document source</a>.
421Generated on: 2004-01-31 21:47 UTC. 421Generated on: 2007-10-13 13:39 UTC.
422Generated 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. 422Generated 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.
423
423</div> 424</div>
424</body> 425</body>
425</html> 426</html>
426 427

Legend:
Removed from v.1.5  
changed lines
  Added in v.1.8

  ViewVC Help
Powered by ViewVC 1.1.20