摘要
本章描述了OTRS中央框架的安装和基本配置,涵盖了从源码或从二进制软件包如RPM安装OTRS的信息。
这里涵盖的主题包括WEB和数据库服务器的配置、OTRS和数据库之间的接口、附件的Perl模块的安装、设置合适的OTRS访问权限、设置OTRS的cron任务以及OTRS配置文件的一些基本设置。
跟随本章的详细步骤来安装OTRS到你的服务器中,然后你就可以使用它的WEB界面来登录并管理系统了。
如果你使用的系统平台有OTRS预构建软件包,你就应该优先用它来安装,因为这是最简单、最便捷的方法。你可以在官网下载区www.otrs.com找到可用的预构建软件包。
本部分描述了在SUSE Linux服务器上安装RPM包。
你可以使用不同的数据库后端:MySQL、PostgreSQL或Oracle。部署OTRS最流行的数据库是MySQL。本节描述了在基于SUSE的服务器上配置MySQL需要的步骤。当然如果你有伸缩性或其它方面的需要,也可以将数据库安装到一台单独的数据库服务器上。
如果你在openSUSE 12.3以后的版本参照本节的步骤,实际上你不是安装MySQL而是MariaDB,一个与MySQL代码兼容的MySQL分支。这并没有任何问题,它可以同样工作得很好(在某些点上甚至更好那么一点点)。
以root用户执行下列的命令来安装MySQL:
linux:~ # zypper install mysql perl-DBD-mysql
这会按默认选项安装MySQL到系统中。你需要修改一些默认设置以便更适合OTRS运行。用文本编辑器打开文件/etc/my.cnf
并添加下列行到[mysqld]节:
max_allowed_packet = 64M query_cache_size = 32M innodb_log_file_size = 256M
请注意,OTRS需要utf8作为数据库存储编码。
现在执行命令systemctl restart mysql.service来重启数据库服务器并激活刚才的修改内容。然后运行命令/usr/bin/mysql_secure_installation并根据屏幕提示来设置数据库的root用户密码、移除匿名访问和移除test数据库。最后,运行命令systemctl enable mysql.service来确保MySQL在服务器启动后自动运行。
使用zypper通过命令行来安装OTRS,它还会拉入一些依赖包如Apache WEB服务器和一些Perl模块。确保你已经将OTRS RPM文件复制到了当前目录。
otrs-sles:~ # zypper install otrs*.rpm .... Retrieving package otrs-x.x.x-01.noarch (1/26), 17.5 MiB (74.3 MiB unpacked) Installing: otrs-x.x.x-01 [done] Additional rpm output: Check OTRS user ... otrs added. ... otrs-sles:~ #
现在使用命令systemctl restart apache2.service重启Apache以便载入为OTRS修改的配置。
OTRS每次通过软件包管理器默认安装不会安装所有需要的模块,你可以在后面手动安装它们。运行位于目录/opt/otrs/bin/
下的脚本otrs.CheckModules.pl
,可以知道缺失了哪些必须安装的模块。可选的模块可能包括通过IMAP(S)与MTA通讯或生成PDF格式的输出。
在SLES操作系统中需要添加外部软件仓库来获得缺失的模块。从这里选择符合操作系统版本的软件仓库: http://download.opensuse.org/repositories/devel:/languages:/perl/ 。例如,SLES 11 SP 3的软件仓库应按如下方式添加:
zypper ar -f -n perl http://download.opensuse.org/repositories/devel:/languages:/perl/SLE_11_SP3 Perl
在openSUSE 12.3中只有Mail::IMAPClient才需要额外的软件仓库,这个模块只有当你要从用TLS加密的IMAP邮件服务器收取邮件时才需要。相应的命令行像这个样子:
zypper ar -f -n perl http://download.opensuse.org/repositories/devel:/languages:/perl/openSUSE_12.3/ Perl
在添加了这个软件仓库后首次使用zypper时会提示添加它的密钥。现在你就可以像下面这样安装缺失的模块。
otrs-sles:/opt/otrs # zypper install -y "perl(YAML::LibYAML)" Refreshing service 'susecloud'. Retrieving repository 'perl' metadata [\] New repository or package signing key received: Key ID: DCCA98DDDCEF338C Key Name: devel:languages:perl OBS Project <devel:languages:perl@build.opensuse.org> Key Fingerprint: 36F0AC0BCA9D8AF2871703C5DCCA98DDDCEF338C Key Created: Wed Oct 10 22:04:18 2012 Key Expires: Fri Dec 19 22:04:18 2014 Repository: perl Do you want to reject the key, trust temporarily, or trust always? [r/t/a/?] (r): a Retrieving repository 'perl' metadata [done] Building repository 'perl' cache [done] Loading repository data... Reading installed packages... 'perl(YAML::LibYAML)' not found in package names. Trying capabilities. Resolving package dependencies... The following NEW package is going to be installed: perl-YAML-LibYAML The following package is not supported by its vendor: perl-YAML-LibYAML Retrieving package perl-YAML-LibYAML-0.38-12.4.x86_64 (1/1), 75.0 KiB (196.0 KiB unpacked) Retrieving: perl-YAML-LibYAML-0.38-12.4.x86_64.rpm [done (55.7 KiB/s)] Installing: perl-YAML-LibYAML-0.38-12.4 [done]
下一步是使用WEB安装器来配置OTRS,其过程本章另有描述。
现在你可以启动OTRS守护进程并激活相应的监控此进程的cron任务(必须以otrs
用户执行):
shell> /opt/otrs/bin/otrs.Daemon.pl start shell> /opt/otrs/bin/Cron.sh start
就这样了,恭喜搞定!
本部分描述了在一台Red Hat Enterprise Linux (RHEL) 或 CentOS 服务器上RPM软件包的安装。
如果你的系统使用了SELinux,你需要禁用它,否则OTRS无法正常工作。
下面是如何在RHEL/CentOS/Fedora中禁用SELinux:
在文件/etc/selinux/config中配置SELINUX=disabled:
# This file controls the state of SELinux on the system. # SELINUX= can take one of these three values: # enforcing - SELinux security policy is enforced. # permissive - SELinux prints warnings instead of enforcing. # disabled - No SELinux policy is loaded. SELINUX=disabled # SELINUXTYPE= can take one of these two values: # targeted - Targeted processes are protected, # mls - Multi Level Security protection. SELINUXTYPE=targeted
重启系统。重启后确认命令getenforce返回为Disabled
:
shell> getenforce Disabled
你可以使用不同的数据库后端:MySQL、PostgreSQL或Oracle。部署OTRS最流行的数据库是MySQL。本节描述了在基于RHEL的服务器上配置MySQL需要的步骤。当然如果你有伸缩性或其它方面的需要,也可以将数据库安装到一台单独的数据库服务器上。
以root用户执行下列的命令来安装MySQL(或MariaDB):
shell> yum -y install mariadb-server
这会在你的系统上使用默认选项安装MySQL,你需要修改默认设置以适用于OTRS。使用文本编辑器来创建一个新文件/etc/my.cnf.d/zotrs.cnf
,包含如下内容:
[mysqld] max_allowed_packet = 64M query_cache_size = 32M innodb_log_file_size = 256M
现在执行systemctl start mariadb来重启数据库服务器并激活刚才的修改内容。然后运行命令/usr/bin/mysql_secure_installation,并按照屏幕上的指令来设置数据库的root密码、移除匿名访问及删除test数据库。
请注意,OTRS需要utf8作为数据库存储编码。
使用yum通过命令行来安装OTRS,它还会拉入一些依赖包如Apache WEB服务器和一些Perl模块。确保你已经将OTRS RPM文件复制到了当前目录。
shell> yum install --nogpgcheck otrs-x.x.*.rpm ... Dependencies Resolved ================================================================================ Package Arch Version Repository Size ================================================================================ Installing: otrs noarch x.x.x-01 /otrs-x.x.x-01.noarch 74 M Installing for dependencies: apr x86_64 1.3.9-5.el6_2 updates 123 k ... procmail x86_64 3.22-25.1.el6 base 163 k Transaction Summary ================================================================================ Install 26 Package(s) Total size: 80 M Total download size: 6.0 M Installed size: 88 M Downloading Packages: (1/25): apr-1.3.9-5.el6_2.x86_64.rpm | 123 kB 00:00 ... (25/25): procmail-3.22-25.1.el6.x86_64.rpm | 163 kB 00:00 -------------------------------------------------------------------------------- Total 887 kB/s | 6.0 MB 00:06 Running rpm_check_debug Running Transaction Test Transaction Test Succeeded Running Transaction Installing : apr-1.3.9-5.el6_2.x86_64 1/26 ... Installing : otrs-x.x.x-01.noarch 26/26 Check OTRS user ... otrs added. ... shell>
现在使用命令systemctl restart httpd.service重启Apache以载入为OTRS修改的配置。
除了通过RPM包安装的Perl模块外,OTRS还需要一些其它的Perl模块,你可以手动安装。通过执行位于目录/opt/otrs
下的文件bin/otrs.CheckModules.pl
来检查缺失的模块。一些模块只是可选的功能才需要,比如与IMAP服务器通讯或生成PDF。在RedHat或CentOS上我们推荐从EPEL软件仓库安装这些模块,EPEL是由Fedora项目维护的一个软件仓库,为RHEL及其分支提供高质量的软件包。可在EPEL网站上查看更多信息。
如果你使用的是RHEL 7或CentOS 7,你可以从这个网址获得最新的EPEL软件包。你可以执行下面的命令添加EPEL软件仓库到yum源:
shell> yum -y install http://download.fedoraproject.org/pub/epel/7/x86_64/e/epel-release-7-8.noarch.rpm ... Installed: epel-release.noarch 0:7-8 Complete!
添加这个软件仓库后首次使用yum,会提示你要添加它的密钥。现在你可以像下面这样安装缺失的模块了。
shell> yum -y install "perl(Text::CSV_XS)" ... Installed: perl-Text-CSV_XS.x86_64 0:0.85-1.el6 Complete! shell>
下一步是使用WEB安装器来配置OTRS,其过程本章另有描述。
现在你可以启动OTRS守护进程并激活相应的监控此进程的cron任务(必须以otrs
用户执行):
shell> /opt/otrs/bin/otrs.Daemon.pl start shell> /opt/otrs/bin/Cron.sh start
就这样了,恭喜搞定!
如果你想在ORACLE数据库上部署OTRS,你需要编译并安装 DBD::Oracle数据库驱动。这比安装其它软件稍微复杂了一点儿;这是因为Oracle是一个私有数据库,RedHat或CentOS项目都不允许在他们的RPM软件仓库中分发这个驱动。
首先,我们需要安装gcc、make和CPAN,这样我们才能编译和安装这个驱动。你下面看到的命令适用于CentOS,其它的版本可能有一点点不同。
shell> yum -y install gcc make "perl(CPAN)"
下一步是获取并安装数据库客户端。你需要到Oracle官网注册一个免费帐号,从网页: http://www.oracle.com/technetwork/database/features/instant-client/index-097480.html上可以下载客户端驱动。请选择对应的‘Linux x86 or x86-64’版本。你可以用命令uname -i检查架构,要么是'x86_64',要么是'i386'即x86。你应该下载软件包'Instant Client Package - Basic'、'Instant Client Package - SQL*Plus'和'Instant Client Package - SDK'。将它们保存到磁盘的一个目录。现在用下面的命令来安装这些软件包:
shell> yum install oracle-instantclient*
安装完成后你要设置两个环境变量并编译DBD::Oracle驱动。还是以root用户执行这些任务。步骤如下。请注意:命令输出结果被省略了一些行。
shell> export ORACLE_HOME=/usr/lib/oracle/11.2/client64 shell> export LD_LIBRARY_PATH=$ORACLE_HOME/lib shell> cpan cpan[1]> look DBD::Oracle ... Fetching with LWP: http://www.perl.org/CPAN/authors/id/P/PY/PYTHIAN/CHECKSUMS Checksum for /root/.cpan/sources/authors/id/P/PY/PYTHIAN/DBD-Oracle-1.62.tar.gz ok Scanning cache /root/.cpan/build for sizes DONE ... Working directory is /root/.cpan/build/DBD-Oracle-1.62-ZH6LNy [root@localhost DBD-Oracle-1.62-ZH6LNy]# perl Makefile.PL ... [root@localhost DBD-Oracle-1.62-ZH6LNy]# make ... [root@localhost DBD-Oracle-1.62-ZH6LNy]# make install ... cpan[2]> exit Terminal does not support GetHistory. Lockfile removed.
现在就该编辑文件Kernel/Config.pm
来提供环境变量ORACLE_HOME了。下一步是使用WEB安装器来配置OTRS,其过程本章另有描述。
请注意,OTRS需要utf8作为数据库存储编码。
请从源码安装OTRS,不要使用Debian或Ubuntu提供的OTRS软件包。
如果你使用现成的软件来安装Perl模块会更容易一些:
apt-get install libapache2-mod-perl2 libdbd-mysql-perl libtimedate-perl libnet-dns-perl libnet-ldap-perl \ libio-socket-ssl-perl libpdf-api2-perl libdbd-mysql-perl libsoap-lite-perl libtext-csv-xs-perl \ libjson-xs-perl libapache-dbi-perl libxml-libxml-perl libxml-libxslt-perl libyaml-perl \ libarchive-zip-perl libcrypt-eksblowfish-perl libencode-hanextra-perl libmail-imapclient-perl \ libtemplate-perl