タグ: knowlegebase

Ubuntu20.04にTomcat8とknowledgeを導入。

バージョンを落としてでも用いたいシステムがありました。

Dockerではなくオンプレ環境で整えます。メインをredmineにしたものの

「redmineの障害に備えた構築メモ」が欲しかったのもあります。

また、PDFをプレゼン形式で表示してくれるのはこのシステムの強み。

先だってredmineとは別のサーバを入手したので早速のインストールです。

環境

  • Ubuntu 20.04(Kubuntu)

手順

JDKインストール

aptitude openjdk-8-jdk

java -version
openjdk version "1.8.0_312"
OpenJDK Runtime Environment (build 1.8.0_312-8u312-b07-0ubuntu1~20.04-b07)
OpenJDK 64-Bit Server VM (build 25.312-b07, mixed mode)

その後、Tomcatをaptitude(apt)でインストールを試みましたがaptitude(apt)でサポートするTomcatのバージョンは9。
knowlegeの対象外です。(knowledgeのシステム要件はTomcat8)

そこで、以下の手段を執りました。

Tomcatユーザー作成

mkdir /opt/tomcat

groupadd tomcat

useradd -s /bin/false -g tomcat -d /opt/tomcat tomcat

Tomcat8のダウンロードと展開

cd /tmp
wget https://archive.apache.org/dist/tomcat/tomcat-8/v8.5.5/bin/apache-tomcat-8.5.5.tar.gz
# DL先は2022/04/03時点のものです
tar -xf apache-tomcat-8.5.5.tar.gz -C /opt/tomcat/
ln -s /opt/tomcat/apache-tomcat-8.5.5 /opt/tomcat/latest
cd /opt/tomcat/latest/bin
chmod +x *.sh

Tomcat8の起動スクリプトを作成

vi /etc/systemd/system/tomcat.service
スクリプト内容

(CentOSから流用したので怪しい部分があります)

[Unit]
Description=Tomcat 8 servlet container
After=network.target

[Service]
User=tomcat
Group=tomcat
Type=oneshot
PIDFile=/opt/tomcat/latest/temp.pid
RemainAfterExit=yes

ExecStart=/opt/tomcat/latest/bin/startup.sh
ExecStop=/opt/tomcat/latest/bin/shutdown.sh
ExecReStart=/opt/tomcat/latest/bin/shutdown.sh;/opt/tomcat/latest/bin/startup.sh

[Install]
WantedBy=multi-user.target

Tomcat8のサービス化

chmod +x /etc/systemd/system/tomcat.service
systemctl daemon-reload
systemctl enable tomcat
systemctl start tomcat
systemctl status tomcat

ステータス確認

 systemctl status tomcat
● tomcat.service - Tomcat 8 servlet container
     Loaded: loaded (/etc/systemd/system/tomcat.service; enabled; vendor preset: enabled)
     Active: active (exited) since Sun 2022-04-03 09:29:44 JST; 30min ago
    Process: 12416 ExecStart=/opt/tomcat/latest/bin/startup.sh (code=exited, status=0/SUCCESS)
   Main PID: 12416 (code=exited, status=0/SUCCESS)

Knowlegeインストール

cd /opt/tomcat/latest/webapps/
wget https://github.com/support-project/knowledge/releases/download/v1.13.1/knowledge.war
chown -R tomcat:tomcat knowledge.war 
systemctl restart tomcat

インストール後、

http://[インストールしたホスト]:8080/knowledge

でアクセスできることを確認しました。

redmineプラグイン「redmine_knowlegebase」での添付できない問題への対処。

以下、解決したのでメモとなります。

環境

  • OS: Ubuntu 20.04 (Linux Mint 20.3でも同様)
  • redmineバージョン:4.2.4
  • Rubyバージョン:2.7.0
  • Railsバージョン:5.2.6.2
  • knowlegebaseのバージョン4.1.1

発生していた現象

  1. プラグインredmine_knowlegebaseをインストール後、設定を有効にする。
  2. ナレッジベースで任意の記事を登録/更新する。
  3. ファイルを添付し、保存する。
  4. 登録/更新した記事の「ファイル」タブで添付ファイルが表示されず。

この事象はかなり厄介でした。各種ナレッジにファイルを添付したいことは多々あり、回避策としてredmineの「ファイル」機能のリンクを張るのも迂遠だったからです。

糸口

そんな中で以下の記事を発見。

https://github.com/alexbevi/redmine_knowledgebase/issues/351

I am using Redmine 3.4.4 and knowledgebase 3.3.1. Perhaps, the "knowledgebase" plugin /plugins/redmine_knowledgebase/app/views/attachments/_links.html.erb works until Redmine 3.3, but since Redmine 3.4 the specification has changed, so _links.html.erb Does not it work as an attached file processing? I thought, and deleted or moved _links.html.erb on the plugin side, it worked.

要約すると

  • Redmine 3.3→3.4以降で添付ファイルの仕様が変わった。
  • /redmine格納ディレクトリ/plugins/redmine_knowledgebase/app/views/attachments/_links.html.erb の添付ファイル処理がうまくいかない。
  • _links.html.erb を移動/削除すれば動いた。

解決

手順

全て管理者権限で実行します。

SSHログイン&ディレクトリ移動

cd /var/lib/redmine/plugins
#redmineのプラグインが格納されているディレクトリに読み替えてください
cd redmine_knowledgebase/app/views/attachments/

該当ファイル退避&設定反映

mv _links.html.erb ../_links.html.erb.org
# このケースでは上のディレクトリに退避させました
systemctl restart apache2

設定反映後

無事に動きました。これで、様々なファイルの添付が可能になります。

Powered by WordPress & Theme by Anders Norén