INSTALLING MeoWWW G. Andruk [Sorry if this documentation is a bit on the terse side. If you feel like adding information, send it on over!] I'm going to make some assumptions here: you have a WWW server installed and know how to configure it; you have news server and the Web server has (or can get) reader access to it; and you're not afraid to use a text editor. One thing you may not have is Python. Try typing the command 'python' at a handy shell prompt and see what happens; if it's installed, you should get a banner like this: $ python Python 1.5.2 (#4, May 10 1999, 04:06:31) [GCC 2.7.2.3] on linux2 Copyright 1991-1995 Stichting Mathematisch Centrum, Amsterdam >>> (You can press control-D to get out.) If your version is older than 1.5.2, or Python's not there, you'll need to install it. Grab it from and get it running. I've tried to stick to modules from the default installation; you don't need to mess with the optional modules or threading stuff unless you really want to for your own amusement. So if you're here, you've got a working Python, right? Yay! Okay, unpack the MeoWWW sources into the directory where you want them to live. (Hmm, you probably already did that, since you're reading this!) For the purpose of our discussion, I'm going to assume that the files are owned by the user `news'. (No, you don't want the files to be owned by the WWW server or `nobody'; pick or create a different account.) Notice that only one file, meow, is set as executable. Yes, this is how it's supposed to be. Everything else is imported by meow as a module or not meant to be run by clients. Open up the file meow, and check that the first line... #!/usr/local/bin/python ...actually points to the place where you installed Python 1.5.2. If not, change and save it. (By the way, you don't *have* to call this script `meow'. Feel free to rename it to something else if you dislike cats or something, but understand that you will forevermore live under the fear of Fluffy's wrath.) Next, open up the file config.py and set the 'Configurable Stuff' to match your environment. There are comments there to explain what each variable does. Please don't mess with the indentation, it matters. You will also want to fix up index.py to point to groups and lists of groups of interest to your local users. I intentionally put some dumb stuff in there to encourage you to actually do this. Notice that this file is pretty much one big string with a bit of Python glue to make it all work. Any place where `MEOW?' appears in the string, it will be replaced with the actual location of your meow (or whatever bletcherous name you gave it) script. Now, update the modules so that they're all precompiled. This will make your scripts run faster. To do that, make sure you're in the scripts directory and type: python build If you see syntax errors, go fix 'em; they weren't there when they left Meow Labs' state-of-the-art-yet-wholly-mythical facilities. Remember to do the `python build' thing any time you change or touch the *.py files, else performance will suffer. (The WWW server won't be able to do that automagically because you didn't give it the write access, and you don't want to give it write access. Really.) Now, tell the Web server where the scripts live. You'll want to make the meow script world executable, and everything else world readable. But not world writable, that would be Bad. You will have to set up directory access according to your local needs, but here are some quick hints to get something minimally functional. For an Apache server, you might put something like this into srm.conf: ScriptAlias /newsbin/ /home/news/meowww/bin/ And perhaps something like this in access.conf: Options ExecCGI AllowOverride Authconfig And maybe something like this in .htaccess in your meowww/bin directory: AuthName MeoWWW AuthType Basic AuthUserFile /news/meowers require valid-user ...Actually, AuthUserFile can be slow and painful, but Apache supports it out of the box. One of the DBM varieties would be better, if you can manage it. See your HTTP server documentation to learn how to set up a user file. [Note that you can skip the auth stuff if you don't care who reads news on your server, but posting will not work. That's a feature, not a bug.] All right, that's it! Go play. Assuming you used the above configuration, the URL to access it would be: http://www.my.domain/newsbin/meow Or, to see all the news.* groups: http://www.my.domain/newsbin/meow?list+news.* Or, to go straight to news.software.readers: http://www.my.domain/newsbin/meow?group+news.software.readers Meow!