How To Set Up a Help Desk System with OTRS on CentOS 7

Published on March 2, 2016
How To Set Up a Help Desk System with OTRS on CentOS 7
Not using CentOS 7?Choose a different version or distribution.
CentOS 7


OTRS is an Open source Ticket Request System. It provides a single point of contact for users, customers, IT personnel, IT services, and any external organizations. The program is written in Perl, supports a variety of databases (MySQL, PostgreSQL, etc), and can integrate with LDAP directories.

In this tutorial, you will learn how to install and set up OTRS on your CentOS server.


To follow this tutorial, you will need:

Step 1 — Installing MariaDB

In this step, we’ll install the prerequisite programs for OTRS.

First, enable the EPEL (Extra Packages for Enterprise Linux) repository.

  1. sudo yum install epel-release

Then update your system.

  1. sudo yum update

In this tutorial, we’ll use MySQL for our database, so install MariaDB (which is a fork of MySQL).

  1. sudo yum install mariadb-server mariadb

You will need to change the default MySQL settings in order to make it suitable for OTRS. Open its configuration file using vi or your favorite text editor.

  1. sudo vi /etc/my.cnf

Add the following lines under the [mysqld] section, which specify the sizes of a few files.

max_allowed_packet = 20M
query_cache_size = 32M
innodb_log_file_size = 256M
. . .

Then save and close the file. Make sure you do this before you start MySQL for the first time.

Now, start MariaDB.

  1. sudo systemctl start mariadb.service

Next, secure the MySQL database.

  1. sudo mysql_secure_installation

You will be asked a few questions. You can accept the default values for all of the questions by just pressing ENTER for each, except for setting the new root password. Make a note of your root user password because you will need it later in this tutorial.

Now we have everything we need to install the OTRS application.

Step 2 — Installing OTRS

We will install OTRS using the pre-built RPM package for CentOS. First, we need to download the latest RPM from their official repository. You can browse the repository directory to determine the latest version.

  1. wget http://ftp.otrs.org/pub/otrs/RPMS/rhel/7/otrs-5.0.7-01.noarch.rpm

Next, install OTRS.

  1. sudo yum install otrs-5.0.7-01.noarch.rpm

Because OTRS is written in Perl, it uses a number of Perl modules. We can check for missing modules by using the CheckModules.pl script included with OTRS.

  1. sudo /opt/otrs/bin/otrs.CheckModules.pl

You’ll see output like this.

  o Apache::DBI......................ok (v1.12)
  o Apache2::Reload..................FAILED! Not all prerequisites for this module correctly installed. 
. . .
  o XML::LibXSLT.....................ok (v1.80)
  o XML::Parser......................ok (v2.41)
  o YAML::XS.........................Not installed! Use: 'yum install "perl(YAML::XS)"' (required - Very important)

Some modules are only needed for optional functionality, such as communication with other databases or handling mail with Chinese character sets. You can install the missing modules with the yum commands provided in the output. Feel free to go through them manually, or use the command below.

  1. sudo yum install "perl(Apache2::Reload)" "perl(Crypt::Eksblowfish::Bcrypt)" "perl(Encode::HanExtra)" "perl(JSON::XS)" "perl(Mail::IMAPClient)" "perl(ModPerl::Util)" "perl(Text::CSV_XS)" "perl(YAML::XS)"

Whenever you’re done installing modules, you can rerun the script to make sure that all the required modules have been installed.

Step 3 — Сonfiguring OTRS

In this step, we’ll configure OTRS’s database and mail settings.

First, we need to restart Apache to load the configuration changes for OTRS.

  1. sudo systemctl restart httpd.service

Now you can access the installer’s web page. Open http://your_server_ip/otrs/installer.pl in your favorite web browser. On the first screen, you will see a welcome screen with information about the OTRS offices. Click Next. The next screen will have the license, which you can accept by clicking Accept license and continue after reading.

On the next screen, you will be prompted to select a database type. The defaults (MySQL and Create a new database for OTRS) are fine, so click Next to proceed.

Database selection

Then you’ll have to enter the MySQL credentials you chose in a previous step. Click Check database settings to make sure it works.

Configure MySQL

The installer will generate credentials for the new database. There is no need to remember this generated password, so click Next to proceed.

Configure MySQL Check successful

The database will be created and you will see the successful result. Click Next.

Next you have to provide some required system settings:

  • System FQDN: A fully qualified domain name. You can set up your own host name, or you can just use your server’s IP address here.
  • AdminEmail: The e-mail address of your system administrator. Emails about errors with OTRS will go here.
  • Organization: Your organization’s name.

Leave all other options at their default values.

System settings

In order to be able to receive e-mails from users, you have to configure an incoming mail account.

Provide the necessary credentials in the Configure Inbound Mail section. For example, if you use Google as your mail provider, you can create an app password and enter the following information:

  • Inbound mail type: IMAPS
  • Inbound mail host: imap.gmail.com
  • Inbound mail user: your_email_address
  • Inbound mail password: your_app_password

To check the configuration, press the corresponding button. After a few seconds you will see the message: “Mail check successful.” Click OK to proceed to final screen.

Mail configuration

The installation is complete! As a result, you will see the page with a link to the admin panel and the credentials of the superuser.

Make sure you write down the generated password for the root@localhost user and the start page URL.

The only thing left after a successful installation is to start the OTRS daemon and activate its cronjob.

  1. sudo su - otrs -c "/opt/otrs/bin/otrs.Daemon.pl start"
  2. sudo su - otrs -c "/opt/otrs/bin/Cron.sh start"

Step 4 — Securing OTRS

At the moment, we have a fully functional application, but it’s not secure to use the superuser account with OTRS. Instead, we’ll create new agents.

In OTRS, agents are users who have rights to the various functions of the system. In our example, we will use single agent who has access to the all functions of the system.

First of all, we have to log in as root@localhost to create new agents. Open the link which we received at the end of the installation. Enter root@localhost for the username and the password you copied at the end of step 3, then click Login.

You will see the main dashboard. It contains several widgets which show different information about tickets, statistics, news, etc. You can freely rearrange them by dragging or switch their visibility in settings.

Login screen

First we have to create a new agent. To do this, follow the link by clicking on the red message in the top of the screen, then click the Add agent button. This will bring you to a screen with a lot of fields. Fortunately, most of the default options are fine. You can simply fill in the first name, last name, username, password, and email fields.

Next, you need to change group relations for the new agent. Because our agent will also be the administrator, we will give it full read and write access to all groups. To do this, click the checkmark next to RW all the way on the right, under Change Group Relations for Agent.

Finally, click Submit. Now you can log out and log back in again using the newly created account. You can customize your agent’s preferences by clicking on the gear in the top left corner of the screen. There you can change your password, choose the interface language, setup notifications, setup the favorite queues, change interface skin, etc.

Once you save your settings, you are ready to accept tickets from customers.

Step 5 — Handling Tickets

Let’s go over how to deal with tickets. Customers have two ways to forward new tickets to OTRS: via the customer front-end or by sending an email.

The customer front end is located at http://your_server_ip/otrs/customer.pl. You can create a customer account there and submit a ticket using the GUI.

You can also create new ticket by sending an email to the address specified during installation. By default, all tickets received by mail are stored in one queue and have normal priority. All customer tickets can be viewed in the customer web interface regardless of how they were sent.

All new tickets created using the customer front-end, will immediately appear on the agent’s dashboard. Tickets sent by mail may not immediately appear on the dashboard because OTRS checks for them every 10 minutes.

On the agent dashboard, you can see the information on all currently actual tickets: their status (new, opened, escalated, etc.), their age (the time elapsed from the moment when ticket was received), and subject.

Agent dashboard

You can click on the ticket number (in the Ticket # column) to view its details. The agent can also take actions on the ticket here, like changing its priority or state, moving it to another queue, closing it, adding a note, and so on.


In this tutorial, we have learned how to set up and use a simple help desk service using OTRS. You can learn more about OTRS by reading the OTRS Admin Manual.

Thanks for learning with the DigitalOcean Community. Check out our offerings for compute, storage, networking, and managed databases.

Learn more about us

About the authors

Default avatar

staff technical writer

hi! i write do.co/docs now, but i used to be the senior tech editor publishing tutorials here in the community.

Still looking for an answer?

Ask a questionSearch for more help

Was this helpful?

This textbox defaults to using Markdown to format your answer.

You can type !ref in this text area to quickly search our full set of tutorials, documentation & marketplace offerings and insert the link!

This needs to be updated. Many of settings of the database are now different, and items added which are needed. Plus the version is now in 6.x.x

hello I get an error message runing the database settings check:

Error: Please set the value for innodb_log_file_size on your database to at least 256 MB (current: 5 MB, recommended: 512 MB). For more information, please have a look at http://dev.mysql.com/doc/refman/5.6/en/innodb-data-log-reconfiguration.html.

even though I have added the innodb_log_file_size = 256M to my.cnf file

Any help much appreciated

Hi There, I have otrs-3.3.8-01.noarch installed on a CentOS 6 with http over few months. Now I need to enable ssl on the system. I configured SSL on ssl.conf file with my CA signed wildcard certificate. when I type https://support.domain.com, it works well with my SSL certificate details. But when I type https://support.domain.com/otrs/index.pl, I recieved error 404 ‘The requested URL /otrs/index.pl was not found on this server’

Can someone help me to enable SSL on OTRS** ? * Note: I have configured firewall properly to allow port 443 , and public dns record has put for above URL. And http type configured as ‘https’ from Admin> Sysconfig>Framework> Core.

Hello. I had a problem in the very beginning. When I try to execute this command sudo yum install epel-release It tells me: Loaded plugins: fastestmirror Loading mirror speeds from cached hostfile No package epel-release available. Error: Nothing to do Please help.

Wihout SSL i can not send email with Otrs. I tryed otrs only with local Ip 192.168… address. Google says :“Let’s Encrypt will only issue certificates for domain names, not for IP addresses. So to get a Let’s Encrypt certificate, you should register a domain name and then request a certificate for that name.” This manul will work we send and receive gmail in local net?


Can You help me? I’m getting this after installation:

[root@otrs ~]# systemctl status httpd.service ● httpd.service - The Apache HTTP Server Loaded: loaded (/usr/lib/systemd/system/httpd.service; enabled; vendor preset: disabled) Active: active (running) since Fri 2016-07-22 08:52:39 CEST; 1min 50s ago Docs: man:httpd(8) man:apachectl(8) Process: 30598 ExecStop=/bin/kill -WINCH ${MAINPID} (code=exited, status=0/SUCCESS) Main PID: 30603 (/usr/sbin/httpd) Status: “Total requests: 10; Current requests/sec: 0; Current traffic: 0 B/sec” CGroup: /system.slice/httpd.service ├─30603 /usr/sbin/httpd -DFOREGROUND ├─30604 /usr/sbin/httpd -DFOREGROUND ├─30605 /usr/sbin/httpd -DFOREGROUND ├─30606 /usr/sbin/httpd -DFOREGROUND ├─30607 /usr/sbin/httpd -DFOREGROUND ├─30608 /usr/sbin/httpd -DFOREGROUND └─30672 /usr/sbin/httpd -DFOREGROUND

Jul 22 08:52:38 otrs.x.org systemd[1]: Starting The Apache HTTP Server… Jul 22 08:52:39 otrs.x.org systemd[1]: Started The Apache HTTP Server. Jul 22 08:52:53 otrs.x.org OTRS-CGI-10[30604]: [Error][Kernel::System::Cache::FileStorable::new][Line:46]: Can’t create directory ‘/opt/otrs/var/t…orable’: Jul 22 08:53:07 otrs.x.org OTRS-CGI-10[30605]: [Error][Kernel::System::Cache::FileStorable::new][Line:46]: Can’t create directory ‘/opt/otrs/var/t…orable’: Jul 22 08:53:17 otrs.x.org OTRS-CGI-10[30606]: [Error][Kernel::System::Cache::FileStorable::new][Line:46]: Can’t create directory ‘/opt/otrs/var/t…orable’: Jul 22 08:53:26 otrs.x.org OTRS-CGI-10[30607]: [Error][Kernel::System::Cache::FileStorable::new][Line:46]: Can’t create directory ‘/opt/otrs/var/t…orable’: Jul 22 08:54:05 otrs.x.org OTRS-CGI-10[30672]: [Error][Kernel::System::Cache::FileStorable::new][Line:46]: Can’t create directory ‘/opt/otrs/var/t…orable’: Hint: Some lines were ellipsized, use -l to show in full.

So i installed OTRS on my CentOS server with IP address: What’s the system FQDN should i enter? or

Besides, at this step: Provide the necessary credentials in the Configure Inbound Mail section I’m in Japan now, when generating app password, they said: The setting you are looking for is not available for your account. So what else could i do?


running into a few problems here. I seem to be stuck at step 3 bullet 2. When I go to the site I get this: * Internal Server Error

The server encountered an internal error or misconfiguration and was unable to complete your request.

Please contact the server administrator at root@localhost to inform them of the time this error occurred, and the actions you performed just before this error.

More information about this error may be available in the server error log.*

I did try to figure out what was going on but I’m really new to linux.

[root@localhost ~]# sudo systemctl status httpd.service ● httpd.service - The Apache HTTP Server Loaded: loaded (/usr/lib/systemd/system/httpd.service; enabled; vendor preset: disabled) Active: active (running) since Thu 2016-07-07 08:19:32 CDT; 3h 0min ago Docs: man:httpd(8) man:apachectl(8) Main PID: 7534 (/usr/sbin/httpd) Status: “Total requests: 4; Current requests/sec: 0; Current traffic: 0 B/sec” CGroup: /system.slice/httpd.service ├─7534 /usr/sbin/httpd -DFOREGROUND ├─7535 /usr/sbin/httpd -DFOREGROUND ├─7537 /usr/sbin/httpd -DFOREGROUND ├─7539 /usr/sbin/httpd -DFOREGROUND ├─7540 /usr/sbin/httpd -DFOREGROUND ├─7541 /usr/sbin/httpd -DFOREGROUND └─7637 /usr/sbin/httpd -DFOREGROUND

Jul 07 08:19:31 localhost.localdomain systemd[1]: Starting The Apache HTTP Server… Jul 07 08:19:31 localhost.localdomain httpd[7534]: AH00558: httpd: Could not reliab…e Jul 07 08:19:32 localhost.localdomain systemd[1]: Started The Apache HTTP Server. Jul 07 08:20:24 localhost.localdomain OTRS-CGI-10[7537]: [Error][Kernel::System::Cac… Jul 07 11:17:18 localhost.localdomain systemd[1]: Started The Apache HTTP Server. Jul 07 11:19:17 localhost.localdomain OTRS-CGI-10[7540]: [Error][Kernel::System::Cac… Jul 07 11:19:18 localhost.localdomain OTRS-CGI-10[7541]: [Error][Kernel::System::Cac… Hint: Some lines were ellipsized, use -l to show in full.

Any help???

keep getting Internal Server Error when trying to access the installer page :( the install seems to have left /var/www/html empty…

I am trying to install OTRS following your instructions. When I get to accessing the installer webpage, I can’t seem to connect to the site. ERR_Connection_TIMED_OUT

Try DigitalOcean for free

Click below to sign up and get $200 of credit to try our products over 60 days!

Sign up

Join the Tech Talk
Success! Thank you! Please check your email for further details.

Please complete your information!

Featured on Community

Get our biweekly newsletter

Sign up for Infrastructure as a Newsletter.

Hollie's Hub for Good

Working on improving health and education, reducing inequality, and spurring economic growth? We'd like to help.

Become a contributor

Get paid to write technical tutorials and select a tech-focused charity to receive a matching donation.

Welcome to the developer cloud

DigitalOcean makes it simple to launch in the cloud and scale up as you grow — whether you're running one virtual machine or ten thousand.

Learn more
DigitalOcean Cloud Control Panel