You could earn up to $300 by adding new articles!

Get Started Now

How to Install Booked Scheduler on Ubuntu 18.04

Published on: Fri, Nov 23, 2018 at 11:00 am EST

Introduction

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.

Prerequisites

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

Installation

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:

mysql_secure_installation 
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:

wget https://gigenet.dl.sourceforge.net/project/phpscheduleit/Booked/2.7/booked-2.7.2.zip
unzip booked-2.7.2.zip
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:

cgi.fix_pathinfo=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']['admin.email'] = 'your_admin@email.com';        // email address of admin user
$conf['settings']['admin.email.name'] = 'John Doe';             
$conf['settings']['script.url'] = 'http://YOUR_DOMAIN.com/Web';   // 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'] = '127.0.0.1';          // 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.

Congratulations

You've successfully installed Booked Scheduler.

Want to contribute ?

You could earn up to $300 by adding new articles!

Get started in the SSD Cloud!