[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Web applications specific issues



> > * One solution I like is to provide a default template directory,
> > notifying the user in README.Debian (or in a debconf note) that he
> > must not touch it and provide a way to use template from an
> > alternate point. This solution seems to be used in some packages.
>
> i think this isn't really a packaging issue as much as it's an
> upstream developer issue.  some authors, notably best-practical
> (request-tracker) provide a really easy way to do this, which is
> great.  others don't, but i don't think there should be any
> requirement.

the fact is if you change some templates, you don't want the upgrade to 
simply override them.

and AFAIK, rt is not that good, since it has no less than 3 packages in 
debian, and I recall some guy explaining that it was really hard to 
upgrade from one version to the next, and that was why there is 3 
packages (v3, 3.2 and 3.4). IMHO, that is not a success story at all. 
if every single webapp means a new package for each new minor 
release ... we are driving into the wall.

> > Providing a VirtualHosting facility
> > -----------------------------------------------------------------
> >
> > On some occasions, system adminstrations need to run different
> > versions of a webapp package, as they are used across different
> > virtualhosts. It's usually quite hard to do that currently. Most
> > packages can only have one version installed at a time.
> > You will probably need to fetch the packages' source and do a lot
> > of modifications
> >
> > * The standard approach is to install stuff from source.
> > * Another way to do that is to bump the package name but that seems
> > to be a solution that's not well liked by some DDs
>
> virtual hosting will be a fairly complicated thing to approach.  most
> applications *do* work in such an environment, but it involves
> tweaking of configuration files in a non-intuitive way.  for example,
> with a php app, you can do something like this in your config.php:
>
> <?php
> if($_GLOBALS['HTTP_SERVERNAME'] == "onehostname.com") {
> // ^ or whatever that variable is, i forget it off the top of my head
> 	$dbuser="foo"
> 	$dbpass="bar"
> } else {
> 	$dbuser="far"
> 	$dbpass="sar"
> }
>
> however, that also means supporting multiple databases, which is a
> little trickier to do.

not really. most of the time, web apps have a separate config file. the 
only thing that you need, is to play with symlinks from /srv. that is 
really possible (in fact I do it by hand on my machines, so I'm sure of 
it).

IMHO, this is often possible to provide some :

  srv-instanciate [webapp] [directory]

that would work like that :

  srv-instanciate myApp /srv/myvhost.mydomain.org/myapp

and that would :
 * create all the required symlinks needed in order that the app would
   work
 * would create a conffile e.g. in /etc/myapp/myvhost.mydomain.org.conf
   that would be symlinked from the right place
   in /srv/myvhost.mydomain.org/myapp [1]
 * register this beeing attached to the virtual host, what is what you
   suggest


> - registering your application with the web server
> - unregistering your application with the web server
> - registering your php library with the php install
> - unregistering your php library with the php install
> - placement of static web content
> - placement of dynamic web content

IMHO, we should :
 - (ur)register vhosts with the web server
 - (un)register apps with vhosts
 - let the php libraries live in a subdirectory of /usr/share/php and
   let it be in the include_path

and then , "the good way" of handling templates is trivial : the user 
only has to delete the symlinks to the default templates dir, and put 
his own content here. that would not be deleted/overwriten by upgrades, 
and would also be OK. and for the clever apps (like rt may do up to a 
point) that are able to upgrade templates, I believe that the 
maintainer should be able to do run the upgrade scripts automagically 
too.

I know this is a lot of things to write, but those problems are sooooooo 
common in web apps, that this would be a really well used and well 
shared code.

> - is cgi-bin obsoleted?
I don't think so, for PHP, I've been told fastcgi is more efficient than 
apache module e.g. But that is sth the webapp should not have to be 
aware of. most of (even if it's not 100% true) the web apps (in php at 
least) work in php-mod as well as in cgi mode. so that should be sth 
that only the webserver has to be aware of.



[1] this is already what most of web apps do for the single default
    instance, so it's really sensible
-- 
·O·  Pierre Habouzit
··O
OOO                                                http://www.madism.org

Attachment: pgpqhYDpYicx0.pgp
Description: PGP signature


Reply to: