This How-To installs the Open Ticket Request System OTRS, version 1.0 on systems running Win32. I tested it on Windows 2000, it should run on Windows 98, 98SE, ME, NT4 and XP, too.
You will need four main components on your system, a webserver (Sambar Server), a database (MySQL), an MTA (=Mail Transfer Agent, exim from the UN*X emulation Cygwin) and a programming language (Perl).
The whole installation will assumingly take place on drive D:, but you may install wherever you like, for sure.
Install Cygwin using their http://www.cygwin.com/setup.exe. Choose the following as option. Leave everything else on their defaults or suit it to your needs.
Choose A Download Source: Install from Internet Select Root Install Directory: d:\cygwin Install for: All Users Default Text File Type: Unix Select Local Package Directory: d:\cygwin\packages Select Packages: |
If you have got enough disk space, a fast internet connection and/or lots of time, I'd advice you to just install everything. If for any reason you don't want to take advantage of this great Un*x software, be sure to at least install the package exim from its category Mail. Install this one and the default packages (marked Keep), for sure.
Download Perl, Version 5.6.1 build 633 from http://www.activestate.com/Products/Download/Download.plex?id=ActivePerl. I recommend chosing the MSI version.
Install Perl using the default values to D:\Perl.
Download Sambar Server from http://sambar.robertkehl.de, the home page is http://www.sambar.com. I recommend using version 5.2 Production, surely any later version will do, too. Do not use any version prior to 5.2 Production!
Read the security notes on http://www.sambar.com/syshelp/security.htm and install Sambar, where you like to, D:\Sambar is a good choice.
If you're running Windows NT4, 2000 or XP, you can and should install Sambar as a Service, if the install routine hasn't done so yet. Therefore you click Start -> Execute, enter CMD and press RETURN. Now a so called command box pops up, which we won't need only for now. You enter the following:
d:\sambar\bin\ntserver.exe -i -s Sambar |
Now start Sambar using the built-in service administration panel or by entering:
net start Sambar |
On Win9x/ME, you start Sambar clicking Start -> Programs -> Sambar Server -> Start Sambar Server. There are no services on Win9x/ME.
Ensure that Sambar is running: http://localhost. The documentation can be found here: http://localhost/syshelp/index.htm. The system administration forms are here: http://localhost/session/adminlogin?RCpage=/sysadmin/index.stm.
Important: Ensure to *now* set the admin password to prevent others using your Sambar in a malicious way. You do this on the sysadmin forms under User Management. Good Passwords are longer than eight keystrokes and look like this: sie.&Fh9w_iG
Download MySQL from http://www.mysql.com/downloads/mysql-3.23.html and install it in D:\mysql, under Win 2000/XP as a service, too. Start it.
For a more comfortable configuration interface I recommend installing phpMyAdmin from http://www.phpmyadmin.net, too, location: D:\mysql\phpMyAdmin.
We change the passwort for root later.
Last but least - the beast!
Download OTRS as a tarball (.tar.gz): http://otrs.org/pages/index.pl?Site=Download.
We have to install this tarball manually, because there is a file "INSTALL" in it, who has the same name like the directory "install", which is also contained. Un*x differentiates between the two - Windows doesn't. In addition, the two files .fetchmailrc and .procmailrc are doubled, your unzip program will complain about this. Future releases will allow automic unzipping.
Open the tarball using WinRAR (http://www.rarlab.com), Winzip (http://www.winzip.com) or a similar software. Unzip the files .fetchmailrc, .procmailrc and INSTALL to d:\otrs\. Rename INSTALL to INSTALL.txt. Now unzip the rest of the archive to d:\otrs\.
Download the SQL-Code for phpMyAdmin on Win-32 from robertkehl.de. Save it here: d:\otrs\install\database\OpenTRS-SQL-win32.mysql.sql.
Open the file D:\cygwin\etc\exim.conf search for this line:
begin routers |
Directly beneath you enter the following:
# Send all mail to a smarthost smarthost: driver = accept transport = remote_smtp |
Underneath this:
begin transports |
you note:
remote_smtp: driver = smtp hosts = smtp.yourprovider.com |
Now exim will send each incoming message to the relay server of your provider. By now you can't forward messages to Sambar. In future we won't need exim and Cygwin at all, because OTRS will have it's own SMTP module included.
Now you change the access rights for D:\cygwin\etc\exim.conf using chmod from Cygwin:
d: cd d:\cygwin cygwin chown SYSTEM /etc/exim.conf chmod 755 /etc/exim.conf |
That's it for exim and Cygwin.
We now patch our Perl because it doesn't suit our needs in the default installation, there are some so called "packages" missing. We could use the tools ppm2 or ppm3 from ActiveState for downloading the packages, too, but I prefer downloading them manually.
Download the following ZIP-packages from http://www.activestate.com/PPMPackages/zips/6xx-builds-only/:
DBD-Mysql.zip DBI.zip IO-Stringy.zip |
Unzip all files to D:\Perl\packages.
Caution! |
Every directory contains a README, which will be overwritten by the following one. If you want to read each README you should rename it directly after unzipping each package. |
Change to directory D:\Perl\packages, by entering:
D: cd Perl\packages |
Start the Perl Package Manager, by entering ppm. Now install:
PPM> install DBI.ppd Install package 'DBI.ppd?' (y/N): y [...snipped...] PPM> install IO-stringy.ppd Install package 'IO-Stringy.ppd?' (y/N): y [...snipped...] PPM> install DBD-Mysql.ppd Install package 'DBD-Mysql.ppd?' (y/N): y |
Your Perl should now look like this or even better:
PPM> query
Archive-Tar [0.072 ]
Compress-Zlib [1.16 ]
DBD-Mysql [1.2200 ]
DBI [1.32 ]
Digest [1 ]
Digest-HMAC [1.01 ]
Digest-MD2 [2 ]
Digest-MD4 [1.1 ]
Digest-MD5 [2.20 ]
Digest-SHA1 [2.01 ]
File-CounterFile [0.12 ]
Font-AFM [1.18 ]
HTML-Parser [3.26 ]
HTML-Tagset [3.03 ]
HTML-Tree [3.11 ]
IO-stringy [2.108 ]
MD5 [2.02 ]
MIME-Base64 [2.12 ]
PPM [2.1.6 ]
SOAP-Lite [0.55 ]
Storable [1.0.12 ]
Tk [800.023]
URI [1.19 ]
XML-Parser [2.27 ]
XML-Simple [1.06 ]
libwin32 [0.19.1 ] |
You quit ppm by entering quit. If you like you can delete the files in D:\Perl\packages.
That's it for Perl.
We now configure our webserver Sambar. Open the file D:\Sambar\config\mappings.ini and create these entries:
[aliases] /mysql = d:/mysql/Docs /phpMyAdmin = d:/mysql/phpMyAdmin [cgi-aliases] /otrs/ = /otrs/bin/cgi-bin/ /obin/ = /otrs/bin/ |
Now you set the beneath values in D:\Sambar\config\config.ini:
[common] Trace Level = INFO Trace Performance = true Network Trace Level = None Dynamic IP Test = true License = Licensee = DNS Primary = IPadresse.DNS1.beideinem.Provider DNS Secondary = IPadresse.DNS2.beideinem.Provider [server] System Administrator = admin System Administrator IP = 127.0.0.1 Act As HTTP Server = true Act As HTTPS Server = false Act As DNS Server = false Act As DHCP Server = false Act As Mail Server = false Act As TFTP Server = false Act As FTP Server = false Act As FTPS Server = false Act As FTP Proxy = false Act As NNTP Proxy = false Act As SMTP Proxy = false Act As POP3 Proxy = false Act As IMAP4 Proxy = false Act As Bridge Proxy = false Act As SOCKS Proxy = false Act As Telnet Server = false Trace FTP = true Trace TFTP = true Trace Bridge = true Trace DHCP = true Trace DNS = true SMTP Server = smtp.deinprovider.de DOT-File Security = true [http] Act As HTTP Proxy = false Trace Proxy Usage = true Trace Requests = true Log Format = performance Don't Log IPs = 127.0.0.1 Default Page = index.pl index.php index.stm index.shtml index.shtm index.sht index.htm index.html Perl Executable = D:/Perl/bin/perl.exe CGI Extensions = *.pl Enforce .htaccess = true [events] Monitor Invalid Logins = true Monitor Invalid Requests = true Share User Logins = true Trace User Logins = true |
Restart Sambar for the changes to take affect.
Note:: At the very moment we do not use the mail server of Sambar, nor the DNS server. To use them right now (outside of OTRS), you need a Pro version of Sambar, see http://sambar.com/syshelp/pro.htm. The http functionality is not limited in the freeware version, which is automagically active. Entering this in config.ini will enable the demo version of the Pro version aktiviert, which will run between 9 a.m. and 5 p.m.
[common] License = demo Licensee = demo
We *have* to secure the alias /obin/ which points to d:\otrs\bin\, holding all of the code useful for hacking the system. I personally do not want to expose these "tools" to everyone.
Create the file d:\otrs\bin\htaccess.txt using Windows Explorer containing just this one line:
require group root |
Open a command box and enter this:
d: cd d:\otrs\bin ren htaccess.txt .htaccess |
Now only users belonging to the group "root" and the system itself (CRON jobs f.e.) will be allowed to access the scripts in "d:\otrs\bin".
Secure your MySQL by providing good passwords for the users @%, root@% und root@localhost. This can easily be done via phpMyAdmin.
Let's fill the database. You can do this cia the command line, as show beneath:
d: cd d:\mysql mysql -u root -p password -e 'create database otrs' mysql -u root -p password otrs < d:\otrs\install\database\OpenTRS-SQL-win32.mysql.sql mysql -u root -p -e 'GRANT ALL PRIVILEGES ON otrs.* TO otrs@localhost IDENTIFIED BY "some-pass" WITH GRANT OPTION;' mysqladmin -u root -p password reload |
I recommend using phpMyAdmin under http://localhost/phpMyAdmin instead of working on the command line. You creqate the database right on the start screen. Now you click the register "SQL", and enter d:\otrs\install\database\OpenTRS-SQL-win32.mysql.sql. Click OK.
Now commit this command:
GRANT ALL PRIVILEGES ON otrs.* TO otrs@localhost IDENTIFIED BY "irgendeinpasswort" WITH GRANT OPTION; |
That's it for MySQL, which we provided with the database otrs and the user otrs@localhost.
Now you teach OTRS s.th. about you. First create your configuration file:
d: cd d:\otrs\Kernel copy Config.pm.dist Config.pm |
Despite your settings concerning FQDN etc., you set the following in d:\otrs\Kernel\Config.pm:
# -----------------------------------------------------# # Sendmail # -----------------------------------------------------# $Self->{Sendmail} = 'd:/cygwin/bin/exim-4.12-2.exe -t -i -f '; # -----------------------------------------------------# # fs root directory # -----------------------------------------------------# $Self->{Home} = 'd:/otrs'; # ----------------------------------------------------# # LogModule # # ----------------------------------------------------# # (log backend module) # $Self->{LogModule} = 'Kernel::System::Log::SysLog'; $Self->{LogModule} = 'Kernel::System::Log::File'; # param for LogModule Kernel::System::Log::File (required!) $Self->{'LogModule::LogFile'} = '<OTRS_CONFIG_Home>/var/log/otrs.log'; # -----------------------------------------------------# # own config settings # # config settings taken from Kernel/Config/Defaults.pm # # -----------------------------------------------------# # $Self->{SessionUseCookie} = 0; $Self-A>{SessionModule} = 'Kernel::System::AuthSession::DB'; |
A note about your FQDN: This is the called Full Qulified Domain Name of your PC, just like your IP adress it's unique across the universe ...ah... internet, I mean. If you're using a dial-up line to connect to the internet, your FQDN will always be a different one each time you dial anew. This is indeed ok for OTRS, but it's not nice if exim announces itself with a wrong name. It can lead to difficulties in mail delivery.
To solve this problem you can use so called Dynamic DNS services like http://www.dyndns.org. By using a client such as DirectUpdate (http://www.directupdate.net) you submit your IP adress to dyndns.org each times it changes and can thereby obtain a FQDN, for example gogos-pc.home-ip.net. You can even forward your domain http://www.thisismydomain.com to your home PC. If you got further questions concerning Dynamic DNS services, don't hesitate to ask - but now back to OTRS :)
Now we have to uncomment five rows in d:\otrs\Kernel\System\Log.pm:
13: # use IPC::SysV qw(IPC_PRIVATE IPC_RMID S_IRWXU); 58: # $Self->{Key} = shmget($Self->{IPCKey}, $Self->{IPCSize}, 0777 | 0001000) || die $!; 126,127: # my $String = $Self->GetLog(); # shmwrite($Self->{Key}, $Data.$String, 0, $Self->{IPCSize}) || die $!; 141: # shmread($Self->{Key}, $String, 0, $Self->{IPCSize}) || die "$!"; |
We are now working with d:\Sambar\Kernel\System\Ticket.pm, open it and search for this row
use Kernel::System::Ticket::Article; |
Add this line beneath:
use Kernel::System::Ticket::ArticleStorageDB; |
Lastly we tell OTRS where to find our nslookup.exe. In d:\otrs\Kernel\cpan-lib\Email\Valid.pm we change the following lines:
15: @NSLOOKUP_PATHS = qw( /usr/bin /usr/sbin /bin c:/winnt/system32 ); 94: return "$path/nslookup.exe" if -x "$path/nslookup.exe" and !-d _; |
Now Valid.pm is suitable for Win32 *only*, but that's ok for us :)
Now startup OTRS for the first time. A good idea is to reboot your machine before, remember: You're on Windows ;) Then call http://localhost/otrs/index.pl in your favourite browser.
The user name is "root@localhost", the password is "root", both without the quotes.
Important: It's a *very good* idea to *now* change your password on http://localhost/otrs/index.pl?Action=AdminUser
You set your system email addresses here: http://localhost/otrs/index.pl?Action=AdminSystemAddressThese are the addresses your customers lateron use to reach your OTRS.
You create POP3 accounts for each System Email here: http://localhost/otrs/index.pl?Action=AdminPOP3
Your OTRS is now ready, you can start! Have a look around the interface and work on the test ticket provided.
Now write an Email to on of the System Email addresses. Enter this in your browser, it provides the eMail to OTRS. We will later automate this: http://localhost/obin/PostMasterPOP3.pl.
Your Email will be visible in the queue Raw that's here: http://localhost/otrs/index.pl?Action=AgentQueueView. Answer this first inquiry.
Tip: It is NO good idea to use one of the system Email addresses to address the system, this will produce loops.
At last, we tell Sambar to fetch all POP3-Mail every 10 minutes and pump it into the database. Therefore you enter this in D:\Sambar\config\schedule.ini:
[cron] # fetch emails every 10 minutes */10 * * * * perl d:/otrs/bin/PostMasterPOP3.pl & |
Important: The schedule entry will be active 1-2 minutes after saving the file.
Tip: You may enter the following CRON jobs at this very moment, too. Their very purpose is described elsewhere in this manual.
[cron] # start generic agent every 20 minutes */20 * * * * perl d:/otrs/bin/GenericAgent.pl & # check every 60 min the pending jobs 45 * * * * perl d:/otrs/bin/PendingJobs.pl & # Rebuild Ticket Index every day 01 01 * * * perl d:/otrs/bin/RebuildTicketIndex.pl & # delete every six hours old session ids 55 */6 * * * perl d:/otrs/bin/DeleteSessionIDs.pl --expired & # unlock every hour old locked tickets 35 * * * * perl d:/otrs/bin/UnlockTickets.pl --timeout &
Congratulations, you hopefully were successful in installing OTRS on Win32!
If s.th. still is not as clear as it should be or if you are getting nothing more than error messages instead of the interface of OTRS, don't hesitate to mail otrs-win32 at robertkehl.de. Hopefully you get a ticket back ;-)
I would be more enlighted if you'd send some success stories!
Surely this chapter will follow the development of OTRS. OTRS on Win32 can be done with Apache, too, and I will soon include a part on it.
Have fun using your OUTR on Sambar!