PHP Forum Software Showdown Part 2: Vanilla

While the Vanilla forum's are fairly unknown, it's been around for a little over a year. “Vanilla is an open-source, standards-compliant, multi-lingual, fully extensible discussion forum for the web.” The version we'll be installing, 1.0.1, was released in late-August 2006.

File and folder size

The zip file for Vanilla 1.0.1 (which is the only download type) weighs in at just under 400 KB. Unzipped, it's almost 1.2 MB in size. Overall, that's pretty small.


Vanilla requires PHP 4.1+ and MySQL 3.23+. Compared to the other forums we'll be going over, these requirements are pretty low (especially the MySQL requirement).

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 Vanilla, we'll create a database called Vanilla.

create database Vanilla;

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 'vanilla' 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
ON Vanilla.
TO Vanilla IDENTIFIED BY 'vanilla';

The first line, “GRANT select, insert, update, delete, index, alter, create, drop”, states what privileges the user will be granted. The next line, “ON Vanilla.”, states what the privileges are applied to. Finally, “TO Vanilla IDENTIFIED BY 'vanilla';” 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 = OLD_PASSWORD('vanilla') WHERE User = 'Vanilla';

If this query is OK, and it works, type exit, and press Enter. Now attempt to login to the Vanilla 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 vanilla. Yippee.

Now, let's install Vanilla.

Installing Vanilla

First, unzip the downloaded zip file. The files are all included in a Vanilla.1.0.1 folder. For this guide, we'll be keeping it in that folder, since we'll be installing a number of forums, but changing the name to remove the version information.

Once Vanilla has been decompressed, navigate to the Vanilla root folder in your browser. Since you haven't setup Vanilla yet, it will redirect you to the installer, which is located at, in my install, http://localhost/projects/vanilla/setup/index.html.

Here, there's a couple of options. You can either install fresh (which is what we'll be doing) or find out how to upgrade from a previous version. For now, let's click on the link to “install a completely brand new version of Vanilla”. These steps will walk you through the setup almost completely.

First, you'll need to assure that permissions have been setup correctly on files and folders. We're okay in this respect, so check the permissions and continue.

Next, you'll need to enter in information regarding MySQL. If you've been following along, these are as follows.

MySQL Server: localhost
MySQL Database Name: Vanilla
MySQL User: Vanilla
MySQL Password: vanilla

Click on the link to continue.

Finally, you'll need to create an administrative account, setup a contact email, and confirm cookie options. What follows are my options, but customize as needed. Note that for password, I simply used the password I was given for bbPress.

Username: admin
Password: cbe15b
Support Contact Name: James Skemp
Support Email Address: [email protected]
Forum Name: Vanilla
Cookie Domain: localhost
Cookie Path: /projects/vanilla/

One final click, and you're ready to go. You can either login, as they direct, or just take a look at the main page. http://localhost/projects/vanilla/

How's the code look?

All-in-all, the code validates beautifully, and is a pleasure to read. The random code files I pulled up were extremely well documented. I've rarely seen code such as this.

Default layout and administrative interface

Like the code, the default layout is beautiful. Simple, simple, simple. The administrative interface uses the same wrapper as the main site, so ditto for it. And, what's this, no tables?

Unfortunately, entering into some options, you lose your left-side navigation, and there's no way to go back via a link. Fortunately, this isn't the case for all of the options.

No forums or topics are already setup, for better or worse. On the one hand, it makes clean-up easy, but it also means you have to do this yourself just to get a look.


Checking for updates is quite easy from the interface. Unfortunately, upgrading basically involves reinstalling Vanilla. If you've made modifications, you'll need to re-add them. However, they do say that you can see what files have changed, which means you can do a compare to add in the new changes. Not too shabby.

The temporary conclusion

I like Vanilla based on my first impression. Editing configuration files is no fun, especially for people who can't code. Vanilla makes all of this really easy.

Yet, on the other hand, it's MySQL connection step doesn't provide much help to the person who doesn't know any of this. Default to localhost, since that will usually be what the user needs.

Before we dig any further, we'll need to install some more forums.

Stay tuned for the next PHP Forum review.

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