If your business develops or sells software and services, chances are that you need to use a help ticket system. If you don’t, how will you keep track of issues, and how will you even allow users, clients, consumers or developers to submit issues regarding the software and services you create? That can be a real challenge.
SEE: 40+ open source and Linux terms you need to know (TechRepublic Premium)
That’s why it’s important to have a ticketing system available. As there is a never-ending supply of ticketing systems, which one do you use? One option is the open source osTicket. I want to walk you through the steps for installing osTicket on Ubuntu Server 20.04.
What you’ll need to install osTicket
To successfully install osTicket you will need a running instance of Ubuntu Server 20.04 and a user with sudo privileges. That’s it: Let’s get this help system up and running.
How to install the dependencies
The first thing to do is install the required dependencies. Log in to your Ubuntu instance and install the first pieces of the puzzle with:
sudo apt-get install ca-certificates apt-transport-https software-properties-common git -y
Next, we need to add a repository, so we can install PHP 8. This is done with:
sudo add-apt-repository ppa:ondrej/php
Update apt with:
sudo apt-get update -y
Install PHP, which will also pick up Apache with the command:
sudo apt-get install php8.0 libapache2-mod-php8.0 php8.0-common php8.0-fpm php8.0-cgi php8.0-bcmath php8.0-gd php8.0-imap php8.0-intl php8.0-apcu php8.0-cli php8.0-mbstring php8.0-curl php8.0-mysql php8.0-xml unzip -y
Enable PHP 8.0 FPM with the commands:
sudo a2enmod proxy_fcgi setenvif
sudo a2enconf php8.0-fpm
Reload Apache with:
sudo systemctl reload apache2
We’ll now install the MariaDB server with:
sudo apt-get install mariadb-server -y
Secure the MariaDB installation with the command:
Make sure to give the database admin user a strong password.
How to create the database
Access the MariaDB console with:
Create the necessary database with the command:
CREATE DATABASE osticketdb;
Create the osticketuser with:
CREATE USER 'osticketuser'@'localhost' IDENTIFIED BY 'PASSWORD';
Where PASSWORD is a unique and strong password.
Grant the required privileges with:
GRANT ALL PRIVILEGES ON osticketdb.* TO osticketuser@localhost IDENTIFIED BY "PASSWORD";
Where PASSWORD is the same password you created above.
Flush the privileges and exit with:
How to download and prepare osTicket for installation
Clone the osTicket repository with:
Change into that newly-created directory with:
Create the required directory with the command:
sudo mkdir -p /var/www/html/osticket
Prepare the osTicket directory with:
sudo php manage.php deploy --setup /var/www/html/osticket/
Change into the osTicket directory:
Copy the config file and change the permissions with the two commands:
sudo cp include/ost-sampleconfig.php include/ost-config.php
sudo chmod 0666 include/ost-config.php
How to access the web installer
Open a web browser and point it to http://SERVER/osticket, where SERVER is the IP address or domain of the hosting server. You will be greeted by the installer, which will first check to make sure you’ve installed the necessary requirements (Figure A).
Click Continue, and you’ll see the basic installation page (Figure B).
Fill out all of the necessary information. Remember, for the database, we set it up like this:
- MySQL Database: osticketdb.
- MySQL User: osticketuser.
- MySQL Password: password created for the osticketuser.
After filling out the information, click Install Now.
When the installation finishes, you’ll see the summary page (Figure C), that includes the final command you must run, which is:
sudo chmod 0644 /var/www/html/osticket/include/ost-config.php
You’ll also see the links you can use to access the various osTicket tools.
An open source help desk system
You now have a powerful help desk system that allows the submission of bugs and other issues for your software or service. osTicket is a powerful and user-friendly help desk system which will go a long way to keep your developers and other staff members working effectively to keep the workflow running smoothly.