How to install OTRS 3.1 on CentOS 6.2 – Part 1

OTRS 3.1.3OTRS is the leading open-source Help Desk and IT Service Management (ITSM) solution used by thousands of organizations worldwide.
This guide explains the steps involved in installing the latest OTRS release on a minimal CentOS 6.2 installation.


CentOS (Community ENTerprise Operating System) is an Enterprise-class Linux Distribution derived from sources freely provided to the public by a prominent North American Enterprise Linux vendor.

Due to the length of this guide, it had to be split in two parts. The first part will focus on getting CentOS 6.2 ready for the OTRS 3.1 installation, while the second part will be about installing and extending OTRS 3.1.

Part 1 – A minimal CentOS 6.2 install

Head over to http://isoredirect.centos.org/centos/6/isos/i386/ and pick a nearby mirror. Download the CentOS-6.2-i386-minimal.iso installation media.
Verify the download against the provided md5 or sha1 checksum, the files are  located in the same directory as the iso files (md5sum.txt and sha1sum.txt).

The download is valid if the checksums on line 2 and 5 are shown, if you get no result then the image is corrupt.

  1. Boot the installation media and choose Install or upgrade an existing system.

    CentOS 6.2 Install

    CentOS 6.2 Install

  2. Test the media, or skip and head directly to the installation.

    CentOS 6.2 media check

    CentOS 6.2 media check

  3. Installation commences.

    CentOS 6.2 - Start installation

    CentOS 6.2 – Start installation

  4. Select your language of choice.

    CentOS 6.2 - Select language

    CentOS 6.2 – Select language

  5. Select your keyboard layout.

    CentOS 6.2 - Keyboard layout

    CentOS 6.2 – Keyboard layout

  6. Choose installation device. Select the basic storage option (unless you know you have an enterprise storage solution that is).

    CentOS 6.2 - Installation device

    CentOS 6.2 – Installation device

  7. Storage device warning. This message will trigger by blank, unpartitioned or virtual devices. If that’s you then it’s safe to discard any data.

    CentOS 6.2 - Storage device warning

    CentOS 6.2 – Storage device warning

  8. Choose a hostname for your system and click the “Configure Network” button.

    CentOS 6.2 - Set hostname

    CentOS 6.2 – Set hostname

  9. Network configuration. The network connection will obviously depend on your network but in this (common) scenario we’re configuring the wired interface eth0. Click on the edit button for eth0 and tick the connect automatically option. Configure the IPv4 settings by selecting “Method”: Manual, then click “Add” to fill out the “Address”, “Netmask” and “Gateway” details. Finally add your DNS servers, and if applicable, domains.

    CentOS 6.2 - Network configuration

    CentOS 6.2 – Network configuration

  10. Select your timezone from the map.

    CentOS 6.2 - Select timezone

    CentOS 6.2 – Select timezone

  11. Set the root password.

    CentOS 6.2 - Set root password

    CentOS 6.2 – Set root password

  12. Select type of installation. Select the “Use all space” alternative if you’re not dual booting other systems on the same device.

    CentOS 6.2 - Installation type

    CentOS 6.2 – Installation type

  13. Write changes to disk. If you made any mistakes, this is the last point of return.

    CentOS 6.2 - Write configuration to disk

    CentOS 6.2 – Write configuration to disk

  14. CentOS 6.2 is installing, refill empty cups of coffee now.

    CentOS 6.2 - installation progress

    CentOS 6.2 – installation progress

  15. We’re done, reboot to fire up your new system.

    CentOS 6.2 - Installation completed

    CentOS 6.2 – Installation completed

Part 1.1 – CentOS 6.2 firewall / SELinux and additional packages

When the installation is finished, lets update the system by running the command:

Import the CentOS-6 GPG key when asked.
Disabling Security-Enhanced Linux (SELinux) is a requirement to get OTRS running, and I won’t be debating the topic further.
Edit the SELinux configuration with the command:

Change the directive SELINUX=enforcing to SELINUX=disabled. Then reboot the system to replace the current policy. Type the command:

which should now return the message: SELinux status: disabled

Install some programs and utilities that will be needed to further configure CentOS and OTRS with the command:

Configuring the firewall

The only inbound services we want to allow are ssh and apache, everything else will be closed down.
Let’s use the recently installed text interface for basic firewall configuration. Run the command:

  1. Make sure the firewall is enabled and select “Customize”.

    CentOS 6.2 - Customize firewall

    CentOS 6.2 – Customize firewall

  2. Trusted services, select SSH and WWW (HTTP). Navigate by using <Tab> / <Alt tab> and select with <Space>

    CentOS 6.2 - Trusted services

    CentOS 6.2 – Trusted services

  3. Other ports, we have no need for additional ports so continue forward.

    CentOS 6.2 - Select ports

    CentOS 6.2 – Select ports

  4. Trusted interfaces, do not select any trusted interfaces as that will allow full access to the system for that interface.

    CentOS 6.2 - Trusted interfaces

    CentOS 6.2 – Trusted interfaces

  5. Masquerading, not needed with this configuration.

    CentOS 6.2 - Masquerading

    CentOS 6.2 – Masquerading

  6. Port forwarding, not needed with this configuration.

    CentOS 6.2 - Port forwarding

    CentOS 6.2 – Port forwarding

  7. ICMP filter, no need to change anything.

    CentOS 6.2 - ICMP

    CentOS 6.2 – ICMP

  8. Custom rules, not needed with this configuration.

    CentOS 6.2 - Custom rules

    CentOS 6.2 – Custom rules

  9. Finish the firewall configuration by clicking “OK” when returned to the main screen, and select “Yes” to install the new rules.

    CentOS 6.2 - Install firewall rules

    CentOS 6.2 – Install firewall rules

Part 1.2 – Configuring services for CentOS 6.2

Lets start the cron daemon with the command:

Update the file name database by running the command:

Configure logwatch, system log analyzer and reporter by running the command:

and set the directives:
MailTo = you@yourhost.com
Detail = 10 (the most detailed report)

Install the MySQL server

We’ll be using the chkconfig utility to configure which services are to be started in selected runlevels.

The next four commands will take care of the following steps:
1) Install the MySQL server.
2) Configure the runlevels.
3) Start the MySQL server.
4) Secure the MySQL installation.

When securing the MySQL installation, just set a root password and answer yes to the rest of the questions.

Install the Apache web server

The next tree commands will take care of the following steps:
1) Install the Apache web server.
2) Configure the runlevels.
3) Start the web server.

Add our fqdn (fully qualified domain name) to /etc/hosts

Use the command

For the domain otrs.paranoidpenguin.net the entry should look like this:
xxx.xxx.80.99 otrs.paranoidpenguin.net otrs

This is necessary for certain programs to operate correctly and should match the output of the command: hostname -f. Alternatively you might check the contents of the file /etc/sysconfig/network

Configuring Sendmail

*This is not really needed as OTRS will be happy using an external SMTP server, so if you don’t want to use sendmail then just skip this step.
Sendmail is already installed due to dependencies, but we’ll need to install the configuration files with the command:

I want to use a smart relay since the outgoing messages in my case will pass through a spam filter.
Lets edit the sendmail macro config file with the command:

Edit the SMART_HOST directive with your outgoing (external) mail server.
The entry should be in this format:

That’s all there is to it. Now run the following commands to update the sendmail configuration and to restart the sendmail server.

Check your new configuration by sending a test mail:

Click here to continue reading part 2


One thought on “How to install OTRS 3.1 on CentOS 6.2 – Part 1”

Leave a Reply

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code class="" title="" data-url=""> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> <pre class="" title="" data-url=""> <span class="" title="" data-url="">