How to Install Booked Scheduler on Ubuntu 16.04
Booked is an open source web based application specially designed to improve scheduling and manage resource utilization. It is written in PHP and uses MySQL or MariaDB to store its data. It is a simple and powerful scheduler with flexible layouts, administrative backend and custom rules. Booked comes with lots of features including reservation start and end reminders, user-based security, flexible quota system, export to Outlook, reservation reminders, and much more.
- A Vultr Ubuntu 16.04 server instance.
- A sudo user.
Step 1: Update the System
First, update your Ubuntu server to the latest version.
sudo apt-get update -y sudo apt-get upgrade -y
Once your system is up-to-date, restart the system and login with
Step 2: Install LAMP
Before starting, you will need to install
MySQL and other PHP libraries on your system.
You can install all of them with the following command.
sudo apt-get install apache2 apache2-bin apache2-data libaio1 libapache2-mod-php7.0 libapr1 libaprutil1 libdbd-mysql-perl libdbi-perl libhtml-template-perl libmysqlclient18 libterm-readkey-perl libwrap0 ssl-cert tcpd mariadb-server php7.0 php7.0-cli php7.0-common php7.0-json php7.0-mysql php7.0-readline -y
Once installation is complete, start Apache and MariaDB and enable them to start on boot time.
sudo systemctl start apache2 sudo systemctl enable apache2 sudo systemctl start mysql sudo systemctl enable mysql
Step 3: Configure MariaDB
First, you will need to secure MariaDB. You can secure it by running the
Answer all the questions as shown below.
Set root password? [Y/n] Y New password: <STRONG_PASSWORD> Re-enter new password: <STRONG_PASSWORD> 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
When all is done, connect to the MySQL shell.
mysql -u root -p
Enter your password, then create a new
user for Booked Scheduler.
MariaDB [(none)]>create database bookeddb; MariaDB [(none)]>create user booked@localhost identified by 'password'; MariaDB [(none)]>grant all privileges on bookeddb.* to booked@localhost identified by 'password'; MariaDB [(none)]>flush privileges; MariaDB [(none)]>exit;
Step 4: Install Booked Scheduler
You can download the latest version of the Booked Scheduler from the Sourceforge download page.
After downloading, extract the downloaded file.
Next, move the extracted directory to the apache web root directory.
sudo mv booked /var/www/html/
Next, change ownership of the booked directory to the
www-data user and group.
sudo chown -R www-data:www-data /var/www/html/booked
Step 5: Configure Apache for Booked Scheduler
Next, you will need to create a new Apache virtual host file for Booked Scheduler.
sudo nano /etc/apache2/sites-available/booked.conf
Add the following lines.
<VirtualHost *:80> ServerName yourdomain.com DocumentRoot /var/www/html/booked <Directory /var/www/bookedscheduler> Options -Indexes +FollowSymLinks +MultiViews AllowOverride All Require all granted </Directory> ErrorLog /var/log/apache2/booked-error.log CustomLog /var/log/apache2/booked-access.log combined </VirtualHost>
Save the file, then enable the site.
sudo a2ensite booked.conf
Next, restart the Apache service to read the new virtualhost configuration.
sudo systemctl restart apache2
Step 6: Configure Booked Scheduler
First, you will need to copy the sample configuration file.
cd /var/www/html/booked/config/ sudo cp config.dist.php config.php
Next, open the
config.php file and make some changes as per your requirements.
sudo nano config.php
Make the following changes.
$conf['settings']['default.timezone'] = 'Asia/Kolkata'; // your timezone $conf['settings']['admin.email'] = 'firstname.lastname@example.org'; // email address of admin user $conf['settings']['admin.email.name'] = 'John Smith'; $conf['settings']['script.url'] = 'http://yourdomain.com/Web'; // your domain $conf['settings']['database']['type'] = 'mysql'; $conf['settings']['database']['user'] = 'booked'; $conf['settings']['database']['password'] = ''; $conf['settings']['database']['hostspec'] = '127.0.0.1'; // your IP $conf['settings']['database']['name'] = 'bookeddb';
Save the file when you are finished.
Next, import database schema and data.
cd /var/www/html/booked mysql -u booked -p bookeddb < database_schema/create-schema.sql mysql -u booked -p bookeddb < database_schema/create-data.sql
Step 7: Access Booked Scheduler
Once the Booked Scheduler is configured. Open your web browser and navigate to the URL
http://yourdomain.com/Web/register.php. You will be redirected to the Registration page:
Provide all of the details and click on the
Register button. You will see the Booked Scheduler dashboard: