Matt,

Thank you very much for taking the time to lay this out for me. 
(vanity is wonderful, eh? ;)

I'll study what you have, and will probably have questions later.

Thanks again!

Rick

On Tue, 18 Jan 2005 17:39:01 -0500, Haas, Matt <Matt.Haas@xxxxxxxxxxx> wrote:
> Rick,
> 
> I do virtual servers so my layout may have additional depth to it that you 
> don't need (and it doesn't directly answer your question but may give you 
> some food for thought) but the folks up a Rochester pointed out that they 
> liked it when I did a UCD session at the end of 1998 (brief pause while I pat 
> myself on the back).
> 
> I start out with a web directory at the root of the root file system. You 
> could call it something along the lines of webroot but the name is not that 
> important.
> 
> Underneath that, I create a directory for each site. Again, name doesn't 
> matter but I make them match the host name less the common part of the name. 
> For example, if I have http://reallycoolsite.thomsonlearning.com, I'd have a 
> directory called reallycoolsite under webroot.
> 
> Underneath each site directory, I create an images directory and directories 
> for log analysis reports and a few other tools we give each site owner. This 
> is typically as deep as I do directory structures but the people maintaining 
> the content typically create individual directories for style sheets, 
> javascripts, and any files included via SSI's.
> 
> Net.Data macros go in their own directory under the main directory (webroot). 
> It's a bad idea to put the macros underneath the web root for each virtual 
> site since someone could get the web server to dump out your raw macro if you 
> forget to deny access to the directory.
> 
> I also create a directory for things common to all sites (corporate logos and 
> stuff related to HTML versions of our invoices) and either create a global 
> mapping in the server or symbolic links as needed.
> 
> Here's an example:
> 
> The directory structure ends up being:
> /websites
>  |-common_images
>  |-macros
>  |-reallycoolsite
>  | |-css
>  | |-images
>  | |-includes
>  | |-javascript
> 
> Your httpd.conf would have this in it:
> 
> <VirtualHost your.ip.address>
>    ServerName reallycoolsite.somethin.com
>    AlwaysDirectoryIndex On
>    DirectoryIndex index.html
>    DocumentRoot /websites/reallycoolsite
>    UseCanonicalName Off
>    HostNameLookups off
>    IndexOrderDefault Ascending Name CaseSense
>    <Directory /websites/reallycoolsite>
>       order allow,deny
>       allow from all
>    </Directory>
> </VirtualHost>
> 
> which enables serving of anything under /websites/reallycoolsite.
> 
> I keep CGI programs in a library called CGIBIN. Here's the configuration I 
> use for them and it's at the global level:
> ScriptAlias /cgibin /qsys.lib/cgibin.lib
> <Directory /qsys.lib/cgibin.lib>
>    order allow,deny
>    allow from all
> </Directory>
> 
> Net.Data's also a CGI program but I want to refer to it as /db2www instead of 
> /cgibin/db2www.pgm so I add the following at the global level:
> 
> ScriptAlias /db2www/ /qsys.lib/cgibin.lib/db2www.pgm/
> 
> The directory container I added above takes care of permissions.
> 
> To get access to /websites/common_images, you can either add a global mapping:
> 
> Alias /common_images /websites/common_images
> <Directory /websites/common_images>
>    order allow,deny
>    allow from all
> </Directory>
> 
> or you can create a symbolic link:
> 
> ADDLNK OBJ('/websites/common_images') 
> NEWLNK('/websites/reallycoolsite/common_images') LNKTYPE(*SYMBOLIC)
> 
> and then add Options +FollowSymLinks to your httpd.conf.
> 
> Finally, to turn on SSI's, add the following:
> 
> Options +Includes (note: you can just add +Includes to your existing options 
> list)
> AddOutputFilter INCLUDES .shtml
> AddOutputFilter INCLUDES .htm
> AddOutputFilter INCLUDES .html
> AddOutputFilter INCLUDES .pgm
> 
> This allows the server to parse both HTML pages and CGI programs (including 
> Net.Data since it's runtime is also a .pgm type object) for SSI tags.
> 
> What this makes available is the following URL's:
> 
> http://reallycoolsite.somethin.com
> http://reallycoolsite.somethin.com/cgibin
> http://reallycoolsite.somethin.com/common_images
> http://reallycoolsite.somethin.com/css
> http://reallycoolsite.somethin.com/db2www
> http://reallycoolsite.somethin.com/images
> http://reallycoolsite.somethin.com/includes
> http://reallycoolsite.somethin.com/javascript
> 
> When I need to refer to an image (or a CSS file, or anything else) from 
> either a CGI program or a Net.Data macro, I also use an absolute path 
> (/images/fred.jpg) so I don't have to worry about how many double dot's I 
> need to make stuff work. If you don't use common templates for the pages, 
> this isn't much of an issue but if you use the same templates at various 
> levels within the site, it's just about impossible to use relative links. 
> Also, it makes it easier for browser's to cache stuff which makes the page 
> load quicker for your customers and reduce load on your server.
> 
> One situation I do have that's a slight twist on what you're doing is our B2B 
> online store is shared by a bunch of virtual sites. In order to make it 
> easier to track who's using the store in the log analysis reports, I've 
> created various alias' to give each site it's own virtual directory.
> 
> Finally, I highly recommend that you take a look at the first few chapters of 
> the book "Professional Apache 2.0". These chapters are introductory and 
> covers a lot of this type of stuff. Besides that, the book is great for 
> understanding how to configure an Apache based HTTP server.
> 
> Matt
> 
> -----Original Message-----
> From: rick baird [mailto:rick.baird@xxxxxxxxx]
> Sent: Tuesday, January 18, 2005 4:22 PM
> To: web400@xxxxxxxxxxxx
> Subject: [WEB400] The proper way to set up your directory stucture for
> webserving
> 
> I'm having a brain seizure, and i'm looking for some direction on the
> 'BEST' way of organizing web document directories.
> 
> I'm on V5R3, using apache for static pages and some homespun CGI (the
> hard way) programs.
> 
> I want to begin using net.data and CGIDEV as well, and I'm having
> difficulty deciding the proper way to set up my directory structure,
> but before I do, I want to make sure I don't paint myself into a
> corner by doing it wrong.
> 
> How do you all organize your directories?     by document type and
> then application?  or by application and document type.  What about
> images, static pages or net.data macros that could be used in several
> different applications?
> 
> Mostly, I'm concerned about my html (static and generated) will be
> able to easily 'find' my images, other pages, other links, etc.
> without having to specify full path's to those objects, and to easily
> navigate between static pages, cgi and net.data links.
> 
> for instance, can you think of anything functionally different between
> the following:
> 
> /live/common/html/...
> /live/common/images/...
> /live/common/netdatamacros/...
> /live/application1/html/...
> /live/application1/images/...
> /live/application1/netdatamacros/...
> /live/application2/html/...
> /live/application2/images/...
> /live/application2/netdatamacros/...
> /test/application1/html/...
> /test/application1/images/...
> /test/application1/netdatamacros/...
> /test/application2/html/...
> /test/application2/images/...
> /test/application2/netdatamacros/...
> 
> and this:?
> 
> /live/html/common/...
> /live/html/application1/...
> /live/html/application2/...
> /live/netdatamacros/common/...
> /live/netdatamacros/application1/...
> /live/netdatamacros/application2/...
> 
> etc.
> 
> or some other way of organizing?
> 
> thanks in advance,
> 
> Rick
> _______________________________________________
> This is the Web Enabling the AS400 / iSeries (WEB400) mailing list
> To post a message email: WEB400@xxxxxxxxxxxx
> To subscribe, unsubscribe, or change list options,
> visit: http://lists.midrange.com/mailman/listinfo/web400
> or email: WEB400-request@xxxxxxxxxxxx
> Before posting, please take a moment to review the archives
> at http://archive.midrange.com/web400.
> 
> _______________________________________________
> This is the Web Enabling the AS400 / iSeries (WEB400) mailing list
> To post a message email: WEB400@xxxxxxxxxxxx
> To subscribe, unsubscribe, or change list options,
> visit: http://lists.midrange.com/mailman/listinfo/web400
> or email: WEB400-request@xxxxxxxxxxxx
> Before posting, please take a moment to review the archives
> at http://archive.midrange.com/web400.
> 
>

As an Amazon Associate we earn from qualifying purchases.

This thread ...

Replies:

Follow On AppleNews
Return to Archive home page | Return to MIDRANGE.COM home page

This mailing list archive is Copyright 1997-2022 by midrange.com and David Gibbs as a compilation work. Use of the archive is restricted to research of a business or technical nature. Any other uses are prohibited. Full details are available on our policy page. If you have questions about this, please contact [javascript protected email address].

Operating expenses for this site are earned using the Amazon Associate program and Google Adsense.