PHP Forum Software Showdown Part 5: PunBB

Almost there. This time, we'll be looking at PunBB. First, I did donate to PunBB development some time ago. At the time, I liked PunBB, and received some great support. It's been sometime since that time, so I don't know how things stand.

Anywho, “PunBB is a fast and lightweight PHP-powered discussion board. It is released under the GNU General Public License. Its primary goals are to be faster, smaller and less graphically intensive as compared to other discussion boards. PunBB has fewer features than many other discussion boards, but is generally faster and outputs smaller, semantically correct XHTML-compliant pages.”

In this article, we'll be installing PunBB version 1.2.14, which is the latest version, as of October 15, 2006.

File and folder size

The zip file for MyBB weighs in at around 250 KB. Unzipped, we're looking at a bit over 800 KB. The zip file does not contain a single folder, but rather three, so you'll want to unzip to a single PunBB folder. PunBB is also available in gzip and bz2 formats.


Best requirements thus far. PHP 4.1.0+ and MySQL 3.23.17+, or PHP 4.3.0+ and PostgreSQL 7.0+, or SQLite. Not to shabby, as this is the first we've reviewed that supports something other than just MySQL for the database.

Installing on our local Web server

Unlike past articles, for these forum reviews we're going to create the necessary users and databases using the command line interface of MySQL. If you're going to be installing these forums to a remote system, just create the user(s) and database(s) as usual (and that goes for if you're installing it locally as well).

Creating the user and database via the command-line

First, you'll need to login to MySQL. Open up the Run prompt by going to Start > Run … and type cmd, then press Enter. At the prompt, if you've setup MySQL correctly, you can type the following command, followed by pressing Enter.

mysql -h localhost -u root -p

At this point, you'll be prompted to enter your password, which you'll have already setup. Enter your password and press Enter.

At this point, you're logged into MySQL. Now, we can create our database, create our user, and grant the user privilege to modify the database we created.

Since we're installing PunBB, we'll create a database called PunBB.

create database PunBB;

At this point, you'll be told that “Query OK, 1 row affected”, followed by the execution time.

Now, we'll create a user with privileges to access the database. Note that other than the bold text, this command is case-insensitive. Also, you may want to change 'punbb' to something different (as this is the user's password).

Before you enter this, look it over, and then read the paragraph following, for an explanation.

GRANT select, insert, update, delete, index, alter, create, drop

The first line, “GRANT select, insert, update, delete, index, alter, create, drop”, states what privileges the user will be granted. The next line, “ON PunBB.”, states what the privileges are applied to. Finally, “TO PunBB IDENTIFIED BY 'punbb';” states what user will get these privileges. Since the user doesn't exist yet, we're also giving a password to the user.

If the query is OK, enter the following command.

UPDATE mysql.user SET Password = OLDPASSWORD('punbb') WHERE User = 'PunBB';

If this query is OK, and it works, type exit, and press Enter. Now attempt to login to the PunBB user. Once you've logged in, enter the following command.

show databases;

You should be given an ASCII table that shows there's a database of punbb. Yippee.

Now, let's install PunBB.

Installing PunBB

First, unzip the downloaded zip file. The files are within three folders in the zip file, so make sure you create a folder to dump these into. I'll be using one called punbb.

Since we're installing locally, we don't have to worry about permissions. So, once PunBB has been decompressed, navigate to the PunBB root folder in your browser. You'll be told that config.php doesn't exist, and be given a link to the install file. http://localhost/projects/punbb/install.php

There's a form to fill-out, so let's get to it.

You can select your database type, which we'll leave at MySQL Standard. Database server hostname can be left at localhost.

Database name: PunBB
Database username: PunBB
Database password: punbb
Table prefix: punbb

Administrator username: admin
Password: cbe15b
Administrator's e-mail: [email protected]
Base URL: http://localhost/projects/punbb

At this point, start the installation. Once that's done, you'll need to copy some text into a new config.php file, and then you can hit the main forum page at http://localhost/projects/punbb/ (for example).

How's the code look?

Like most other forums, PunBB uses a table, and doesn't care to declare a summary. However, that looks like the only issue.

Internally, code is commented pretty darn well. Not too shabby at all.

Default layout and administrative interface

Once installed, PunBB setups up one category, one forum, and one post.

Unfortunately, the look is very boxy, and reminds me of the look of a number of other forums. There's really not that much, graphically, that separates it from the others. The look is very similar to MyBB, but much flatter.


Checking for updates, amongst other things, is quite easy from the interface. Unfortunately, when I attempted to check for updates, Apache started choking on me, specifically with problems in the php4ts.dll (as it did with MyBB).

They do have archived files with the changed files only available for download, which is quite nice.

The temporary conclusion

PunBB is pretty much like the others that we've reviewed. Until we get into the last forum, and start comparing all six, we'll leave it at that.

Stay tuned for the next PHP Forum review.

View all of the steps to creating a local Web server, for development.