Forum OpenACS Q&A: Re: New openACS user...confused
If it were just a neat way of using TCL from a webserver you were looking for, you've come too far. Go back 100 yards and pull into the AOLserver parking lot. It's a darned fine webserver. With the exception that it doesn't have dumb-simple virtual hosting, it's probably the best webserver I have seen. The fact that PHP and Perl aren't trivially supported is a plus in my book :)
Now, to understand OpenACS, I believe you need to grok the notion that little you do in the filesystem matters. What matters is that you get everything running, and by interacting with the administration interface, you construct a hierarchy of subsites, mount applications onto these subsites, and change their parameters. At no time do you directly create files in the filesystem. This last has beem my greatest difficulty in coming up to speed with OpenACS. It may be that for a particular situation, one needs to create a file on the filesystem. However, I've never gotten a clear answer on when and where that is.
Anyway, after I started this reply on Friday, I realized that I might be able to contribute to this little dance party here. I created some movies of the configuration of OpenACS from the point where the AOLserver and OpenACS kit are installed and ready to go. Now, getting to that point isn't trivial. In general, "You can't get there from here." the Debian version of GNU/Linux has a ready to run kit, I believe, as does FreeBSD. I use Solaris, so all bets are off. The intersection of Solaris and OpenACS users may well have been the empty set before I came.
So, if you'd like to see how the initial set-up and config of a site, sub-site, and user go, go to http://www.webrelay.net/download/oacs/ and grab the three avi movies there. I think they'll be helpful. A warning: The videos are not compressed. I'd welcome a private note as to how to do that. They are also not ready-for-prime-time. More like dress rehersal. I hope to revise them soonish. Oh, and if you'd like to get this kit up on a Solaris/SPARC system, the svr4 packages in that dir will get you going. You'll probably want to get them with wget or fetch, as they are dirs, not files.
Anyhoo, I realize that this doesn't answer all of your questions, but I hope this helps.
Unlike say Zope, OpenACS does not lock you into any strange object storage system, you can use the file-system in any way you wish - if you wish. It is not a case of, "everything must be in the database".
Generally, with OpenACS, if you are manually editing files on your Production web server, either: One, this is an exceptional case and you know exactly what you're doing and why. Two, you don't know what you're doing.
There are also files, not in CVS, which are created by OpenACS itself, which you would never edit. Files uploaded to File Storage and then stored in the file system come to mind. But as far as I remember, any files which you the admin would edit, you would edit as part of your development process, typically on your Dev server. (There may be other exceptions I've forgotten, and which hopefully someone will point out, but in general that should be true.)
If one creates a subsite, say newsite, and mounts packages foo, bar, and baz at that subsite, then the following uris will be valid:
while the uri, www.site.dom/newsite/zot will not be. No surprise so far.
Now, create the dir /www/newsite and edit therein the file zot.adp, and voila, www.site.dom/newsite/zot is no longer 404.
What this all means is that uris reference files until a uri pattern matches something stored in the database. Then the magic works.
I'm still of the opinion that creating a subsite should make the appropriate dir in /www. And that removing it should optionally remove the dir. But I can script around this.
Now, if I can figure out how to move /www out of the oacs dist filestruct, I'm golden.
With having subsite creation make dirs for their subsites, you've just invented a plain webserver... which is not what the -interesting- part of openacs is. Aolserver's capability of allowing the application to interpret the url rather than have hardwired directories is used to add collaboritive features to the site.
Active web sites typically interpret the part of the incoming URL past the http://site.name/ and try to match its pieces in order to allow -active- content. This is what the openacs request processor does... it matches the url to values in the site_nodes table in order to determine (a) which mounted package instance is being requested and (b) which page within that package is desired. Some packages even arrange to interpret their part of the URL either using the database or in other programatic ways.
The request processor acts like an extra decision tree: it answers the question of "should I serve a file that exists in www, or should I look for the page in a package, and if so, which one?"
If it were not for this, the arrangement of packages as they exist now would not be possible, a problem that was dealt with when going from openacs-3.x to 4.x; if memory serves, this was the point at which openacs moved to a packaging system.
The www dir is pointed to in the aolserver config file; consult that file for the correct variable; it could be pageroot. I can't say what the consequences of moving that dir are.
If either of you are interested in looking under the hood of openacs a bit and don't mind getting your hands dirty and editing some files in your favorite text editor, might I suggest the developer tutorial?
It shows a bit of how openacs works and how to create a package, mount that package, write scripts that install and remove the data model for that package and how to prompt the user and store and retrieve results.
Customization of openacs much beyond creating and mounting apps, setting parameters and granting permissions requires programming, and that's what the tutorial introduces.
In my usage model, the system administrator is responsible for providing applications (cgi, adp, whathaveyou), and individual website masters provide their own content. So, we need separation of filesystem space to allow for ftp accounts and so forth. Once the administrator has made the subsite, and associated it with the ftp accounts, home dir paths, logfile paths, and so forth, then the site master can choose what to use. If they want to create plain html pages, that's their affair. Of course, they often ask for similar features, and don't care how they are provided, so the OpenACS/AOLserver combo is quite nice.
To me, the *interesting* part of OpenACS is that a single platform can provide support at the basic, scripting, and full-on-bad-mojo level.
Hey, my hands are filthy with OpenACS muck on them. And I still feel that it's the best thing going, all things considered. But the standard kit has a few nits, that if fixed, would make the kit much easier to grok for a wider user base. And yes, by fixing, I mean easing the use of the OpenACS as plain webserver as needed. Really, there's a tremendous amount of high-quality, ready-to-run code in the OpenACS kit. One ought to be able to just use it.
But, as I noted above, I've got my workaround. And on Monday, I'm going to show a static website developer how to add an OpenACS forum and journal to her website, and neither one of us will program a thing!!!
Btw, there has been some sort of WYSIWYG-style HTML editor supported in OpenACS for some time. I haven't tried it yet, as personally I like the non-WYSIWYG nature of HTML and similar markup styles.
Forums are nice as a record of a specific conversation. Email lists are better transport mechanisms for those conversations, I think.
I'd propose a solution, but you beat me to it in this message: http://www.openacs.org/forums/message-view?message_id=389793
And very nicely, too.
As far as Solaris is concerned, I don't use Zones, Jails or chroots of any type unless I'm desperate. The headache to me is not worth the benefit. But SMF, not that's much nicer than I originally thought. I am currently running ACS as a "Legacy" init.d script, but I've done a bunch of work to figure out how to migrate. I've already got postfix, thttpd, and a home grown pop3 server running under SMF. Perhaps I'll start a Solaris thread here to post my experiences once I get the ACS (well nsd) running under SMF.