OTRS可以在各种不同的系统平台上运行,包括企业级Linux平台如OTRS on Windows和SUSE Linux Enterprise Server及一系列其它的Linux分支。
然而在Windows平台上运行OTRS时我们遭遇了反复的性能损失,尽管做过详尽的分析,但是由于技术的差异,好像不可能解决这些性能问题到令人满意的程度。由于目前缺少其他供应商提供的必要的第三方组件,因此带着一颗沉重的心,我们已经停止开发Windows安装程序和OTRS Appliance(OTRS一体机,部署在虚拟机中无需安装可直接使用的OTRS系统)。
在这些情况下,我们不能保证OTRS能持续地运行于Windows平台,所以推荐将OTRS迁移到上面提及的Linux平台或使用我们托管的OTRS Business Solution™(OTRS商业解决方案) 。
为了更容易地将OTRS从Windows迁移到Linux以获得最佳性能,我们在这里为你准备了详细的说明。
如果你有了一个基于Windows的OTRS安装并想迁移到Linux系统,你需要安装一台Linux服务器或虚拟主机并在系统中安装OTRS(参阅安装说明章节),这将是迁移的目标系统。
进入Windows版的系统管理菜单,并安装最新版的OTRSCloneDB软件包到OTRS:
你可以从软件包管理器中直接安装OTRSCloneDB软件包。从左侧的下拉列表中选择“OTRS Extensions”并点击“更新软件仓库信息”按钮,然后会在一个列表中显示OTRSCloneDB软件包,点击“安装”即可。
你还可以从OTRS的FTP服务器上手动下载这个软件包,并用下面的方法手动安装这个软件包。 http://ftp.otrs.org/pub/otrs/packages/
请下载最高版本号的软件包:
OTRSCloneDB-1.0.13.opm
                
            
安装到Windows版的OTRS中:
            
如果你安装了一些附加功能或对OTRS进行了定制开发也没有问题。你只需注意所有安装的软件也能与Unix类的系统兼容就可以了,由OTRS提供的软件包就是这样。
OTRSCloneDB脚本通过网络复制数据库的数据,所以我们需要允许到数据库的远程访问。不同的数据库设置方法不一样,我们在这里描述的是打开PostgreSQL数据库的远程访问。
通过SSH登录到目标系统后,切换到postgresql目录:
shell> cd /etc/postgresql/9.4/main
shell> vi postgresql.conf
                
将下列行添加到文件末尾:
listen_addresses = '*'
                
保存文件。
shell> vi pg_hba.conf
                
将下列行添加到文件末尾:
host all all  0.0.0.0/0 md5
                
保存文件。
重启PostgreSQL服务器:
shell> service postgresql restart
                
停止目标系统所有运行的服务:
shell> service cron stop
shell> service apache2 stop
shell> su - otrs
shell> cd /opt/otrs/
shell> bin/Cron.sh stop
shell> bin/otrs.Daemon.pl -a stop
shell> exit
                
OTRSCloneDB脚本不会移除目标系统存在的otrs数据库的数据,所以我们需要手动删除:
切换到postgresql用户:
shell> su - postgres
                
删除已有的otrs数据库:
shell> dropdb otrs
                
为otrs用户创建一个新的otrs数据库:
shell> createdb --owner=otrs --encoding=utf8 otrs
                
返回到root用户:
shell> exit
                
进入目标系统的OTRS目录:
shell> cd /opt/otrs
                
查看目录系统的配置文件:
shell> less Kernel/Config.pm
                
你往下拉一点就能找到你的数据库密码:
            
在我们的示例中:
I88cm34A1B6xrl3
                
把密码写在一张纸上。
切换回Windows版的OTRS,打开系统管理菜单中的系统配置。选择“OTRSCloneDB”组-“Configuration”子组:
            
我们需要使用下列值来配置系统配置选项OTRSCloneDB::TargetSettings :
TargetDatabaseHost => 192.168.137.20 (Here you need to enter the ip address of your target system)
TargetDatabase => otrs
TargetDatabaseUser => otrs
TargetDatabasePw => I88cm34A1B6xrl3 (Here you need to set the password of your target system)
TargetDatabaseType => postgresql
                
            
要运行OTRSCloneDB脚本我们需要切换到Windows版本的OTRS的命令行屏幕,并进入OTRS安装的目录:
shell> cd "C:\otrs"
                
如果你使用的是StrawberryPerl,则你需要激活Perl shell:
shell> StrawberryPerl\portableshell.bat
                
            
OTRSCloneDB脚本位于OTRS目录的bin目录。
shell> cd "OTRS\bin"
                
运行OTRSCloneDB脚本:
shell> perl otrs.CloneDB.pl
                
现在你应该能够看到关于这个脚本及其参数的一些信息。
            
注意:没加参数运行时出现错误可能与错误的数据库登录信息有关,或者数据库连接有问题。
如果没有出现错误,检查试运行能否成功:
shell> perl otrs.CloneDB.pl -n
                
            
开始克隆数据库,交叉手指祈祷好运吧:
shell> perl otrs.CloneDB.pl -r
                
一个成功的运行就像这样:
Generating DDL for OTRS.
Generating DDL for package OTRSCloneDB.
Creating structures in target database (phase 1/2)
...
...
Creating structures in target database (phase 2/2)
...
done.
                
你需要从Windows系统复制一些文件到目标系统,你可以用一个免费工具软件如“WinSCP”(直接在网上搜索“WinSCP”就行)。从Windows版本的OTRS中复制下列文件:
C:\otrs\OTRS\Kernel\Config\GenericAgent.pm
C:\otrs\OTRS\Kernel\Config\Files\ZZZAuto.pm
C:\otrs\OTRS\var\article\*
C:\otrs\OTRS\var\log\TicketCounter.log
                
到目标系统:
/opt/otrs/Kernel/Config/GenericAgent.pm
/opt/otrs/Kernel/Config/Files/ZZZAuto.pm
/opt/otrs/var/article/*
/opt/otrs/var/log/TicketCounter.log
                
                在目标系统中打开文件 /opt/otrs/Kernel/Config/Files/ZZZAuto.pm
,并将所有类似“C:/otrs/OTRS/”格式的路径替换为“/opt/otrs/”格式的路径!
            
                如果你手动修改过文件Kernel/Config.pm,请复制这些修改内容到目标系统的Kernel/Config.pm。不要复制原样复制,因为你现在的数据库设置不同,并且文件路径在目标系统和原Windows系统不一样!
            
用软件包管理器重新安装所有软件包,以获取所有定制的文件。
shell> bin/otrs.SetPermissions.pl --otrs-user=otrs --otrs-group=otrs --web-user=www-data --web-group=www-data /opt/otrs
shell> su - otrs
shell> cd /opt/otrs
shell> perl bin/otrs.Console.pl Maint::Cache::Delete
shell> perl bin/otrs.Console.pl Maint::Loader::CacheCleanup
shell> perl bin/otrs.Console.pl Admin::Package::ReinstallAll
shell> exit
                
再次修复OTRS系统的所有权限:
shell> bin/otrs.SetPermissions.pl --otrs-user=otrs --otrs-group=otrs --web-user=www-data --web-group=www-data /opt/otrs
                
撤消在目标系统启用PostgreSQL数据库远程访问的所有步骤。
切换到postgresql目录:
shell> cd /etc/postgresql/9.4/main
shell> vi postgresql.conf
                
移除这个文件末尾的下列行:
listen_addresses = '*'
                
保存文件。
shell> vi pg_hba.conf
                
移除这个文件末尾的下列行:
host all all  0.0.0.0/0 md5
                
保存文件。
重启PostgreSQL服务器
shell> service postgresql restart