Open Source

DIY: An open source CMS for every level of user

Small businesses can use Fork CMS to gain a powerful online presence, or as an internal tool for collaboration, documentation, and making work flow.

A Content Management System (CMS) tool can bring a lot to the table, whether your business uses it for in-house documentation/communication or for building a portal for customers/clients. If your small business doesn't have the budget to pay for hosted CMS services, you should take a look at Fork CMS. The open source CMS is easy to install, works wonders with SEO, and plays well with tools such as Campaign Monitor and Google Analytics. In this piece, I show how to get Fork CMS up and running; in future articles, I will explain how to begin the process of working with pages, adding modules, and theming.


  • PHP 5.2 or higher (safe_mode=Off)
  • These PHP extensions should be installed and enabled: cURL, SimpleXML, SPL, PDO (with MySQL driver), mb_string, iconv, and GD2 graphics library.
  • MySQL 5.0 or higher
  • Apache 2.0 with .htaccess, mod_rewrite, mod_expires (optional but recommended), mod_deflate (optional) enabled.

Fork CMS features

  • User-friendly interface
  • Plenty of pre-installed apps and modules included
  • Easily themeable
  • Easy email set up (using either PHP's built-in email module or SMTP)
  • Included Blog module
  • Strong community support

Installing Fork CMS

For many web-based tools served up on Apache, I generally instruct people to create a new sub-directory within the document root — that is not the case here. Fork CMS needs to have its archive unpacked within the document root (in the case of my Ubuntu server, /var/www/). So download the tar file from the Fork CMS download page, move it into the document root, and then upack the file. The command to unpack the file is sudo unzip /var/www/ (where XXX is the release number). This will create a new directory called forkcms-forkcms-xxx (where xxx is a random string). Now follow these steps:

  1. Change into the newly created directory.
  2. Move everything from the newly created directory into the document root with the command: sudo mv * ../.
  3. You will find two hidden files (.htaccess and .gitignore) that need to be moved to the document root.
  4. Change out of the forkcms-forkcms-xxx directory and into the document root.
  5. Give write permissions (chmod -R ugo+w) to these directories: install, library, frontend, and  backend.
  6. Configure Apache so that mod_rewrite is being used. To do this, open a terminal window and issue the command sudo a2enmod rewrite, which will enable the mod_rewrite module for use. With that module in use, Apache has to be configured to allow the rewrites to happen. This is done by editing the /etc/apache2/sites-available/default file. Look for the section:

Options Indexes FollowSymLinks MultiViews

AllowOverride None

Order allow,deny

allow from all

and change it to:

Options Indexes FollowSymLinks MultiViews

AllowOverride All

Order allow,deny

allow from all

Restart Apache with the command sudo service apache2 restart.

Finally, a database must be created. Use a tool like MySQL Workbench, or use the command line (if your mysql command line kung fu is up to par) and create a database to be used for Fork CMS. Name the database "fork" (no quotes). Make sure the database is empty, or the installer will fail.

Setting up Fork CMS

It's time to fire up the web-based installer and walk through the incredibly simple setup.

Open your web browser and point it to http://ADDRESS_TO_SERVER/install/ (where ADDRESS_TO_SERVER is the address of your server hosting Fork CMS). The first screen you'll see will inform you if everything is set up properly to continue (Figure A). Figure A

Above these warnings will be a warning regarding the requisites for installation. If anything is not met or throws a warning, you will not be able to continue.
The next interactive window (Figure B) allows you to configure Fork CMS for languages. Figure B

Make sure you choose these settings properly; otherwise, your URLs will possibly be broken if you make changes.
Figure C shows the screen that allows you to enable the various modules included with Fork CMS. You can also enable debug mode and include sample data. Figure C

If you forget to select a module, you can enable them post-install.

I recommend including the sample data, because it gives you an idea how data is added to the system.

The next screen (Figure D) is for the database setup. This is where you will enter the standard information for a web-based, database-driven tool. Figure D

The only thing you should have to change is the Database name, Username, and Password.
With the database configuration out of the way, it's time to configure the administrator user. Simply enter the email address and password (Figure E) and then confirm the password. Figure E

These are your login credentials.

Click the Finish Installation button, and you're ready to rock.

With the installation complete, click the Log In To Fork CMS button (Figure F) and log in. Now you can begin to set up your CMS. Figure F

Click the View Your New Website or Log In To Fork CMS button.

You should also be able to visit your site by going to http://ADDRESS_TO_SERVER, where ADDRESS_TO_SERVER is the actual address.

In my next post about Fork CMS, I'll tackle how to build your site. For now, I recommend poking around your installation and getting used to the layout of the administrator window.


Jack Wallen is an award-winning writer for TechRepublic and He’s an avid promoter of open source and the voice of The Android Expert. For more news about Jack Wallen, visit his website

Editor's Picks