Visit Gibbon Download page to download the Gibbon Core.
- Apache 2 (with mod_rewrite)
- PHP 7.0 or above (with PDO, gettext, CURL, GD, ZIP. Recommended to turn display_errors off.)
- MySQL 5 (collation set to utf8_general_ci)
After download and unzipping:
- Copy all files to your server, choosing either the root directory or a sub-folder within it.
- Navigate your browser to the folder on your server where Gibbon has been located.
- Follow the on-screen instructions in Gibbon’s new installer.
- Check out the Getting Started With Gibbon page for more information.
Note: If you want to help test and develop Gibbon, you can select the Cutting Edge Code option in the installer. This allows you to run the latest code from our GitHub repo. This is not recommended for production environments.
The video below gives an overview of the installation process:
Looking for a quick install? Download Gibbon via Softaculous.
If you are using a web hosting company that provides Softaculous via CPanel, you can follow the instructions in the video below to install Gibbon:
Post-Install & Server Config
- Set permissions of all Gibbon files so they are not publicly writeable (e.g.
chmod -Rv 755).
- Create folder
/uploadsand set file permissions for to allow writing by web server (avoid chmod 777 for security reasons).
- Turn PHP
register_globalsoff. On shared host, use .htaccess
php_flag register_globals offto do this.
- Turn folder browsing off. On shared host, use .htaccess
- Set PHP’s
max_file_uploadsto at least the number of students in a class.
- Set PHP’s
max_input_varssetting to 5,000 (otherwise Manage Permissions breaks).
- Set PHP’s error to be
error_reporting = E_ALL & ~E_NOTICEor less aggressive.
- Set PHP to allow URLs as files with
allow_url_fopen=On(otherwise Calendar overlay in TT will not work).
- On systems that use selinux make sure to run
setsebool -P httpd_can_sendmail 1to enable Gibbon to send mail.
MySQL Database Privileges
For additional security, it’s recommended to setup a MySQL user that has the minimum required database privileges. This is a common practice for web-based apps, to ensure that, should the credentials be compromised, the MySQL user cannot escalate their access in the system.
The minimum GRANTS required for Gibbon are:
SELECT, INSERT, UPDATE, DELETE, CREATE, DROP, INDEX, ALTER, LOCK TABLES
You can view your current grants with the command:
SHOW GRANTS FOR yourusername
You can reset the grants for a user with the following commands. See the MySQL docs for more info.
REVOKE ALL PRIVILEGES ON *.* FROM 'yourusername'@'%'; GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, DROP, INDEX, ALTER, LOCK TABLES ON `yourdatabase`.* TO 'yourusername'@'%';
Cutting Edge Code
Gibbon is released in two different ways, according to our release cycle and road map:
- Stable Code - these are official releases, published through our mailing list. They may be major releases (e.g. v10.0.0) or minor releases (e.g. v10.0.01), depending on a variety of circumstances. Stable releases are available via our Download page. Stable code enforces a much slower update cycle.
- Cutting Edge Code - these are our latest code cuts, and so are not as well tested or refined as stable releases. They are not recommended for production, but do give access to the latest features, via an update cycle that is as fast as you like (or as we commit). Cutting edge code can be downloaded via the dev branches on our GitHub repo.
During installation, your Gibbon code will check its version against our servers, and determine whether it is stable or cutting edge code. You cannot change this choice through the interface (and it is not recommended to change it via Inspect Element or some other means).
If you are using Cutting Edge code, before installing Gibbon you will need to first install PHP’s dependency manager, Composer, on your server. Follow the Getting Started guides on the Composer website for more instructions about how to do this.
Using composer, navigate to your root Gibbon folder and run the
composer install command once to install all required libraries. You can also run
composer install --no-dev to exclude any libraries that are used solely for development and testing.
The update procedure for stable and cutting edge code is nearly the same: the only variable is where you download the software from.
After updating a Cutting Edge code installation, you may see a message that composer needs to be updated. To do this, navigate to your root Gibbon folder and run the
composer install command once to install or update the libraries in your vendor folder.
Installing Gibbon on Ubuntu/Debian
An installation of Pop!_OS was used to write this documentation, however, installation will be the same on most popular versions. Bear in mind that this guide will refer to the generic pacakages for each requirement. This will generally be fine as popular Linux distros such as Ubuntu and Debian will ship with stable versions of these packages, however it does help to be aware of the implications of this.
General Package Installation/Setup
Firstly, be aware these will need to be run as root so sudo/su - appropriately!
apt install apache2 php mysql-server php-gd php-mysql php-zip php-curl php-gettext php-pdo
The relevant packages will be installed, however, you still need to enable mod_rewrite on Apache.
Next, restart Apache!
systemctl restart apache2
Copy the default configuration from /etc/apache2/sites-available/000-default.conf to /etc/apache2/sites-available/gibbon.local.conf. Symlink /etc/apache2/sites-enabled/gibbon.local.conf to the copied file so it’s enabled.
cp /etc/apache2/sites-available/000-default.conf /etc/apache2/sites-available/gibbon.local.conf ln -s ../sites-available/gibbon.local.conf /etc/apache2/sites-enabled/gibbon.local.conf
Amend the configuration to your taste. In a VirtualHosts environment, change the ServerName and DocumentRoot at least. I used /var/www/gibbon.local/ as my DocumentRoot. If you’re not sure what to put there, consult the Apache documentation.
Go to the document root and copy the Gibbon files in. The download link can be found at https://gibbonedu.org/download/ . Copy the download URL then
wgetthe URL. Unzip the file (You may need to
apt install unzipto do so)
/etc/apache2/envvarsfile, you’ll find the apache user/group. Allow the extracted files to be accessible to this user. In my case, I amended these to be apache and www respectively, therefore:
chown apache:www -R /var/www/gibbon.local/ chmod 755 -R /var/www/gibbon.local/
There’s no need to set uploads to anything else in this case.
Next, we need to setup mysql:
mysql create database gibbon; create user 'gibbon'@'localhost' identified by '*password*'; grant all on gibbon.* to 'gibbon'@'localhost'; flush privileges;
A couple of PHP variables need to be set. All of the below are found in /etc/php/version/apache2/php.ini . Firstly, the max_file_uploads variable must be higher than the number of students in a class. magic_quotes_gpc and register_globals should be off short_open_tag and allow_url_fopen should be on. max_input_vars should be more than 5000 to allow manage permissions to work. You may wish to edit the error reporting value to make this less aggressive in production.
Go to your Gibbon URL, as configured in step 2. If you are using an invalid URL like I was, you may need to add a reference to your
/etc/hostsfile. If you are using Chrome to view the page, you’ll also need to specify the protocol otherwise Chrome will search for the URL. You should see the Gibbon installation page and if you followed the steps before correctly, all requirements should be satisfied.
If your school uses GSuite (Formerly Google Apps), you can enable single sign on and calendar integration via Gibbon. This process makes use of Google APIs, including OAuth, and allows a user to access Gibbon without a username and password, provided that their listed email address is a Google account to which they have access
1. Log in to the Google developer console. This requires that you have an account with administrative privileges on your G Suite domain.
2. Once logged in you need to create a new project by clicking the Create Project button:
3. In the new project set-up dialog, give your project a name. Click the Create button:
4.Click on the Credentials tab:
5. Then click Create credentials:
6. Click Choose OAuth2 Client ID:
7. If you have not already configured the consent screen, at this point you will be required to do so:
8. Fill in the details for the Product Name and click Save.
9. In the new client ID window, do the following:
- Choose Web Application.
- Set Authorised Redirect URI to http://www.your-gibbon-install/lib/google/index.php. The googleOAuth folder is in the in the lib folder of Gibbon v14.0.00 and above on your server.
- Click create client ID:
14. Everything is now set up on the Google side, so you can enter your details into Gibbon by going to Home > System Admin > Third Party Settings. The details you need to enter into are as follows.
- Google Developers Client Name
- Google Developers Redirect URI (See step 9 above)
Use details from steps 7-8 or click on the Credentials tab: For the following use: Google Developers Client ID = Yellow Google Developers Client Secret = Red Google Developers Client Name = Blue Google Developers Redirect Url = Green API Key:
15. Gibbon requires a single Google API, the Calendar API, which can be turned on via the Google Developer Console.
16. On the Gibbon home page, you should now see a Sign In With Google button, which allows users to enter the system without their Gibbon username and password.
17. When a user logs in using Google, their personal calendar, if not yet set, will be set to their primary Google Calendar.
18. In additional, the school can specify a Google Calendar for all users to have in their timetable. To set this up, go to Home > System Admin > Third Party Settings and set the School Google Calendar ID School Google Calendar ID field to the ID of a shared Google Calendar.
Install Xampp for Testing on Windows
The Gibbon school platform requires the PHP programming language and the MySQL database. The industry standard is to use the Linux operating system which runs most publicly facing web sites. However there are packages (or stacks) of software designed to make it easy to run under Microsoft Windows. Two of these are XAMPP and WAMPP. Note that both of these packages are aimed at making it easy to set up and experiment with on a local machine rather than for production use. Because of this they are designed to ignore security issues and so should not be used to run live sites. For example the default installation would allow a person with passing knowledge to login to your setup and delete all databases. So please do not use on live sites. In this tutorial, we will look at setting up XAMPP, in order to be ready to install Gibbon. Download XAMPP from the Apache Friends website https://www.apachefriends.org/index.html. There are several different versions of the install, the one used here was called xampp-win32-5.6.3-0-VC11-installer.exe When you run it you will probably get an alert similar to the following Don’t worry, it is part of the standard install process. You may then get a message that says
Click the next button and you will see a screen like the following
I recommend accepting the default, even though installing directly off the [c:](file:///c:/) root may seem a little odd. On the next screen uncheck the button after “Learn more about Bitnami for XAMPP” (otherwise it will fire up your browser and take you to the web site explaining how you install many other free web applications)
The installer is now ready to go
Now might be a good time to put the kettle on as it may take a while to unpack and install all the files depending on the speed of your computer. At the end of the install process you should see a screen similar to the following:
You do want to see the control panel so click Finish and you should see something like the following. By the way, if you ever need to run it from the file explorer the control panel program is called xampp-control.exe.
If either Apache or MySQL do not start you will need to do some web searches and trouble shooting as Gibbon cannot work without both running. To check that XAMPP really is working point your browser to http://localhost If you see a page like the following then things are going well
You can now follow the Installing Gibbon guide, using C:/xampp/htdocs/ (aka the XAMPP document root) as the location into which you place the Gibbon files.
Getting Started With Gibbon
Gibbon aims to cater to all sorts of schools, and the back end has a correspondingly large assortment of options. This can be overwhelming to start with, so this page aims to highlight the most important options when first setting up a school. The video below gives an overview of the initial setup of Gibbon, with the following text going into more detail:
In March 2021 we ran a training day with a number of sessions to help administrators setup their system. You can find the full playlist of sessions here: Gibbon Training Day 2021
Integrated into the Gibbon installer, opt to include demo data when you configure your database to see what Gibbon looks like in a fully operational school.
Before setting up the structure of your school, complete as many of the settings as possible in Admin > System Admin > System Settings. This will help ensure that you have access to as much of the system’s functionality as possible.
Use the following options in the main menu under Admin > School Admin to set up basic structures in your school.
Years, Days & Times
- Manage School Years - almost all of Gibbon’s functionality is reliant on the concept of a school or academic year: this helps you see only the information that is relevant in many views. To function your system needs a “Current” school year, and can have any number of “Past” and “Upcoming” years. Each school year has a unique “sequence number”, which shows how it is ordered in relation to other years.
- Manage Days of the Week - here you can turn on or off individual days in the week, as well as setting start and end times for your various school days.
- Manage Terms - if your school year is divided into terms or semesters, you should create one entry here for each term. Otherwise, just create a single term the same length as your school year.
- Manage Special Days - here you can specify public holidays, mid-term breaks and other school closures. This is important as it helps determine whether things like school attendance should be enabled on any given day.
- Manage Year Groups- year groups represent the way that schools divides students on the basis of age. By default, Gibbon ships with Years 7-13 preset. Use this area to add, edit and delete school years. Each year group has a unique “sequence number”, which shows how it is ordered in relation to other year groups.
- Manage Form Group - form groups (aka roll groups, home room, tutor groups) are the groups in which students have their attendance taken and/or receive pastoral care. Roll groups can contain students from a single year group, or can be mixed across years.
- Manage Departments - departments, which can be either learning areas or administrative, represent staff groupings. These are mainly used in the Planner, Departments and Library modules. To make use of this area, you will most likely want to added staff to your school (see below).
- Manage Spaces - spaces are any areas in your school that you might want to use in the timetable, including classrooms, labs, offices, sports facilities, etc.
The other settings in School Admin are not so fundamental to the running of a school, and so will not be covered here. Mostly, these are used to control the functioning of single module (e.g. Manage Student Settings).
Most users of Gibbon will fit into three main categories: staff, students, and parents. Gibbon uses roles, actions and permissions to control access to various parts of the system. Use the following options in the main menu under Admin > User Admin to set up users and access.
User Management - Access
- Manage Roles - roles in Gibbon are groupings based on what a user can do within the system. Gibbon ships with the following default roles: Administrator (that’s you), Parent, Student, Support Staff and Teacher. Add new roles according to the way you want to allow access to the system. For example, if you have some students with extended system privileges, create a new role called something like “Student Ext”.
- Manage Permissions - permissions turn individual module actions on or off for selected roles, allowing you to control who can do what to a relatively fine-grained level. Gibbon ships with sensible, common defaults, but it is worth auditing this area thoroughly to avoid nasty surprises in behaviour. For example, you probably would not want to give parents access to full student profiles, preferring instead to stick with brief profiles for parents, and full for staff.
User Management - Users
- Manage Users - with your access rights ready, you can now start adding users, and the Manage Users area lets you do this by hand. There is also an Import from File option in System Admin which allows you to upload users in bulk using CSV-formatted spreadsheets. Later on, come back to Manage Users to reset passwords, assign new roles and much more. Note that users can be assigned multiple roles, and can use the Role Switcher on their homepage sidebar to access them. If you would like users to update their own information, this can be achieved under People > Data Updater.
- Student Enrolment - students much be enrolled in the current school year if they are to appear in most areas of the system. On enrolment, students are placed into year and role groups. When the end of year arrives, use Rollover under the Admissions sub-menu to automate enrolment for the following year.
- Manage Families - staff, students and parents can all exist within families, which act as the basic mechanism for granting parent users access to information on student users.
- Manage Staff - all staff users should be registered as staff in order that they can be used in various areas of the system.
- Application Form Settings - if you are looking to reduce paper work and data entry, set up your Application Form parameters and make sure public applications are enabled. Your admissions officer (specified in System Settings above) will receive emails when new applications arrive, and can then manage these under Manage Applications.
Enabling and configuring a timetable improves staff efficiency in many of the other areas of the system (such as the planner). This is covered in more detail in the Timetabling section.
Importing Users Into Gibbon
Gibbon allows you to use a variety of spreadsheet files (including CSV) to import data, including users, other systems and sources. As of v17, there is a unified import tool, which can be accessed under Admin > System Admin in the main menu, and then Import From File in the module menu.
This new tool allows you to export a file structure, which can then be populated and imported.
Gibbon is designed on the idea that every school is different, and hopes to provide tools to meet a wide range of needs. The approach to customizing Gibbon to your school needs depends on the scope of change you’re looking to make.
1) String Replacement
Gibbon has an internal String replacement system under Admin > System Admin > String Replacement, which helps with a lot of the minor cosmetic changes and differences in terminology between one school and another.
2) User Custom Fields
The built-in User Custom Fields feature under Admin > User Admin > Manage User Custom Fields allows a fair amount of flexibility to add data a school needs.
3) Module System
Beyond the built-in tools, Gibbon’s Module system allows you to extend the system quite considerably. A module can be anything from a few pages to a whole new set of tools and table data (the Free Learning module is a great example of a single module that can transform how Gibbon is used). There are also a few hooks that can be used by modules to insert content in specific places such as the dashboard: for more info view our Module Development page. Check out available modules on our Extend page.
To install a Gibbon module:
- Download and unzip the module file.
- Copy the first-level sub-folder with the same name as the module (e.g. “Free Learning”) into /modules in your Gibbon installation.
- Browse to Admin > System Admin > Manage Modules in your Gibbon interface.
- Scroll to the bottom of the page: the module will be listed in a table, highlighted in orange.
- Click the plus icon in the table row for the new module.
- The new module will appear in Gibbon’s main menu.
To update a module:
- Download and unzip the module file.
- Copy the first-level sub-folder with the same name as the module (e.g. “Free Learning”) over the old version of the module in /modules in your Gibbon installation.
- Browse to Admin > System Admin > Manage Modules in your Gibbon interface.
- Scroll down to find the relevant module in the list of installed module: it will be highlighted in green.
- Click the package icon in the table row for the upgraded module and follow on screen instructions.
4) Fork Gibbon Source Code
With Gibbon being open-source and available through Github it’s also possible to make modifications to a forked copy and merge new versions back into it. With each new version (generally twice a year) one would merge the new version back into their Github fork and manually handle any conflicts between the two. This direction likely requires the most programming knowledge, but is certainly one option to maintain a set of changes from one version to another. As with anything open-source, if it’s a change that the developer feels could benefit other schools they can try contributing it back to the core as a pull request.
5) Feature Request System
If there is an area that many schools may be needing to customize and there is a lot of interest in it, such features can be put forward in the Feature Request category of our forum. If you try something and find it’s working well for your school be sure to share your findings on our forum.
Gibbon includes the ability to create and use custom fields for users. Once created, these fields are available for use within Admin > User Admin > Manage Users, and can be enabled to also work in the Application Form and Data Updater modules. Fields can be enabled be role category: student, staff, parent, other.
- The system will alert you of new updates to the core, when you visit System Admin.
- Note, that this does not apply to systems running Cutting Edge Code.
Use the Update action in System Admin for semi-automatic updates to the core, as follows:
- Backup your database and installation files.
- Download and unzip the latest version of Gibbon.
- Login to your Gibbon installation and go to Admin > System Admin > Update.
- Update your install base with the newly downloaded files, taking care not to overwrite any additional modules and themes you have installed.
- Refresh the Update page, and it should show there are some database updates to be run. Run these by pressing the Submit button.
- If the new version includes a lot of theme changes, you may need to refresh your page a few times to see things correctly.
- In some cases you might need to log out and back in for all changes to be effective.
Tips for updating via the command line
For step 4: Supposing you have installed Gibbon in
/var/www/html/c/you could run the following commands on your system:
- cd /var/www/html
- wget https://github.com/GibbonEdu/core/archive/v22.0.0.zip
- unzip v22.0.0.zip
- rm -rf v22.0.0.zip
- chown apache:apache -R core-22.0.0
- rsync -vua core-22.0.0/ c/
- rm -rf core-22.0.0
The above commands are for upgrading to v22. You will need to get the URL for the version to which you are upgrading here: https://github.com/GibbonEdu/core . Also, your Gibbon install may use a different directory than “c” in the rsync command. Remember to run the database update from Gibbon’s Home > System Admin > Update page.
Note that in the switch to v22 the module Roll Groups has been replaced with Form Groups. If you are updating using this method from a version prior to v22 you will need to run this command too (again assuming Gibbon is installed in
- rm -rf /var/www/html/c/modules/Roll\ Groups
- Use the Update function in System Admin > Manage Modules for semi-automatic module updates, as follows:
- Backup your database and installation files.
- Download and unzip the latest version of the module in question.
- Login to your Gibbon installation and go to Admin > Manage Modules and press the Update icon for the relevant module.
- Update your install base with the newly module downloaded files.
- Press the Submit page to update the module.
- Use the Update function in System Admin > Manage Themes for semi-automatic theme updates, as follows:
- Backup your database and installation files.
- Download and unzip the latest version of the theme in question.
- Login to your Gibbon installation and go to Admin > Manage Modules.
- Update your install base with the newly downloaded theme files.
- Reload the Manage Module page (all themes are then checked and updated in one go)
Backing Up Your Installation
With Gibbon up and running, you will want to protect your installation in case of disaster, allowing yourself to recover. Our recommendation is to use a shell script (example here for *nix servers) to copy all important files and database data to an external drive, which should be rotated to maintain online and offline copies of your data. On *nix servers, you can use cron to schedule the script to run on a regular basis (e.g. every night at 01:00):
0 1 * * * cd /home/user/ ; script_backup.sh