Ensure that the web server, PHP and relevant modules, and MySQL are installed, enabled and configured.

Create the database

Create an empty database to use for Classroombookings. It's easy to do this in a management interface like phpMyAdmin, Adminer or HeidiSQL, but it can also be done through the command line:

$ mysql -u root -p
Enter password:
mysql> CREATE DATABASE crbs;
mysql> GRANT ALL PRIVILEGES ON crbs.* to 'crbs_user'@'localhost' IDENTIFIED BY 'P@55w0rD';

Make a note of the username, password and database name that you used, they will be needed later.

Extract files

The Classroombookings files need to be placed on the web server, ideally in their own directory. For example,

If you have command line access to the web server, you can copy the zip file to an appropriate directory, and extract it.

If you do not have command line access, extract the zip file to a folder on a computer, then use a file transfer utility such as WinSCP or FileZilla, to transfer all of the files to the chosen directory on the web server.

Edit configuration

There are two configuration files that need to be edited with the correct details for your setup. There are example versions at system/application/config/config.default.php and system/application/config/database.default.php. Rename these to config.php and database.php.

Edit both of the files and change to suit your configuration, as outlined below.


Update the two variables to reflect your installation URL and the use of clean URLs. If you are not using clean URLs, leave index_page as it is.

Note: The base_url value must end with a forward slash.

// Full URL to your installation
$config['base_url'] = '';

// Empty string if using mod_rewrite in .htaccess to enable clean URLs
$config['index_page'] = 'index.php';


Change the values here to match your database configuration - the database details from earlier should be entered into here.

$db['default']['hostname'] = 'localhost';
$db['default']['username'] = 'crbs_user';
$db['default']['password'] = 'password';
$db['default']['database'] = 'crbs';
$db['default']['dbdriver'] = 'mysql';
$db['default']['dbprefix'] = '';
$db['default']['active_r'] = TRUE;
$db['default']['pconnect'] = FALSE;
$db['default']['db_debug'] = TRUE;
$db['default']['cache_on'] = FALSE;

Clean URLs (optional)

If you are using the Apache web server, classroombookings supports clean URLs (removing index.php from them) using mod_rewrite and the .htaccess file.

To eable this, rename _.htaccess to .htaccess.

Edit .htaccess and change the URL for the RewriteBase entry to reflect where classroombookings is installed.

If installed at a subdirectory, make sure it has a leading and trailing forward-slash. If it's installed at a subdomain or at the 'root' level, it should just be a single forward slash.

For example, if classroombookings was installed at then you need to change the RewriteBase entry to reflect the installation path as in this example:

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /classroombookings/
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php/$1 [L]

Filesystem Permissions

The web server will need write permissions to the folders listed below, in order to allow photos and files to be uploaded. The example below shows how to enable this via the command line, but it should be possible to do this with a file transfer utility like WinSCP or Filezilla.

$ cd /var/www/classroombookings/
$ chmod -R 775 webroot/images/roomphotos
$ chmod -R 775 webroot/images/schoollogo
$ chmod -R 775 webroot/images/bg
$ chmod -R 775 system/cache
$ chmod -R 775 temp

In the above commands, "cd" into the folder where classroombookings has been extracted to (in tihs example, it is /var/www/classroombookings).

Run installation procedure

Using a web browser, navigate to the URL where you installed classroombookings. You should be presented with the installation page.

Complete the required fields, and click Install.

Once the install process has finished, you will need to remove a file from the classroombookings directory. Using the file transfer utility or the command line, remove system/application/controllers/install.php.