RPGBoard Administrators' FAQ

The latest version of this FAQ can be found here.  If this FAQ doesn't answer your question, go ahead and e-mail me.  If this FAQ does answer your question, please don't e-mail me.

  1. Installation and Configuration
    1. How do I start?
    2. Will this work on NT?
    3. What's this thing about Apache, SSIs, and the "xbithack" option?
    4. How do I know what software and OS my web server uses?
    5. What's this about chmod?
    6. What's a CGI-BIN?
  2. Migrating to RPGBoard
    1. How do I migrate from WWWBoard/RPGBoard 1.*?
    2. How do I migrate from a gamma version of RPGBoard 2.00?
    3. How do I migrate to RPGBoard 2.04?
  3. Administrating RPGBoard
    1. What power does an admin have?
    2. How do I delete multiple messages at once?
    3. How do I ban a user?
  4. Troubleshooting
    1. I get a Error 500 when I try to run rpgconfig.cgi!  What gives?
    2. When I'm about to post a test message, I don't see any fields!  What's wrong?
    3. The configurator can't create any directories!  What's the problem?
    4. Why can't I create/remove any of the message tags?
    5. I get this error: Bare word found where operator expected at rpgglobal.h line 119, near "/[0-9\.]+ (.+?):[0-9]+/gc".  What's wrong?
    6. The SpellCheck doesn't work and I'm getting a gzip error.  What's wrong?
    7. Users are forced to hit reload on everything.  How do I change this behavior?
  5. Features that I won't add
    1. Why don't you put in an "Edit Message" function?
    2. Is there a way to disable the preview?
    3. How about putting in the "Re: [Subject]" in the subject line?
    4. I want to have a special [background/text font/whatever] just for admins.  Can you put that in?
    5. Could you add those single delete functions from WWWBoard?
    6. Can you put a "NEW" tag on new messages?
    7. What about an "e-mail password" option for users that forget their password?
    8. Why are you so picky about what features get put in the script?
1 Installation and Configuration
1.1 How do I start?
If you have any problems, please look through this FAQ, especially the troubleshooting section, before e-mailing me.  I'm serious!
  1. Create a directory in your CGI-BIN called "rpgboard".
  2. Put all of the scripts (*.cgi) and include files (*.h) into this directory.  UPLOAD IN ASCII!!!
  3. Make the scripts (*.cgi) executable by chmoding them 755 in your RPGBoard directory.
  4. Make rpgvariables.h writable by chmoding it 666.
  5. Apache users: Edit (or create) your .htaccess file and add xbithack on to it.  The option forces the server to check any HTML file for server-side includes, if the exec bit is set (not just *.shtml files).  Put this file in your root WWW directory (or message directory, if you want).
  6. Create a directory where the message board will go.  (Let's say "/mb".)  Do not put this directory in your CGI-BIN!
  7. Create a directory called "messages" in your MB directory (like "/mb/messages").
  8. Chmod both of these directories to 777.
  9. Put the *.html and *.gif files into a "docs" directory (like "/mb/docs")
  10. Throw the dictionary file in your MB directory, if you are going to use it.
  11. Fire up your favorite browser and go to the rpgconfig.cgi on your site.
  12. Enter in password on the password prompt.
  13. Configure the basic information.  (Don't forget to change your password!)
  14. After you submit the information, a bunch of warnings will get displayed.  This is normal.  Be sure to read through them all and check the indented actions, too.
  15. Go to the main screen and configure all of the sections.  Don't stop until you don't see any more warnings.  (For now, only configure one forum.)
  16. Special note when creating forums: Use small names for your forums.  Don't name everything "[insert topic here] Discussion Board".  It's repetive, esp. when your MB's collective name is "[something] Discussion Board".  Instead, just call it your topic.  Not only does it look nicer, but the default directory name isn't nearly as long.  ("Foobar Discussion Board" turns into "foobardiscussionboard/".)
  17. Go to defaults.html on your MB directory and use !!default as the name and password as the password.
  18. This is the default defaults for people who aren't registered.  Change everything that you want to, including the password.
  19. Now, test the board by going to http://www.yoursite.com/yourmb/yourforum/.  If you see the "Display messages from" option on the page, you're OK.  If not, you may not be running Apache and/or your SSIs may not be working.
  20. Try posting a message and see if it shows up.  Test all of the other functions, too.
  21. You'll need to make a index.html in your MB directory as a entrance page.  Also, changing the pre-made HTML files ([defaults/backgrounds/index/post].html) would be nice, too.  (Please don't remove the SSI comments, ok?)
1.2 Will this work on NT?
Yes!  It works fairly well with NT, as long as you have the latest version of Perl.  The copy that came with the server isn't enough.  You should grab yourself the latest copy of ActivePerl.

However, as a program originally intented for UNIX systems, RPGBoard has a few features which will not work on NT.  These are the auto-compression system (no GZip), e-mail functions (no sendmail), and using nslookup to check an IP name (no nslookup).  You should disable the first two in the toggle menu of the configurator.  (RPGBoard won't use nslookup if it can't find it.)

(BTW, unzip the dictionary since you can't use GZip.)

1.3 What's this thing about Apache, SSIs, and the "xbithack" option?
Here.
1.4 How do I know what software and OS my web server uses?
Go to Netcraft's "What's that site running?" page and type in your domain name.  Apache and a UNIX OS is an ideal system for RPGBoard.
1.5 What's this about chmod?
The chmod command is used change permissions on files and directories.  There are several ways you can change permissions:
  1. Using telnet and running the command on the files (like "chmod 755 rpg*.cgi").
  2. Using an FTP client that supports a "change permissions" or "CHMOD" function.  Usually, this is accessible by right-clicking on the file.
  3. Using the QUOTE command from a FTP client (like "QUOTE SITE CHMOD 755 rpgboard.cgi")
The numbers are bits that are added together: 4=read, 2=write, 1=execute. So, all of the combinations are:
  • 0 = no permissions
  • 1 = execute only
  • 2 = write only
  • 3 = write/execute
  • 4 = read only
  • 5 = read/execute
  • 6 = read/write
  • 7 = read/write/execute (full permissions)
The three positions are owner, group, and world permissions.  For example, 755 means full permissions for the owner and read/execute permissions for everybody else.  Use this guide if your FTP client doesn't use the number system.
1.6 What's a CGI-BIN?
You should already know the answer to that, otherwise you have no business using this script.  Most web pages that come with your dial-in account DON'T include a CGI-BIN.  This includes free web pages, such as GeoCities and Tripod. Most web pages that you pay for (usually called virtual domains) and college accounts come with a CGI-BIN.

Basically, a CGI-BIN is the place where you put your WWW progams.  Anything that interacts with the internet on the server end goes there.  If you don't have one, you can't run any *.cgi, *.pl, *.py, etc. scripts/programs via a browser, including this script.  (Sorry!)

2 Migrating to RPGBoard
2.1 How do I migrate from WWWBoard/RPGBoard 1.*?
Forget it!  There are too many differences between RPGBoard v1 and v2, and there's more differences in WWWBoard than I care to list.  Just start a new message board and try to model off of your old one.  It's worth the effort.
2.2 How do I migrate from a previous version of RPGBoard 2?
Just grab all of the latest files and replace your old ones, except rpgvariables.h.  It's important that you leave that intact because it contains your forum data.  (Also, don't forget to replace these FAQs, as they get updated all the time.)  You should go into your configurator and check all of the options to see if there is any new features.
2.3 How do I migrate from a version before 2.04?
All of the docs go into a "docs" directory now.  Delete your old faq.html and put all of the *.html and *.gif files in the docs directory (which should be created in your MB directory).  Browse to the configurator and change the FAQ location to reflect this change.  (The usual upgrade instructions apply to the *.cgi and *.h files.)
3 Administrating RPGBoard
3.1 What power does an admin have?
There are three types of users:
  • Normal Users can:
    • Post messages
    • Change his/her message defaults
    • Delete his/her messages
  • Administrators can:
    • Do anything a normal user can
    • Change anybody's message defaults (including passwords)
    • Change the default message defaults (using the name "!!default")
    • Delete or undelete anybody's messages (including multiple deletions)
    • Spoof as another user on protected boards (not very useful, but...)
  • Superusers can:
    • Do anything an admin can
    • Change the configuration of the MB
    • Add new forums/backgrounds/etc.
The type of user depends on the password you enter or the password cookies.  (You did remember to change the admin/superuser passwords, didn't you?)
3.2 How do I delete multiple messages at once?
That's what RPGAdmin is for.  To access it, just directly browse to rpgadmin.cgi.
3.3 How do I ban a user?
Banning is done on an IP-address basis.  This is the only real way to ban users because names and e-mail addresses can be spoofed.  The ban file is composed of an IP address/number, any number of spaces/tabs, and an optional comment.  A star (*) can be used as a wildcard.  For example:

*.foobar.com          Some loser spamming the board
192.168.*             Mr. Flamer
ip*.anytown.*.us

4 Troubleshooting
4.1 I get a Error 500 when I try to run rpgconfig.cgi!  What gives?
First of all, UPLOAD IN ASCII!!!  I cannot stress this enough because so many people screw up that simple instruction!  Do not, I repeat, DO NOT trust the Auto function on your FTP client!  Manually upload it as ASCII!

Another cause of this problem is that your Perl program may be located in a different location than "/usr/bin/perl".  Try telnetting into the site and type "which perl".  Jot that path down and change the first line of all of the script files (*.cgi) to match it.  For example, if your Perl is located at "/usr/local/bin/perl", you would change the first line to say:

#!/usr/local/bin/perl

4.2 When I'm about to post a test message, I don't see any fields!  What's wrong?
Your SSIs aren't working.  Either you forgot to include that .htaccess file (see step #5 on question 1.1) or you can't use the XBitHack option, in which case, you should rename the index.html and post.html files to index.shtml and post.shtml.  If that still doesn't work, you may not be able to use SSIs.  Contact your web hosting service to make sure.

If you have root access to your web server, you may want to check a few Apache config options make your that your SSIs are turned on.  Check your httpd.conf (or other config files, if you have an older version of Apache) for:

AddHandler server-parsed .shtml
AddType text/html shtml

(Of course, this is not a requirement for people using the XBitHack option.)

Also, you should check for Options Include in your <Directory /www/foo/bar/myweb> section.  After all, it isn't going to do anything if the SSIs aren't turned on :)

4.3 The configurator can't create any directories!  What's the problem?
Recheck steps #6-8 on question 1.1.
4.4 Why can't I create/remove any of the message tags?
You need to make sure you add or remove the tag IDs from the tag order field.  If you want to remove the message tags completely, disable the feature on the toggles section.
4.5 I get this error: Bare word found where operator expected at rpgglobal.h line 119, near "/[0-9\.]+ (.+?):[0-9]+/gc".  What's wrong?
Your version of Perl is too old.  (It doesn't support the "c" parameter on regular expressions.)  It happens a lot on NT servers (see question 1.2), but also on some non-Linux servers, too.  Ask your sysadmin to upgrade to the latest version of Perl.
4.6 The SpellCheck doesn't work and I'm getting a gzip error.  What's wrong?
You probably either grabbed the dictionary file as a text file or uploaded it as text.  If you have WinZIP or gzip, check to see if you can read the file.
4.7 Users are forced to hit reload on everything.  How do I change this behavior?
There are two different things using caches: the HTML files and the CGI scripts.  The HTML files had a couple of META tags in them to keep the browsers from loading the page every single time it's accessed.  (The server normally tells the browser to never cache the page if it has SSIs, but these tags fix that.)  In other words, the page usually won't refresh unless the browser forces a reload, either by hitting reload button or telling the browser to always compare the cache with the server.

This behavior is both good and bad.  It's good because it cuts down on bandwidth by a lot.  It's bad because your users might get a stale copy and would usually have to do a reload to get a fresh one.  If you want to fix this, remove those META tags.  However, doing this would raise your bandwidth usage because people will never use a cached copy of the page.

The CGI scripts (specifically, rpgmessages.cgi) will cache all messages for 15 minutes.  After that period, the browser will re-request the message again.  I feel that 15 minutes is an good period of time to prevent reloads on already-fresh messages, but if you want a way to change this time frame or disable it altogether, let me know and I'll add that as an option on the next RPGBoard.

5 Features that I won't add
5.1 Why don't you put in an "Edit Message" function?
I put some thought into adding an edit function in the messages.  However, I ran into some problems, both technical and logical.  First of all, people shouldn't be able to edit a message with replies to it.  If they did, they could change the text to suit the argument.  (Similar reasoning for limiting the user delete function to single messages only.)  Two, there is a preview function for the messages.  If you think you need to inspect your message for errors, inspect it before you post, not afterwards.  If you don't think you need to, then other people probably wouldn't care about your typos anyway.  Three, the system is made to add messages as fast as possible by appending to the message and location data files.  (The index file is a different matter, but it's fairly small compared to the message data file.)  So, editing messages would mean either rewriting the entire message data file every time or deleting and adding a new message entry (which would lead to a space-wasting security hole).
5.2 Is there a way to disable the preview?
No...nor will there ever be.  Why would anybody want to completely disable one of the most important features in RPGBoard?!  The user already has the option to add a message without a preview.  Sometimes you want to preview your message, sometimes you don't.  But, completely disabling the feature is illogical.
5.3 How about putting in the "Re: [Subject]" in the subject line?
No thanks.  I've seen boards with the function on.  It's not pretty.  People are too lazy to change the subject, so it stays as "Re: [Subject]" most of the time.  What's worse is the unchangable subject option on WWWBoard.  It completely defeats the purpose of a threaded message board!  The subject line might as well be useless.
5.4 I want to have a special [background/text font/whatever] just for admins.  Can you put that in?
Nah.  I had a special inverse background for myself coded in the very first release of RPGBoard a while back, but I decided to just go ahead and add the background selection feature in the next one.  If you want to "stand out" as the admin, use a name like "Admin".
5.5 Could you add those single delete functions from WWWBoard?
No!  That is by far the most useless function in WWWBoard!  If you delete a single message in the middle of a thread, it confuses the conversation.  For example, say you have a thread like this:
  • Cool joke [SineSwiper]
    • That joke fucking sucks, you goddamn l00ser! [Mr. Flamer]
      • Get this dumbass out of here [Kuma]
      • You're the loser, so get lost... [Trixie]
    • LOL! That's really funny! [Gentz]
    • Hahaha! Now it's my turn... [Trixie]
      • Hehehe...not bad, but I like SineSwiper's better. [Gentz]
    • *LOL* [El Kabong]
Now, if you click on Mr. Flamer's message and delete via "Delete this Message" or RPGAdmin, you'll see this:
  • Cool joke [SineSwiper]
    • LOL! That's really funny! [Gentz]
    • Hahaha! Now it's my turn... [Trixie]
      • Hehehe...not bad, but I like SineSwiper's better. [Gentz]
    • *LOL* [El Kabong]
It works fine.  All of the other messages stay there.  However, WWWBoard's single delete function does this:
  • Cool joke [SineSwiper]
    • Get this dumbass out of here [Kuma]
    • You're the loser, so get lost... [Trixie]
    • LOL! That's really funny! [Gentz]
    • Hahaha! Now it's my turn... [Trixie]
      • Hehehe...not bad, but I like SineSwiper's better. [Gentz]
    • *LOL* [El Kabong]
WTF?  First, Trixie is laughing at my joke, and now she's calling me a loser?!  All in the same thread?  The feature makes absolutely no sense.  The same goes for the Delete by Date/Author/Number functions.  (It's one of the many indications that Matt Wright didn't know what the hell he was doing when he invented WWWBoard.)
5.6 Can you put a "NEW" tag on new messages?
Does anybody ever notice the date color stamping, or is it just me?
5.7 What about an "e-mail password" option for users that forget their password?
That's a great idea, but since the passwords are encrypted, there's no way to decrypt them.  See, all UNIX encryption techniques (including the crypt function on Perl) use a one-way encryption method.  In order to check passwords, the response is encrypted and compared with the encrypted password.  So, no I can't code the script to check and see what password you use.  Not even admins know that information (unless they change it themselves).

However, the password cookies make things easier so you don't have to enter in your password every time.  Yes, you're more likely to forgot your password because of that, but hey...nobody's perfect!

5.8 Why are you so picky about what features get put in the script?
Really I'm not.  In fact, I'm glad to add almost any feature you suggest.  But, I have to force some quality control to make sure it doesn't become bloated with useless features.  At this point, I'm really searching for things to put in the script because I think they are all there :)