Table of Contents
Was this article helpful?
Try Vultr Today with

$50 Free on Us!

Want to contribute?

You could earn up to $600 by adding new articles.

How to Install Booked Scheduler on Ubuntu 18.04

Last Updated: Fri, Nov 23, 2018
Linux Guides Server Apps Ubuntu


Booked Scheduler is an open source application that is designed to help users schedule processes and manage allocated resources. It is a web based application that runs using MariaDB and is written in PHP.

That said, it is quite powerful - layouts are flexible and the administrator panel is user friendly. Other features include reminders, quotas, reservations and more.


In order to install Booked Scheduler, you'll need the following:

  • Ubuntu 18.04/18.10 (a 64-bit system is required)

  • root access

  • unzip


Before we begin installation, run the following command to update your existing packages:

apt-get update -y

This may take a few minutes depending on the number of packages you have.

Once the update process is complete, we'll need to install a LEMP stack:

apt-get install nginx php-fpm -y

service nginx start

Verify that Nginx is installed by visiting http://YOUR_SERVER_IP. It will display a page titled "Welcome to Nginx."

Install MariaDB by running the following command:

apt-get install mariadb-server mariadb-client -y

Configure MariaDB by performing the following commands. If you are prompted to enter a password, simply press ENTER:


Set root password? [Y/n] Y

New password: (enter a password)

Re-enter new password: (repeat the password)

Once MariaDB updates the password, you will see the following:

Password updated successfully!

Reloading privilege tables..

 ... Success!

By default, a MariaDB installation has an anonymous user, allowing anyone to log into

MariaDB without having to have a user account created for them.  This is intended only for 

testing, and to make the installation go a bit smoother.  You should remove them before

moving into a production environment.

For the rest of the prompts, enter Y and ENTER.

Remove anonymous users? [Y/n] Y


Disallow root login remotely? [Y/n] Y


Remove test database and access to it? [Y/n] Y


Reload privilege tables now? [Y/n] Y

Upon successful completion, you will see the following output:

Thanks for using MariaDB!

Now, we'll need to create a database and user for Booked Scheduler:

mysql -u root -p

Enter your password when prompted.

Create the database and user:

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

MariaDB [(none)]>create database bookedscheduler;

MariaDB [(none)]>exit;

Download & Install Booked Scheduler:



mv booked /var/www/html/

Configure nginx & php-fpm:

nano /etc/php/7.2/fpm/php.ini

Locate the following line, remove the semicolon and replace 0 with 1:


Now, restart php-fpm:

 service php7.2-fpm restart

We will now edit our nginx config to pass PHP requests to php-fpm:

nano /etc/nginx/sites-available/default

Paste the following before the end of the first server block:

location ~ \.php$ {

        fastcgi_pass unix:/run/php/php7.2-fpm.sock;


location ~ /\.ht {

    deny all;


Modify the index parameter as well:

index index.html index.htm index.php;

Finally, modify the root parameter:

root /var/www/html/booked;

Configure Booked Scheduler:

cd /var/www/html/booked

nano config/config.dist.php

Change the following parameters:

$conf['settings']['default.timezone'] = 'America/Toronto';        // your timezone

$conf['settings'][''] = '';        // email address of admin user

$conf['settings'][''] = 'John Doe';             

$conf['settings']['script.url'] = '';   // your domain

$conf['settings']['database']['type'] = 'mysql';

$conf['settings']['database']['user'] = 'root';

$conf['settings']['database']['password'] = '(CHANGE_ME)';        // your database password

$conf['settings']['database']['hostspec'] = '';          // your IP    

$conf['settings']['database']['name'] = 'bookedscheduler';

Note: Make sure to replace (CHANGE_ME) with your database password.

Save and exit using CTRL + O, followed by ENTER.

Rename config.dist.php to config.php:

mv config.dist.php config.php

We will now populate the database:

mysql -u root -p bookedscheduler < database_schema/create-schema.sql

mysql -u root -p bookedscheduler < database_schema/create-data.sql

Finally, navigate to your server's IP and register the administrator account.


You've successfully installed Booked Scheduler.

Want to contribute?

You could earn up to $600 by adding new articles.