In the following tutorial we are going to show you how you can install and configure LAMP (Linux Apache MySQL and PHP) on your CentOS 6 VPS and run your own, support ticketing system powered by osTicket.
What is osTicket?
It is an open source support ticketing system. It seamlessly routes inquiries created via email, web-forms and phone calls into a simple, easy-to-use, multi-user, web-based customer support platform.
What you need to run osTicket on your Linux Virtual Server?
- A Webserver like Apache
- PHP server version 5.3 or higher
- mysqli PHP extension
- gd PHP extension
- gettext PHP extension
- imap PHP extension
- json PHP extension
- mbstring PHP extension
- xml PHP extension
- MySQL Database server version 5.0 or higher
For this tutorial we are using one of our SSD VPS Hosting Plans, installed with a minimal CentOS 6 base installation.
INITIATE A SCREEN SESSION
Before proceeding any further, SSH to your server and initiate a screen
session using the following command:
## screen -U -S osticket
UPDATE THE CENTOS SYSTEM
Next thing to do, is to always make sure your CentOS VPS is fully up-to-date using:
## yum update
INSTALL AND SET-UP LAMP
Since osTicket requires a webserver, a database server and a php server, you will have to set-up these on your ssd virtual server. Let’s start with the webserver, then the php server and the extensions required by osTicket and finally the database server.
INSTALL APACHE
Install the Apache webserver, add it to your server’s start-up and start it up using the commands below:
## yum install httpd -y ## chkconfig --levels 235 httpd on ## service httpd start
OK, you can now try to navigate to http://yourdomain.tld (which should be resolving to your VPS IP) and you should see Apache’s default page in your browser.
INSTALL PHP
Proceed with the PHP installation using the command below:
## yum install php php-{cli,common,gd,mysql,imap,mbstring,xml} -y
Test your PHP installation is OK by creating info.php
file in your webserver’s document root in /var/www/html
using:
## echo -e "<?php\n\tphpinfo();\n?>" > /var/www/html/info.php
once the info.php
file is created, reload Apache using:
## service httpd restart
Now open the info.php
file in your browser (http://yourdomain.tld/info.php) and you should see various information about your PHP installation.
INSTALL MySQL
Install the MySQL database server, add it to your system start-up and start it up using the commands below:
## yum install mysql mysql-server -y ## chkconfig --levels 235 mysqld on ## service mysqld start
Next, you may want to run MySQL mysql_secure_installation
post installation script by running the following in your terminal:
## mysql_secure_installation Set root password? [Y/n] Y 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
osTicket INSTALLATION
At the time of writing this article, osTicket is at version 1.9.2
. That being said, always make sure you get the latest version available and also be sure to change the relevant sections in the commands below:
## mkdir -p /opt/osticket ## wget http://osticket.com/sites/default/files/download/osTicket-v1.9.2.zip -P /tmp ## unzip -d /opt/osticket /tmp/osTicket-v1.9.2.zip
ok, next create a symbolic link in /var/www/html/support
to osTicket upload directory in /opt/osticket/upload
using the following command:
## ln -s /opt/osticket/upload /var/www/html/support
At this point you are somewhat ready to start the installation of osTicket, but let’s configure Apache Vhost Directive and use support.mydomain.com
to access the osTicket installation on your ssd virtual server.
CREATE APACHE VHOST
First, make sure name-based virtual hosting is enabled in your Apache webserver. This is usually done by uncommenting NameVirtualHost *:80
in your main Apache configuration file in /etc/httpd/conf/httpd.conf
. You can use your favorite editor to edit the configuration file or use the command below to enable this option if it’s not already enabled:
## sed -i "/^#NameVirtualHost \*:80$/ s/#NameVirtualHost \*:80/NameVirtualHost \*:80/" /etc/httpd/conf/httpd.conf
Next, append the section below to /etc/httpd/conf/httpd.conf
:
<VirtualHost *:80> DocumentRoot /var/www/html/support ServerName support.mydomain.com ServerAlias www.support.mydomain.com <Directory "/var/www/html/support"> AllowOverride All </Directory> ErrorLog logs/support.mydomain.com-error_log CustomLog logs/support.mydomain.com-access_log common </VirtualHost>
of course, make sure you replace support.mydomain.com
with your actual (sub)domain name. Also, do not forget to restart apache using service httpd restart
for the changes to take effect.
CREATE MySQL DATABASE
You also need to create a database for osTicket, so do it using the following commands:
## mysql mysql> create database support; mysql> grant all on support.* to support@localhost identified by 'support'; mysql> \q
this will create a new database named as support
and will grant all permissions to a user named support
with password support
. Feel free to change these according to your needs.
FINALIZING THE INSTALLATION
Run the following commands to finalize the installation of osTicket:
## cd /var/www/html/support ## cp include/ost-sampleconfig.php include/ost-config.php ## chown apache: -R /var/www/html/support /opt/osticket
and run the osTicket web installer at http://support.mydomain.com
.
after you have completed the installation, for security reasons it is best to remove the setup/install.php
script using:
## rm -f /var/www/html/support/setup/install.php
Of course you don’t have to do any of this if you use one of our Linux VPS Hosting services, in which case you can simply ask our expert Linux admins to install osTicket for you. They are available 24×7 and will take care of your request immediately. You can also read How to install LAMP on CentOS 7 for new updates.
PS. If you liked this post please share it with your friends on the social networks using the buttons on the left or simply leave a reply below. Thanks.
Sometimes SELinux blocks write to ost-config.php. You can both temporarily disable it or just make a SELinux module.
SELinux Error:
SELinux is preventing httpd from write access on the file /opt/osticket/upload/include/ost-config.php.
SELinux Fix (Run as root or sudo):
chcon -R -t httpd_sys_rw_content_t ‘/opt/osticket/upload/include’
[Wed Dec 26 22:13:58 2018] [error] [client 10.8.13.243] PHP Fatal error: Only variables can be passed by reference in /opt/osticket/upload/include/class.plugin.php on line 555
Try to upgrade your PHP version. Use PHP 5.6 or higher.