[Mono-list] mod_mono and user dirs

Daniel Lopez daniel@rawbyte.com
Wed, 12 Mar 2003 03:13:09 -0800

> In IIS 6 a new term was introduced, a web garden. A web garden is an
> application host that hosts several applications on the same process.
> It is also possible (of course) to create several web gardens.

Oh, I was not aware of this, IŽll read up on that 

> So as I see it we have the following options:
> - Update the application host to receive as a parameter several paths.
> Each path represents an application. This means that every user path
> will be manually enter to the config. This is also useful for applying a
> web garden concept in mod_mono.

You can do that with MonoApplication /~ /home/
The problem is adding the public_html in the right place, the workaround I
suggested so far was 
MonoApplication /~ /some/path
and then soft-linking the public_html to there

> - Add a parameter to the application host that will recognize a pattern
> that will be interpreted as a user home directory. By default it can be
> paths with a "~" sign, but it can also be any kind of pattern (for
> example a path named home_username). Perhaps it will be useful to allow
> adding some kind of a loadable filter that will be able to hold this
> logic. This will allow a nicer approach in windows so we can have a
> source path (equivalent to /home/) and underneath it a filter that will
> process the received user home directory name and convert it to the
> physical path according to some kind of a logic.
> So we will have s path that looks like this:
> http://myserver/mono/~username/ or perhaps it will even look like this:
> http://myserver/mono/user_joe/
> - Write a user pages application host which specifically works for user
> home directories.
> In this case the IIS 6 web garden model seems like a logical choice and
> although there is currently no support for something like user pages,
> perhaps it will be best to combine the 2 first suggestions I have made
> so we will support a similar concept of web garden while still being
> able to serve user pages.
> What do you think about it?

I like the ideas, what I am trying to figure out is where to do the
transformations. Patrik suggested HttpModule, I am going to look for
examples in which an HttpModule is used to change the physical path.
The other one that I had in mind originally is changing MapPath, so if a
certain flag is set, it will use the apache path_translated. That will allow
us not only use UserDir apache directive, but take advantage of all other
apache modules that map virtual to physical paths (such as mod_rewrite).
That will allow to easily implement, for example, the mapping on Windows
that you suggested