Learn How To Install Booked Scheduler on Ubuntu 18.04
Table of Contents
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
accessunzip
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.
Need help?
Do you need help setting up this on your own service?
Please contact us and we’ll provide you the best possible quote!