1 |
On Wednesday 06 August 2003 5:37 am, Robin H.Johnson wrote: |
2 |
> Ok, so if -vhosts, we install to /usr/share/webapp/(whatever) and |
3 |
> automatically run the webapp-config tool ? |
4 |
|
5 |
Yeah, I think that'd be good, especially if we bring in the move to |
6 |
/var/www/localhost as the new default location for -vhosts systems. |
7 |
|
8 |
> if +vhosts, we install to /usr/share/webapp/(whatever) and the |
9 |
> administrator is left to run the rest himself. |
10 |
|
11 |
Definitely. |
12 |
|
13 |
> As part of the planning, and a good first step |
14 |
> I'm plotting out a config tool for adding vhosts. All comments welcome |
15 |
> as this is intended to be a good outline of what the tool must do etc |
16 |
> before I write it (borrowing heavily from my exist custom scripts for |
17 |
> the purpose). |
18 |
|
19 |
Off the top of my head, here's a partial wish-list: |
20 |
|
21 |
* add new vhost |
22 |
* destroy existing vhost |
23 |
* suspend vhost, but do not destroy |
24 |
* add <webapp> to <location> inside <vhost> |
25 |
* upgrade <webapp> at <location> inside <vhost> |
26 |
* remove <webapp> at <location> inside <vhost> |
27 |
|
28 |
The config tools are going to need to emulate CONFIG_PROTECT behaviour; either |
29 |
that, or we'll need some improvements to be made to Portage. |
30 |
|
31 |
For now, I suggest we treat database creation/upgrades/etc as out-of-scope, |
32 |
unless someone wishes to step forth from the shadows with a plan for this? |
33 |
|
34 |
> Stuart: once before you asked why I didn't use dynamic vhosts. |
35 |
> Two reasons behind it. Firstly, I want seperate log files for each |
36 |
> vhost, |
37 |
|
38 |
Excellent point. |
39 |
|
40 |
> and secondly I have a lot of apache configuration directives that |
41 |
> vary per server (funky mod_rewrite stuff mainly to make variable |
42 |
> handling in php interesting). |
43 |
|
44 |
Grin. |
45 |
|
46 |
> Based on this, I strongly believe that |
47 |
> 'simple' vhosts are the best way to go in general. |
48 |
|
49 |
Then let's do it. |
50 |
|
51 |
> I feel the name 'htdocs' belies the meaning of the directory more |
52 |
> accurately, but I'm looking for input on that item. |
53 |
|
54 |
+1 for htdocs. |
55 |
|
56 |
> Rough outline of tool: |
57 |
> |
58 |
> vhost-config must do three things: |
59 |
> - creates directories (copies a skeleton directory for the most part). |
60 |
> - create apache vhost config files. |
61 |
> - HUP apache so it reads in the new config without stopping. |
62 |
> |
63 |
> Proposed rough usage: |
64 |
> vhost-config [opts] fully.qualified-domain.name |
65 |
|
66 |
[snip] |
67 |
|
68 |
The options look good. The only additional behaviour I'd suggest is to create |
69 |
symlinks from ~<user>/vhosts/<FQDM> to /var/www/<FQDM>, to make it easier for |
70 |
people with shell accounts on the box to find their own domains. |
71 |
|
72 |
How about making /var/www/<FQDM> chmod'd 750 by default, and owned by the |
73 |
apache group by default? On shared boxes with shell accounts, this'd mean |
74 |
that apache can serve the files, but other shell accounts can't take a peak. |
75 |
|
76 |
> /etc/vhost-skel/ might contain: |
77 |
> htdocs/ = maybe a simple index.html ? |
78 |
|
79 |
Yes. I'd go further and make it a symlink to a default index.html page, so |
80 |
that changes to a master copy are automatically picked up for domains that |
81 |
have been created but left unused. |
82 |
|
83 |
> conf/ = [treated specially] ${server}.conf that is used for creating the |
84 |
> initial config, templates of some sort (I'm leaning to M4 as all my |
85 |
> existing stuff is in it, and it's good for templating like this). |
86 |
|
87 |
/me hates m4 ;-) |
88 |
|
89 |
What are you going to write the tools in? Python, bash, PHP, or something |
90 |
else? |
91 |
|
92 |
> After vhost-config has generated all of the nessicary stuff, it should |
93 |
> HUP the apache server if everything is in order. |
94 |
|
95 |
Yup. |
96 |
|
97 |
> There is one check that is outside the scope of the tool, namely the |
98 |
> existance of DNS for the specified hostname. If the admin creates a |
99 |
> vhost that does not yet have DNS or name resolution relative to the |
100 |
> system, we should display a warning. |
101 |
|
102 |
I like this. Maybe the default behaviour could be to throw an error, and |
103 |
supply a '--force' option to downgrade to a warning? |
104 |
|
105 |
> I'd repeat again for good measure, this email is strongly based off the |
106 |
> present capabilites of my private vhost setup scripts, plus the features |
107 |
> I as a developer, sysadmin and user want in a new revision. However I |
108 |
> strongly feel that more input is needed as well. |
109 |
|
110 |
Well, you've got mine now ;-) |
111 |
|
112 |
Webapps aren't the only type of application that can take advantage of a |
113 |
vhosts solution. Games servers such as the Half-Life Dedicated Server (HLDS) |
114 |
can also benefit from being deployed into a vhosts-type scenario. |
115 |
|
116 |
Obviously, there are important differences, which means that the exact same |
117 |
tool can't be used to manage both. But, if we can identify and extract out |
118 |
common elements so that they can be re-used by different scripts, that might |
119 |
help validate both the design and the implementation. |
120 |
|
121 |
Take care, |
122 |
Stu |
123 |
-- |
124 |
Stuart Herbert stuart@g.o |
125 |
Gentoo Developer http://www.gentoo.org/ |
126 |
Beta packages for download http://dev.gentoo.org/~stuart/packages/ |
127 |
|
128 |
GnuGP key id# F9AFC57C available from http://pgp.mit.edu |
129 |
Key fingerprint = 31FB 50D4 1F88 E227 F319 C549 0C2F 80BA F9AF C57C |
130 |
-- |