Centos7.9源代码安装OTRS-6.0.30
前言:
系统:Centos 7.9 minimal
软件:OTRS-6.0.30.tar.gz (下载地址:官方)
近期在工作中因公司内部需要测试OTRS作为工单跟踪系统,查阅相关资料都是比较老旧或者不详细的操作指引。因此,如下为部署最新6.0.30tar包的记录,操作步骤来源于官网并经过实践检测,排了不少坑,希望给大家以参考。
1,准备工作
1.1 关闭SELinux:
在/etc/selinux/config中配置 SELINUX=disabled
1.2 关闭防火墙:
systemctl stop firewalld
systemctl disable firewalld.service #禁用开机启动
1.3 安装MySQL(略过):
强烈建议在另一台机器安装数据库,只要开启远程链接,用其它工具测一下,基本不会有问题。
版本为:5.7.31 MySQL Community Server (GPL)
1.4 安装perl环境:
yum -y install perl-core perl
yum install https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
2,安装OTRS
2.1 上传到/opt目录,解压,并重命名:
tar xzf /opt/otrs-6.0.30.tar.gz
mv otrs-6.0.30 otrs
2.2 安装Perl依赖,先检查缺失那些依赖:
perl /opt/otrs/bin/otrs.CheckModules.pl
吓了一跳,好像还挺多,但是没关系,慢慢补全就行。每一个报错后面都有提示如何用yum安装,有些是必须安装,有些是可选安装。为了避免出错,我把我所有缺失的包都给装了。(数据库我只装了MySql的依赖,因为我只用MySql)以下为我整理的yum脚本,一个个装还挺麻烦的。
yum -y install "perl(Archive::Zip)"
yum -y install "perl(Crypt::Eksblowfish::Bcrypt)"
yum -y install "perl(Date::Format)"
yum -y install "perl(DateTime)"
yum -y install "perl(DateTime::TimeZone)"
yum -y install "perl(DBD::mysql)"
yum -y install "perl(Encode::HanExtra)"
yum -y install "perl(IO::Socket::SSL)"
yum -y install "perl(JSON::XS)"
yum -y install "perl(Mail::IMAPClient)"
yum -y install "perl(IO::Socket::SSL)"
yum -y install "perl(Authen::SASL)"
yum -y install "perl(Authen::NTLM)"
yum -y install "perl(ModPerl::Util)"
yum -y install "perl(Moo)"
yum -y install "perl(Net::DNS)"
yum -y install "perl(Net::LDAP)"
yum -y install "perl(Template)"
yum -y install "perl(Template::Stash::XS)"
yum -y install "perl(Text::CSV_XS)"
yum -y install "perl(XML::LibXML)"
yum -y install "perl(XML::LibXSLT)"
yum -y install "perl(XML::Parser)"
yum -y install "perl(YAML::XS)"
再次检查:
发现还是有很多问题。没办法了,只能一个个排查。后来发现很多包是无法通过yum安装,后来发现一个好东西:
yum install https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
这个包应该包含了许多需要的源,安装完这个包后,继续清理没有安装好的依赖。
还是遇到了一个无法解决的问题:
找了很多办法,最后进入perl命令行,
perl -MCPAN -e shell;
一路yes,sudo,yes,最后:
install Moo
终于清掉了所有报错,升级我就先忽略。安装算是成功了一半。
3,创建OTRS用户:
useradd -d /opt/otrs -c 'OTRS user' otrs
usermod -G apache otrs
4,激活配置文件:
cp /opt/otrs/Kernel/Config.pm.dist /opt/otrs/Kernel/Config.pm
5,查看所有依赖是否都ok:
shell> perl -cw /opt/otrs/bin/cgi-bin/index.pl
/opt/otrs/bin/cgi-bin/index.pl syntax OK
shell> perl -cw /opt/otrs/bin/cgi-bin/customer.pl
/opt/otrs/bin/cgi-bin/customer.pl syntax OK
shell> perl -cw /opt/otrs/bin/otrs.Console.pl
/opt/otrs/bin/otrs.Console.pl syntax OK
坑绝了,一跑又出错,缺少namespace,老办法:
yum -y install perl-namespace-clean
再次运行检查脚本,通过。
6,配置apache:
先安装
yum install httpd mod_perl
apache配置文件在:/etc/httpd/conf.d
创建软连接:
cd /etc/httpd/conf.d
ln -s /opt/otrs/scripts/apache2-httpd.include.conf /etc/httpd/conf.d/zzz_otrs.conf
重启:
systemctl restart httpd
7,运行权限脚本:
shell> cd /opt/otrs/
shell> bin/otrs.SetPermissions.pl
8,修改数据库配置:
强烈建议用另一台机器安装Mysql数据库,不然会出现意想不到无法解决的错误,别问我是怎么知道的。
其实这一步也可以不改,但是还是改了把。
vi /etc/my.cnf
插入
max_allowed_packet = 64M
query_cache_size = 32M
innodb_log_file_size = 256M
character_set_server = utf8
collation-server=utf8_general_ci
重启
systemctl restart mysqld
9,大功告成:
访问:http://localhost/otrs/index.pl
1,如果无法启动,请检查
cat /etc/httpd/logs
查看apache报错日志,对症下药即可。
2,如果还是不行,请放弃,用rpm包把哈哈