如何在 Ubuntu 16.04 上安裝 OTRS (開源問題單系統)
在本教程中,我將介紹如何在 Ubuntu 16.04 上安裝和配置 OTRS。我將使用 PostgreSQL 作為 OTRS 的資料庫,將 Apache Web 伺服器用作 Web 伺服器。
先決條件
- Ubuntu 16.04。
- 最小 2GB 的內存。
- root 許可權
步驟 1 - 安裝 Apache 和 PostgreSQL
在第一步中,我們將安裝 Apache Web 伺服器以及 PostgreSQL。我們將從 ubuntu 倉庫中使用最新的版本。
使用 SSH 登錄到你的 Ubuntu 伺服器中:
ssh root@192.168.33.14
更新 Ubuntu 倉庫。
sudo apt-get update
使用 apt 安裝 Apache2 以及 PostgreSQL:
sudo apt-get install -y apache2 libapache2-mod-perl2 postgresql
通過檢查伺服器埠確保 Apache 以及 PostgreSQL 運行了。
netstat -plntu
你可以看到 80 埠被 apache 使用了,5432 埠被 postgresql 資料庫使用了。
步驟 2 - 安裝 Perl 模塊
OTRS 基於 Perl,因此我們需要安裝一些 OTRS 需要的 Perl 模塊。
使用這個 apt 命令安裝 perl 模塊:
sudo apt-get install -y libapache2-mod-perl2 libdbd-pg-perl libnet-dns-perl libnet-ldap-perl libio-socket-ssl-perl libpdf-api2-perl libsoap-lite-perl libgd-text-perl libgd-graph-perl libapache-dbi-perl libarchive-zip-perl libcrypt-eksblowfish-perl libcrypt-ssleay-perl libencode-hanextra-perl libjson-xs-perl libmail-imapclient-perl libtemplate-perl libtext-csv-xs-perl libxml-libxml-perl libxml-libxslt-perl libpdf-api2-simple-perl libyaml-libyaml-perl
安裝完成後,我們需要為 apache 激活 Perl 模塊,接著重啟 apache 服務。
a2enmod perl
systemctl restart apache2
接下來,使用下面的命令檢查模塊是否已經載入了:
apachectl -M | sort
你可以在 「Loaded Modules」 部分下看到 perl_module。
步驟 3 - 為 OTRS 創建新用戶
OTRS 是一個基於 web 的程序並且運行與 apache web 伺服器下。為了安全,我們需要以普通用戶運行它,而不是 root 用戶。
使用 useradd 命令創建一個 otrs
新用戶:
useradd -r -d /opt/otrs -c 'OTRS User' otrs
-r
:將用戶作為系統用戶。-d /opt/otrs
:在/opt/otrs
下放置新用戶的主目錄。-c
:備註。
接下來,將 otrs
用戶加入到 www-data
用戶組,因為 apache 運行於 www-data
用戶及用戶組。
usermod -a -G www-data otrs
在 /etc/passwd
文件中已經有 otrs
用戶了。
grep -rin otrs /etc/passwd
OTRS 的新用戶已經創建了。
步驟 4 - 創建和配置資料庫
在這節中,我們會為 OTRS 系統創建一個新 PostgreSQL 資料庫,並對 PostgreSQL 資料庫的配置做一些小的更改。
登錄到 postgres
用戶並訪問 PostgreSQL shell。
su - postgres
psql
創建一個新的角色 otrs
,密碼是 myotrspw
,並且是非特權用戶。
create user otrs password 'myotrspw' nosuperuser;
接著使用 otrs
用戶許可權創建一個新的 otrs
資料庫:
create database otrs owner otrs;
q
接下來為 otrs
角色驗證編輯 PostgreSQL 配置文件。
vim /etc/postgresql/9.5/main/pg_hba.conf
在 84 行後粘貼下面的配置:
local otrs otrs password
host otrs otrs 127.0.0.1/32 password
保存文件並退出 vim
使用 exit
回到 root 許可權並重啟 PostgreSQL:
exit
systemctl restart postgresql
PostgreSQL 已經為 OTRS 的安裝準備好了。
步驟 5 - 下載和配置 OTRS
在本教程中,我們會使用 OTRS 網站中最新的版本。
進入 /opt
目錄並使用 wget
命令下載 OTRS 5.0:
cd /opt/
wget http://ftp.otrs.org/pub/otrs/otrs-5.0.16.tar.gz
展開該 otrs 文件,重命名目錄並更改所有 otrs 的文件和目錄的所屬人為 otrs
。
tar -xzvf otrs-5.0.16.tar.gz
mv otrs-5.0.16 otrs
chown -R otrs:otrs otrs
接下來,我們需要檢查系統並確保可以安裝 OTRS 了。
使用下面的 otrs 腳本命令檢查 OTRS 安裝需要的系統軟體包:
/opt/otrs/bin/otrs.CheckModules.pl
確保所有的結果是對的,這意味著我們的伺服器可以安裝 OTRS 了。
OTRS 已下載,並且我們的伺服器可以安裝 OTRS 了。
接下,進入 otrs 目錄並複製配置文件。
cd /opt/otrs/
cp Kernel/Config.pm.dist Kernel/Config.pm
使用 vim 編輯 Config.pm
文件:
vim Kernel/Config.pm
更改 42 行的資料庫密碼:
$Self->{DatabasePw} = 'myotrspw';
注釋 45 行的 MySQL 資料庫支持:
# $Self->{DatabaseDSN} = "DBI:mysql:database=$Self->{Database};host=$Self->{DatabaseHost};";
取消注釋 49 行的 PostgreSQL 資料庫支持:
$Self->{DatabaseDSN} = "DBI:Pg:dbname=$Self->{Database};";
保存文件並退出 vim。
接著編輯 apache 啟動文件來啟用 PostgreSQL 支持。
vim scripts/apache2-perl-startup.pl
取消注釋 60 和 61 行:
# enable this if you use postgresql
use DBD::Pg ();
use Kernel::System::DB::postgresql;
保存文件並退出編輯器。
最後,檢查缺失的依賴和模塊。
perl -cw /opt/otrs/bin/cgi-bin/index.pl
perl -cw /opt/otrs/bin/cgi-bin/customer.pl
perl -cw /opt/otrs/bin/otrs.Console.pl
你可以在下面的截圖中看到結果是 「OK」:
步驟 6 - 導入樣本資料庫
在本教程中,我們會使用樣本資料庫,這可以在腳本目錄中找到。因此我們只需要將所有的樣本資料庫以及表結構導入到第 4 步創建的資料庫中。
登錄到 postgres
用戶並進入 otrs 目錄中。
su - postgres
cd /opt/otrs/
作為 otrs 用戶使用 psql
命令插入資料庫以及表結構。
psql -U otrs -W -f scripts/database/otrs-schema.postgresql.sql otrs
psql -U otrs -W -f scripts/database/otrs-initial_insert.postgresql.sql otrs
psql -U otrs -W -f scripts/database/otrs-schema-post.postgresql.sql otrs
在需要的時候輸入資料庫密碼 myotrspw
。
步驟 7 - 啟動 OTRS
資料庫以及 OTRS 已經配置了,現在我們可以啟動 OTRS。
將 otrs 的文件及目錄許可權設置為 www-data
用戶和用戶組。
/opt/otrs/bin/otrs.SetPermissions.pl --otrs-user=www-data --web-group=www-data
通過創建一個新的鏈接文件到 apache 虛擬主機目錄中啟用 otrs apache 配置。
ln -s /opt/otrs/scripts/apache2-httpd.include.conf /etc/apache2/sites-available/otrs.conf
啟用 otrs 虛擬主機並重啟 apache。
a2ensite otrs
systemctl restart apache2
確保 apache 啟動沒有錯誤。
步驟 8 - 配置 OTRS 計劃任務
OTRS 已經安裝並運行在 Apache Web 伺服器中了,但是我們仍然需要配置 OTRS 計劃任務。
登錄到 otrs
用戶,接著以 otrs 用戶進入 var/cron
目錄。
su - otrs
cd var/cron/
pwd
使用下面的命令複製所有 .dist
計劃任務腳本:
for foo in *.dist; do cp $foo `basename $foo .dist`; done
使用 exit
回到 root 許可權,並使用 otrs 用戶啟動計劃任務腳本。
exit
/opt/otrs/bin/Cron.sh start otrs
接下來,手動收取電子郵件的 PostMaster 創建一個新的計劃任務。我會配置為每 2 分鐘收取一次郵件。
su - otrs
crontab -e
粘貼下面的配置:
*/2 * * * * $HOME/bin/otrs.PostMasterMailbox.pl >> /dev/null
保存並退出。
現在停止 otrs 守護進程並再次啟動。
bin/otrs.Daemon.pl stop
bin/otrs.Daemon.pl start
OTRS 安裝以及配置完成了。
步驟 9 - 測試 OTRS
打開你的 web 瀏覽器並輸入你的伺服器 IP 地址: http://192.168.33.14/otrs/
使用默認的用戶 root@localhost
以及密碼 root
登錄。
使用默認的 root 賬戶你會看到一個警告。點擊警告信息來創建一個新的 admin root 用戶。
下面是用另外的 admin root 用戶登錄後出現的 admin 頁面,這裡沒有出現錯誤信息。
如果你想作為客戶登錄,你可以使用 customer.pl
:http://192.168.33.14/otrs/customer.pl
你會看到客戶登錄界面,輸入客戶的用戶名和密碼。
下面是一個創建新單據的客戶頁面。
步驟 10 - 疑難排查
如果你仍舊看到 「OTRS Daemon is not running」 的錯誤,你可以像這樣調試 OTRS 守護進程。
su - otrs
cd /opt/otrs/
停止 OTRS 守護進程:
bin/otrs.Daemon.pl stop
使用 --debug
選項啟動 OTRS 守護進程。
bin/otrs.Daemon.pl start --debug
參考
- http://wiki.otterhub.org/index.php?title=InstallationonDebian6with_Postgres
- http://www.geoffstratton.com/otrs-installation-5011-ubuntu-1604
- https://www.linkedin.com/pulse/ticketing-system-otrs-ubuntu-1404-muhammad-faiz-khan
作者:Muhammad Arul 譯者:geekpi 校對:wxy
本文轉載來自 Linux 中國: https://github.com/Linux-CN/archive