Вы находитесь на странице: 1из 12

Installing and Configuring OTRS 3.0.

9 on Windows
Server 2008 R2
OTRS is an exceptionally flexible ITIL compliant
ticketing/helpdesk solution, which runs beautifully on
almost any LAMP (Linux, Apache, MySQL, Perl (yes,
I know its PHP really;-)) server, but what happens
when you work in a Windows-only environment?
OTRS does have a Windows installer, but it is somewhat clunky and requires almost as much
work to configure as manually installing. Installing as components allows you to upgrade
portions of the system and have more granular control over the setup.
Ive recently installed OTRS on a Windows Server 2008 R2 (64-bit) server, including
experimenting with various combinations of IIS/Apache, MSSQL2008/MySQL, ActiveState
Perl 32-bit/64-bit, different configurations and setups - these are my findings:

IIS7, MSSQL (64), ActiveState Perl (64) to make use of the native IIS7 webserver
and 64-bit Perl. The server does run but performs abysmally, and you have to force
IIS to run a 32-bit application pool to get Perl to work.
Apache2.2 (32), MSSQL (64) and ActiveState Perl (32) again OTRS will run but
performance is grim
Apache2.2 (64 unofficial binaries), MySQL (64) and ActiveState Perl (64) this
seemed the most promising approach but without a 64-bit version of mod_perl the
performance was worse than the final combo
Apache2.2 (32), MySQL (64) and ActiveState Perl (32) this performed the best, and
although there are slow portions (SysConfig) the general user experience was good.

None of these combinations came close to the performance of OTRS running on a native
Linux server, my 64-bit Ubuntu server absolutely flew, with less processor and RAM than the
Windows box. In short, if you have the skills, use the Linux option. Yes, yes I do feel a little
dirty now, sorry Mr Gates.
So, the final setup I have opted for is:

A Virtual Machine running Windows Server 2008, 2GB RAM and 2 vCPUs at
3.2Ghz
MySQL Server 5.5, 64-bit
Apache 2.2, 32-bit
ActiveState Perl, 32-bit

Installing Apache HTTP Server


Make sure you dont have IIS running (eye-roll), and then click through the wizard

Configure the network and server details

Do a custom installation and ensure that you install it to D:\Apache\

Apache should now be running on the local machine, navigate to http://localhost to check that
its running. You should see a page saying It works!

Installing MySQL
Installing MySQL is again a very simple click-through process, once youve downloaded it
from http://dev.mysql.com/downloads/. I am installing the 64-bit server to make the most of
the 64-bit performance on this server.

Changes to MySQLs default configuration file


Stop the MySQL service and edit c:\Program Files\MySQL\MySQL Server 5.5\my.ini in
your favourite text editor you will need to run it as an Administrator.

Change the default data directory (you wouldnt leave a MSSQL DB on the System drive
would you?!) create a folder on the data drive (I use D:\MySQL\Data).
#Path to the database root
datadir="D:\MySQL\Data"

Go to c:\ProgramData\MySQL\MySQL 5.5\data\ and move all the files and folders there to
the folder you specified for datadir.
For performance, its also recommended that you change the query_cache_size to 32M
You can now start the MySQL service again.

Installing ActiveState Perl


You can download the 32-bit version of ActiveState Perl here:
http://www.activestate.com/activeperl/downloads
Run through the installation, accepting the defaults apart from changing the location of the
installation to D:\Perl\:

Installing OTRS
At this point, we will download and extract the OTRS installation from
http://ftp.otrs.org/pub/otrs/otrs-3.0.9.zip and extract it to D:\OTRS\
Once thats done, we can begin joining up the dots.

Installing the correct Perl Packages


Run a command prompt as administrator and navigate to the OTRS installation directory (for
me, d:\OTRS).

perl bin\otrs.CheckModules.pl

You can then use the Perl Package Manager to install the missing required packages, and
some of the options:

ppm install date::format


ppm install dbd::mysql

ppm install json::xs


ppm install apache::reload
ppm install net::dns
ppm install net::ldap
ppm install pdf::api2
ppm install http://cpan.uwinnipeg.ca/PPMPackages/12xx/mod_perl.ppd

(this one requires that you point it to the correct Apache modules folder, for me
d:\Apache\modules)
If you re-run the otrs.CheckModules.pl script it should now pass all modules.

Configuring Apache
The main Apache configuration file is installed at d:\Apache\conf\httpd.conf, open it in
Notepad and add the following lines at the end of the config file:

# load mod_perl
LoadFile 'd:/Perl/bin/perl512.dll' #match your perl installation
LoadModule perl_module modules/mod_perl.so
Include 'd:/OTRS/scripts/apache2-httpd.include.conf' # match your OTRS
installation

Also modify the DirectoryIndex directive to be index.pl rather than index.pl.


DirectoryIndex index.pl

Configuring OTRS
Configuring OTRS is initially a case of changing paths referenced in the configuration files to
the Windows paths that match your environments.
D:/OTRS/scripts/apache2-httpd.include.conf
Change this
ScriptAlias /otrs/ "/opt/otrs/bin/cgi-bin/"
Alias /otrs-web/ "/opt/otrs/var/httpd/htdocs/"
Perlrequire /opt/otrs/scripts/apache2-perl-

to this
ScriptAlias /otrs/ "D:/otrs/bin/cgi-bin/"
Alias /otrs-web/ "D:/otrs/var/httpd/htdocs/"
Perlrequire D:/otrs/scripts/apache2-perl-

startup.pl
<Directory "/opt/otrs/bin/cgi-bin/">
<Directory "/opt/otrs/var/httpd/htdocs/">
<Directory
"/opt/otrs/var/httpd/htdocs/skins/*/*/csscache">
<Directory "/opt/otrs/var/httpd/htdocs/js/jscache">

startup.pl
<Directory "D:/otrs/bin/cgi-bin/">
<Directory "D:/otrs/var/httpd/htdocs/">
<Directory
"D:/otrs/var/httpd/htdocs/skins/*/*/csscache">
<Directory "D:/otrs/var/httpd/htdocs/js/jscache">

I performed a search/replace for /opt with D:, and checked through after.
D:\OTRS\scripts\apache2-perl-startup.pl
Change this
use lib "/opt/otrs/";
use lib "/opt/otrs/Kernel/cpan-lib";
use lib "/opt/otrs/Custom";

to this
use lib "D:/otrs/";
use lib "D:/otrs/Kernel/cpan-lib";
use lib "D:/otrs/Custom";

D:\OTRS\kernel\Config.pm
Rename D:\OTRS\kernel\Config.pm.dist to Config.pm, and open Config.pm in your text
editor.
Change this
$Self->{Home} = '/opt/otrs';

to this
$Self->{Home} = 'D:/otrs';

Add the following lines to configure logging:


$Self->{'LogModule'} = 'Kernel::System::Log::File';
$Self->{'LogModule::LogFile'} = "$Self->{Home}/var/log/otrs.log";

Running the web installer


Run http://localhost/otrs/installer.pl in your browser of choice and click through the initial
details and accepth the licensing agreement:

Enter the MySQL root user and password you created earlier, and test the settings

Next configure a user, password, database name and create the database. you dont have to
change the default names, but if you dont change the password from the default hot to
something complex, you deserve to get hacked!

Configure the general system, FQDN, admin email address and logging

Configure incoming and outbound email

And finish!

You can now log in to your OTRS installation but were not finished yet!

Configuring Scheduled Jobs


The MSI installer uses Cron4Win, but in my experience it was barely working, clunky and
not at all suitable for a production service. Since the jobs are just .pl scripts, its better to run
them from the Scheduled Tasks.
Open up the Task Scheduler and run the Create Task action (not Create Basic Task). Name
the task and configure the user you want to run under. Ensure that you select to run whether
the user is logged in or not, and run with elevated privileges. I have used a specific account
with locked down privileges.

Move on to the Triggers panel and create a schedule for the task (see the table below for
my config)

Move to the Actions panel and create an action to start a program and pass the script as an
argument (again, see the table below for my config).

You can accept the default settings for the rest of the panes.
Task Triggers
Name
OTRS 1
Minute
Actions
OTRS
10
Minute
Actions
OTRS
15
Minute
Actions
OTRS 2
Hour
Actions
OTRS
Daily
Actions
OTRS

Program/Arguments

At 00:00 Every day After


d:\Perl\bin\perl.exe d:\OTRS\bin\otrs.PostMaster.pl
triggered, repeat every 00:01:00
indefinitely.
At 00:00 Every day After
d:\Perl\bin\perl.exe d:\OTRS\bin\otrs.GenericAgent.pl -c db
triggered, repeat every 10
minutes indefinitely.
At 00:00 Every day After
triggered, repeat every 15
minutes indefinitely.

d:\Perl\bin\perl.exe d:\OTRS\bin\otrs.GenericAgent.pl

At 00:00 Every day After


d:\Perl\bin\perl.exe d:\OTRS\bin\otrs.PendingJobs.pl
triggered, repeat every 02:00:00 d:\Perl\bin\perl.exe d:\OTRS\bin\otrs.DeleteSessionIDs.pl --expired
indefinitely.
At 00:05 every day
d:\Perl\bin\perl.exe d:\OTRS\bin\otrs.CleanUp.pl
d:\Perl\bin\perl.exe d:\OTRS\bin\otrs.RebuildTicketIndex.pl

At 00:15 on 13/07/2011 d:\Perl\bin\perl.exe d:\OTRS\bin\otrs.UnlockTickets.pl --timeout

Hourly After triggered, repeat


Actions every 1 hour indefinitely.
OTRS At 11:00 every Sunday of d:\Perl\bin\perl.exe d:/OTRS/bin/otrs.DeleteCache.pl
Weekly every week
d:\Perl\bin\perl.exe d:/OTRS/bin/otrs.LoaderCache.pl -o delete
Actions

Run each of the jobs manually to ensure that they process OK, without any errors. I have
exported my jobs as XML files, which are available here to download and import (assuming
youve put all the files in the same place as me!)

Thats it, OTRS is ready for you to configure, which is way beyond the scope of this post!

Вам также может понравиться