PHP Forum Software Showdown Part 3: Simple Machines

Curiously, in late-September 2006, Simple Machines Forum turned three (it had been three years since 1.0 beta 1). That's curious because the current stable version of Simple Machines is 1.0.9, and there's a 1.1 RC3 out as well (as of late-October 2006).

In this article, we'll be installing Simple Machines version 1.0.9, so we can compare it to the other PHP forums that we've installed, or will be installing.

File and folder size

The zip file for Vanilla 1.0.1 weighs in at just over 1.1 MB. Wow. Of the six forums we review, this is the largest. However, this is for the full install. There's also update and upgrade versions, as well as two other compressed formats (tar.gz and tar.bz2). Unzipped, we're looking at just over 3 MB of file.


Simple Machines requires PHP 4.1.0+ and MySQL 3.23.28+. Compared to the other forums we'll be going over, these requirements are pretty low (especially the MySQL requirement). There are a number of PHP settings that must be turned on or off, for Simple Machines to function. Bossy, aren't they? If you've followed along, our server will have all of these options set as they require.

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

create database SimpleMachines;

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 'simplemachines' 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 SimpleMachines.
TO SimpleMachines IDENTIFIED BY 'simplemachines';

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

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

Now, let's install Simple Machines.

Installing Simple Machines

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

Since we're installing locally, we don't have to worry about permissions. So, once Simple Machines has been decompressed, navigate to the Simple Machines root folder in your browser. Since you haven't setup Simple Machines yet, it will redirect you to the installer, which is located at, in my install, http://localhost/projects/simplemachines/install.php.

You'll be prompted for Basic and MySQL Server settings. I left the Basic Settings as they were. MySQL Server Settings have been started, we just need to confirm and finish them.

MySQL server name: localhost
MySQL username: SimpleMachines
MySQL password: simplemachines
MySQL database name: SimpleMachines
MySQL table prefix: smf

Once you proceed, you should now be able to create your account. As before, I used the same username and password as I used in the previous forum installs.

Your username: admin
Password: cbe15b
Password: cbe15b
Email Address: [email protected]

You'll also need to enter in the MySQL database password, which is the same as you used before (simplemachines in my case). With that, finish up. You should be told that the installation process is complete, and you can now delete the install file (possibly using the installer). You'll be automatically logged in. If install.php still exists, you'll be told so.

How's the code look?

Unfortunately, Simple Machines is very table heavy. Combined with the fact that they don't have summaries, the code isn't the cleanest. In addition, links use ids that start with numbers, which is not that good of a thing.

Inside, the code looks pretty darn good.

Default layout and administrative interface

Once installed, Simple Machines setups up one category and one topic (with one post). That's nice.

Unfortunately, the look is very, very, boxy. Some people like this, but I like things that flow a little more. There is another theme installed by default, which looks much better.


Checking for updates is quite easy from the interface. From the looks of it, upgrading is just as easy, since there's a separate file. Wow.

The temporary conclusion

I've used Simple Machines before on Fractovia. I don't really care for it, since it feels and looks clunky. On the bright side, no configuration files to manually update. Thus far, three reviews down, I'm siding heavily with Vanilla.

But, 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.