Knowledge 環境を構築する

Knowledge 環境を構築する

ナレッジマネージメントを行うとすると Wiki などを使用することも多いかと思いますが、今回はオープンソースソフトウェアの Knowledge で、ナレッジを共有するためのシステムを構築してみます。
knowledge インストール
もう一度、別の環境でインストールを試したところ、なぜかknowedge にアクセスできませんでした。
動作はしているのですが、Webアクセスすると開かない・・・とりあえず参考情報とさせてください。

Knowledge とは

Knowledge は、オープンソースソフトウエアで、次のようなことが可能です。

  • 簡単にセットアップができる
  • キーワード検索ができる
  • Markdown が使用できる
  • モバイル対応している
  • 画像なども添付できて、画像検索もできるようです

Knowledge 公式サイト
https://information-knowledge.support-project.org/ja/

インストール準備

公式サイトの情報には、システム要件として、次のように書かれています。

Java version 8 以降をインストール
Tomcat 8.0 以降をインストール (http://tomcat.apache.org/)
Tomcat でなくても、Servlet3.1 以降に対応しているサーバーであれば動作すると思います
Tomcat のインストールのパスには空白が入らないようにしてください
knowledge.war をダウンロード(https://github.com/support-project/knowledge/releases)
Tomcatのwebappsディレクトリに、knowledge.warを置く(warが配備され使えるようになります)

出典: Knowledge 公式サイト
https://information-knowledge.support-project.org/install-ja

Java 8 をインストール

Java のバージョンは 8 以上ということなの、Java-1.8.0以降をインストールします。

[root@7-101 ~]# rpm -qa |grep java
[root@7-101 ~]# yum search java |grep 1.8
java-1.8.0-openjdk.i686 : OpenJDK Runtime Environment
java-1.8.0-openjdk.x86_64 : OpenJDK Runtime Environment 8
java-1.8.0-openjdk-accessibility.i686 : OpenJDK accessibility connector
java-1.8.0-openjdk-accessibility.x86_64 : OpenJDK accessibility connector
java-1.8.0-openjdk-accessibility-debug.i686 : OpenJDK accessibility connector
java-1.8.0-openjdk-accessibility-debug.x86_64 : OpenJDK 8 accessibility
java-1.8.0-openjdk-debug.i686 : OpenJDK Runtime Environment with full debug on
java-1.8.0-openjdk-debug.x86_64 : OpenJDK Runtime Environment 8 with full debug
java-1.8.0-openjdk-demo.i686 : OpenJDK Demos
java-1.8.0-openjdk-demo.x86_64 : OpenJDK Demos 8
java-1.8.0-openjdk-demo-debug.i686 : OpenJDK Demos with full debug on
java-1.8.0-openjdk-demo-debug.x86_64 : OpenJDK Demos 8 with full debug on
java-1.8.0-openjdk-devel.i686 : OpenJDK Development Environment
java-1.8.0-openjdk-devel.x86_64 : OpenJDK Development Environment 8
java-1.8.0-openjdk-devel-debug.i686 : OpenJDK Development Environment with full
java-1.8.0-openjdk-devel-debug.x86_64 : OpenJDK Development Environment 8 with
java-1.8.0-openjdk-headless.i686 : OpenJDK Runtime Environment
java-1.8.0-openjdk-headless.x86_64 : OpenJDK Headless Runtime Environment 8
java-1.8.0-openjdk-headless-debug.i686 : OpenJDK Runtime Environment with full
java-1.8.0-openjdk-headless-debug.x86_64 : OpenJDK Runtime Environment with full
java-1.8.0-openjdk-javadoc.noarch : OpenJDK 8 API documentation
java-1.8.0-openjdk-javadoc-debug.noarch : OpenJDK 8 API documentation for
java-1.8.0-openjdk-javadoc-zip.noarch : OpenJDK 8 API documentation compressed
java-1.8.0-openjdk-javadoc-zip-debug.noarch : OpenJDK 8 API documentation
java-1.8.0-openjdk-src.i686 : OpenJDK Source Bundle
java-1.8.0-openjdk-src.x86_64 : OpenJDK Source Bundle 8
java-1.8.0-openjdk-src-debug.i686 : OpenJDK Source Bundle for packages with
java-1.8.0-openjdk-src-debug.x86_64 : OpenJDK Source Bundle 8 for packages with

[root@7-101 ~]# yum install java-1.8.0-openjdk.x86_64 java-1.8.0-openjdk-devel.x86_64
読み込んだプラグイン:fastestmirror
Loading mirror speeds from cached hostfile
 * base: ftp.nara.wide.ad.jp
 * extras: ftp.nara.wide.ad.jp
 * updates: ftp.nara.wide.ad.jp
依存性の解決をしています
--> トランザクションの確認を実行しています。
---> パッケージ java-1.8.0-openjdk.x86_64 1:1.8.0.212.b04-0.el7_6 を インストール
--> 依存性の処理をしています: java-1.8.0-openjdk-headless(x86-64) = 1:1.8.0.212.b04-0.el7_6 のパッケージ: 1:java-1.8.0-openjdk-1.8.0.212.b04-0.el7_6.x86_64

** 長いので途中略 **

トランザクションの要約
==========================================================================================
インストール  2 パッケージ (+64 個の依存関係のパッケージ)

総ダウンロード容量: 55 M
インストール容量: 187 M
Is this ok [y/d/N]: y
Downloading packages:
(1/66): avahi-libs-0.6.31-19.el7.x86_64.rpm                                  |  61 kB  

インストール:
  java-1.8.0-openjdk.x86_64 1:1.8.0.212.b04-0.el7_6                                                 
  java-1.8.0-openjdk-devel.x86_64 1:1.8.0.212.b04-0.el7_6                                           

** 長いので途中略 **

依存性関連をインストールしました:
  atk.x86_64 0:2.28.1-1.el7                                                                         
  avahi-libs.x86_64 0:0.6.31-19.el7                                                                 
  cairo.x86_64 0:1.15.12-3.el7                                                                      
  copy-jdk-configs.noarch 0:3.3-10.el7_5                                                            
  cups-libs.x86_64 1:1.6.3-35.el7                                                                   
  dejavu-fonts-common.noarch 0:2.33-6.el7                                                           
  dejavu-sans-fonts.noarch 0:2.33-6.el7                                                             
  fontconfig.x86_64 0:2.13.0-4.3.el7                                                                
  fontpackages-filesystem.noarch 0:1.44-8.el7                                                       
  fribidi.x86_64 0:1.0.2-1.el7                                                                      
  gdk-pixbuf2.x86_64 0:2.36.12-3.el7                                                                
  giflib.x86_64 0:4.1.6-9.el7                                                                       
  graphite2.x86_64 0:1.3.10-1.el7_3                                                                 
  gtk-update-icon-cache.x86_64 0:3.22.30-3.el7                                                      
  gtk2.x86_64 0:2.24.31-1.el7                                                                       
  harfbuzz.x86_64 0:1.7.5-2.el7                                                                     
  hicolor-icon-theme.noarch 0:0.12-7.el7                                                            
  jasper-libs.x86_64 0:1.900.1-33.el7                                                               
  java-1.8.0-openjdk-headless.x86_64 1:1.8.0.212.b04-0.el7_6                                        
  javapackages-tools.noarch 0:3.4.1-11.el7                                                          
  jbigkit-libs.x86_64 0:2.0-11.el7                                                                  
  libICE.x86_64 0:1.0.9-9.el7                                                                       
  libSM.x86_64 0:1.2.2-2.el7                                                                        
  libX11.x86_64 0:1.6.5-2.el7                                                                       
  libX11-common.noarch 0:1.6.5-2.el7                                                                
  libXau.x86_64 0:1.0.8-2.1.el7                                                                     
  libXcomposite.x86_64 0:0.4.4-4.1.el7                                                              
  libXcursor.x86_64 0:1.1.15-1.el7                                                                  
  libXdamage.x86_64 0:1.1.4-4.1.el7                                                                 
  libXext.x86_64 0:1.3.3-3.el7                                                                      
  libXfixes.x86_64 0:5.0.3-1.el7                                                                    
  libXft.x86_64 0:2.3.2-2.el7                                                                       
  libXi.x86_64 0:1.7.9-1.el7                                                                        
  libXinerama.x86_64 0:1.1.3-2.1.el7                                                                
  libXrandr.x86_64 0:1.5.1-2.el7                                                                    
  libXrender.x86_64 0:0.9.10-1.el7                                                                  
  libXtst.x86_64 0:1.2.3-1.el7                                                                      
  libXxf86vm.x86_64 0:1.1.4-1.el7                                                                   
  libfontenc.x86_64 0:1.1.3-3.el7                                                                   
  libglvnd.x86_64 1:1.0.1-0.8.git5baa1e5.el7                                                        
  libglvnd-egl.x86_64 1:1.0.1-0.8.git5baa1e5.el7                                                    
  libglvnd-glx.x86_64 1:1.0.1-0.8.git5baa1e5.el7                                                    
  libjpeg-turbo.x86_64 0:1.2.90-6.el7                                                               
  libthai.x86_64 0:0.1.14-9.el7                                                                     
  libtiff.x86_64 0:4.0.3-27.el7_3                                                                   
  libwayland-client.x86_64 0:1.15.0-1.el7                                                           
  libwayland-server.x86_64 0:1.15.0-1.el7                                                           
  libxcb.x86_64 0:1.13-1.el7                                                                        
  libxshmfence.x86_64 0:1.2-1.el7                                                                   
  libxslt.x86_64 0:1.1.28-5.el7                                                                     
  lksctp-tools.x86_64 0:1.0.17-2.el7                                                                
  mesa-libEGL.x86_64 0:18.0.5-4.el7_6                                                               
  mesa-libGL.x86_64 0:18.0.5-4.el7_6                                                                
  mesa-libgbm.x86_64 0:18.0.5-4.el7_6                                                               
  mesa-libglapi.x86_64 0:18.0.5-4.el7_6                                                             
  pango.x86_64 0:1.42.4-1.el7                                                                       
  pcsc-lite-libs.x86_64 0:1.8.8-8.el7                                                               
  pixman.x86_64 0:0.34.0-1.el7                                                                      
  python-javapackages.noarch 0:3.4.1-11.el7                                                         
  python-lxml.x86_64 0:3.2.1-4.el7                                                                  
  ttmkfdir.x86_64 0:3.0.9-42.el7                                                                    
  tzdata-java.noarch 0:2019a-1.el7                                                                  
  xorg-x11-font-utils.x86_64 1:7.5-21.el7                                                           
  xorg-x11-fonts-Type1.noarch 0:7.5-9.el7                                                           

完了しました!

[root@7-101 ~]# java -version
openjdk version "1.8.0_212"
OpenJDK Runtime Environment (build 1.8.0_212-b04)
OpenJDK 64-Bit Server VM (build 25.212-b04, mixed mode)

Tomcat のインストール

Tomcat は yum でインストールできなさそうなので、直接ダウンロードします。
Knowledge 公式サイトでも、tomcat のダウンロード先をリンクしているようなので。
Tomcat 8.0 以降をインストール (http://tomcat.apache.org/)http://tomcat.apache.org/

Tomcat 9 もあるようですが、ここでは Tomcat 8 にしておきます。

Tomcat 8 をダウンロード

[root@centos7-101 ~]# wget https://www-eu.apache.org/dist/tomcat/tomcat-8/v8.5.40/bin/apache-tomcat-8.5.40.tar.gz
--2019-04-29 19:13:44--  https://www-eu.apache.org/dist/tomcat/tomcat-8/v8.5.40/bin/apache-tomcat-8.5.40.tar.gz
www-eu.apache.org (www-eu.apache.org) をDNSに問いあわせています... 2a01:4f9:2a:185f::2, 95.216.24.32
www-eu.apache.org (www-eu.apache.org)|2a01:4f9:2a:185f::2|:443 に接続しています... 接続しました。
HTTP による接続要求を送信しました、応答を待っています... 200 OK
長さ: 9690027 (9.2M) [application/x-gzip]
`apache-tomcat-8.5.40.tar.gz' に保存中

100%[==========================================================>] 9,690,027   1.04MB/s 時間 10s    

2019-04-29 19:13:56 (913 KB/s) - `apache-tomcat-8.5.40.tar.gz' へ保存完了 [9690027/9690027]

Tomcat 8 をインストール

管理用ユーザを作成します。

[root@centos7-101 opt]# useradd -s /sbin/nologin tomcat
[root@centos7-101 opt]# cat /etc/passwd |grep tomcat
tomcat:x:1001:1007::/home/tomcat:/sbin/nologin

ダウンロードしたTomcat を解凍して、/opt以下に配置します。

[root@centos7-101 ~]# tar zxvf apache-tomcat-8.5.40.tar.gz 
** 長いので略 **

[root@centos7-101 ~]# ll
合計 9464
drwxr-xr-x. 9 root root     220  4月 29 19:17 apache-tomcat-8.5.40
-rw-r--r--. 1 root root 9690027  4月 10 23:57 apache-tomcat-8.5.40.tar.gz
[root@centos7-101 ~]# mv apache-tomcat-8.5.40 /opt/
[root@centos7-101 ~]# ll /opt |grep apache
drwxr-xr-x. 9 root root 220  4月 29 19:17 apache-tomcat-8.5.40

権限を設定します。

[root@centos7-101 ~]# cd /opt
[root@centos7-101 opt]# chown -R tomcat:tomcat /opt/apache-tomcat-8.5.40
[root@centos7-101 opt]# ll /opt |grep apache
drwxr-xr-x. 9 tomcat tomcat 220  4月 29 19:17 apache-tomcat-8.5.40
[root@centos7-101 opt]# ll /opt/apache-tomcat-8.5.40
合計 124
-rw-r-----. 1 tomcat tomcat 19539  4月 10 23:33 BUILDING.txt
-rw-r-----. 1 tomcat tomcat  6090  4月 10 23:33 CONTRIBUTING.md
-rw-r-----. 1 tomcat tomcat 57092  4月 10 23:33 LICENSE
-rw-r-----. 1 tomcat tomcat  1726  4月 10 23:33 NOTICE
-rw-r-----. 1 tomcat tomcat  3255  4月 10 23:33 README.md
-rw-r-----. 1 tomcat tomcat  7139  4月 10 23:33 RELEASE-NOTES
-rw-r-----. 1 tomcat tomcat 16262  4月 10 23:33 RUNNING.txt
drwxr-x---. 2 tomcat tomcat  4096  4月 29 19:17 bin
drwx------. 2 tomcat tomcat   238  4月 10 23:33 conf
drwxr-x---. 2 tomcat tomcat  4096  4月 29 19:17 lib
drwxr-x---. 2 tomcat tomcat     6  4月 10 23:31 logs
drwxr-x---. 2 tomcat tomcat    30  4月 29 19:17 temp
drwxr-x---. 7 tomcat tomcat    81  4月 10 23:31 webapps
drwxr-x---. 2 tomcat tomcat     6  4月 10 23:31 work

シンボリックリンクを設定します。

[root@centos7-101 opt]# ln -s /opt/apache-tomcat-8.5.40/ /opt/tomcat
[root@centos7-101 opt]# ll |grep tomcat
drwxr-xr-x. 9 tomcat tomcat 220  4月 29 19:17 apache-tomcat-8.5.40
lrwxrwxrwx. 1 root   root    26  4月 29 19:26 tomcat -> /opt/apache-tomcat-8.5.40/

サービスとして実行できるように定義ファイルを作成します。
バージョン箇所は、インストールしたバージョンに合わせて変更します。

[root@centos7-101 opt]# cd
[root@centos7-101 ~]# vi /etc/systemd/system/tomcat.service

作成する内容

[Unit]
Description=Apache Tomcat 8
After=network.target

[Service]
User=tomcat
Group=tomcat
Type=oneshot
PIDFile=/opt/apache-tomcat-8.5.40/tomcat.pid
RemainAfterExit=yes

ExecStart=/opt/apache-tomcat-8.5.40/bin/startup.sh
ExecStop=/opt/apache-tomcat-8.5.40/bin/shutdown.sh
ExecReStart=/opt/apache-tomcat-8.5.40/bin/shutdown.sh;/opt/apache-tomcat-8.5.40/bin/startup.sh

[Install]
WantedBy=multi-user.target

tomcat.service の権限変更と起動設定

[root@centos7-101 ~]# chmod 755 /etc/systemd/system/tomcat.service
[root@centos7-101 ~]# ll /etc/systemd/system/tomcat.service
-rwxr-xr-x. 1 root root 406  4月 29 19:30 /etc/systemd/system/tomcat.service
[root@centos7-101 ~]# systemctl enable tomcat.service
Created symlink from /etc/systemd/system/multi-user.target.wants/tomcat.service to /etc/systemd/system/tomcat.service.
[root@centos7-101 ~]# systemctl status tomcat.service
● tomcat.service - Apache Tomcat 8
   Loaded: loaded (/etc/systemd/system/tomcat.service; enabled; vendor preset: disabled)
   Active: inactive (dead)

 4月 29 19:31:50 centos7-101 systemd[1]: [/etc/systemd/system/tomcat.service:14] Unknown lval...ce'
 4月 29 19:31:51 centos7-101 systemd[1]: [/etc/systemd/system/tomcat.service:14] Unknown lval...ce'
Hint: Some lines were ellipsized, use -l to show in full.

Firewall設定を追加

[root@centos7-101 ~]# firewall-cmd --list-all
public (active)
  target: default
  icmp-block-inversion: no
  interfaces: eth0
  sources: 
  services: ssh dhcpv6-client
  ports: 
  protocols: 
  masquerade: no
  forward-ports: 
  source-ports: 
  icmp-blocks: 
  rich rules: 

[root@centos7-101 ~]# firewall-cmd --add-service=http --permanent
success
[root@centos7-101 ~]# firewall-cmd --add-service=https --permanent
success

[root@centos7-101 ~]# firewall-cmd --reload
success
[root@centos7-101 ~]# firewall-cmd --list-all
public (active)
  target: default
  icmp-block-inversion: no
  interfaces: eth0
  sources: 
  services: ssh dhcpv6-client http https
  ports: 
  protocols: 
  masquerade: no
  forward-ports: 
  source-ports: 
  icmp-blocks: 
  rich rules: 
    
[root@centos7-101 ~]# firewall-cmd --add-port=8080/tcp --permanent
success
[root@centos7-101 ~]# firewall-cmd --reload
success
[root@centos7-101 ~]# firewall-cmd --list-all
public (active)
  target: default
  icmp-block-inversion: no
  interfaces: eth0
  sources: 
  services: ssh dhcpv6-client http https
  ports: 8080/tcp
  protocols: 
  masquerade: no
  forward-ports: 
  source-ports: 
  icmp-blocks: 
  rich rules: 

起動してみましょう。

[root@centos7-101 ~]# systemctl start tomcat.service
[root@centos7-101 ~]# systemctl status tomcat.service
● tomcat.service - Apache Tomcat 8
   Loaded: loaded (/etc/systemd/system/tomcat.service; enabled; vendor preset: disabled)
   Active: active (exited) since 月 2019-04-29 19:45:52 JST; 51s ago
  Process: 5387 ExecStart=/opt/apache-tomcat-8.5.40/bin/startup.sh (code=exited, status=0/SUCCESS)
 Main PID: 5387 (code=exited, status=0/SUCCESS)
   CGroup: /system.slice/tomcat.service
           └─5457 /usr/bin/java -Djava.util.logging.config.file=/opt/apache-tomcat-8.5.40/conf/lo...

 4月 29 19:45:52 centos7-101 systemd[1]: Starting Apache Tomcat 8...
 4月 29 19:45:52 centos7-101 startup.sh[5387]: Using CATALINA_BASE:   /opt/apache-tomcat-8.5.40
 4月 29 19:45:52 centos7-101 startup.sh[5387]: Using CATALINA_HOME:   /opt/apache-tomcat-8.5.40
 4月 29 19:45:52 centos7-101 startup.sh[5387]: Using CATALINA_TMPDIR: /opt/apache-tomcat-8.5....emp
 4月 29 19:45:52 centos7-101 startup.sh[5387]: Using JRE_HOME:        /usr
 4月 29 19:45:52 centos7-101 startup.sh[5387]: Using CLASSPATH:       /opt/apache-tomcat-8.5....jar
 4月 29 19:45:52 centos7-101 systemd[1]: Started Apache Tomcat 8.
Hint: Some lines were ellipsized, use -l to show in full.

アクセスしてみます。

http://TomcatをインストールしたサーバのIPアドレス:8080

knowledge インストール

ここまでで事前準備完了です。

knowledge のインストール

knowledge のインストールというか、ダウンロードしたファイルを配置する内容です。

[root@centos7-101 ~]# cd /opt/tomcat/webapps/
[root@centos7-101 webapps]# wget https://github.com/support-project/knowledge/releases/download/v1.13.1/knowledge.war
--2019-04-30 09:50:27--  https://github.com/support-project/knowledge/releases/download/v1.13.1/knowledge.war
github.com (github.com) をDNSに問いあわせています... 192.30.255.112, 192.30.255.113
github.com (github.com)|192.30.255.112|:443 に接続しています... 接続しました。
HTTP による接続要求を送信しました、応答を待っています... 302 Found
場所: https://github-production-release-asset-2e65be.s3.amazonaws.com/28609126/528f6578-8dd7-11e8-9405-348640055993?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=AKIAIWNJYAX4CSVEH53A%2F20190430%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20190430T005027Z&X-Amz-Expires=300&X-Amz-Signature=7ab4c7d7c28bcf169b9641a40c722b7daf0d973bbec17a18e4caaae33ebde247&X-Amz-SignedHeaders=host&actor_id=0&response-content-disposition=attachment%3B%20filename%3Dknowledge.war&response-content-type=application%2Foctet-stream [続く]
--2019-04-30 09:50:27--  https://github-production-release-asset-2e65be.s3.amazonaws.com/28609126/528f6578-8dd7-11e8-9405-348640055993?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=AKIAIWNJYAX4CSVEH53A%2F20190430%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20190430T005027Z&X-Amz-Expires=300&X-Amz-Signature=7ab4c7d7c28bcf169b9641a40c722b7daf0d973bbec17a18e4caaae33ebde247&X-Amz-SignedHeaders=host&actor_id=0&response-content-disposition=attachment%3B%20filename%3Dknowledge.war&response-content-type=application%2Foctet-stream
github-production-release-asset-2e65be.s3.amazonaws.com (github-production-release-asset-2e65be.s3.amazonaws.com) をDNSに問いあわせています... 52.216.177.51
github-production-release-asset-2e65be.s3.amazonaws.com (github-production-release-asset-2e65be.s3.amazonaws.com)|52.216.177.51|:443 に接続しています... 接続しました。
HTTP による接続要求を送信しました、応答を待っています... 200 OK
長さ: 130224478 (124M) [application/octet-stream]
`knowledge.war' に保存中

100%[==========================================================>] 130,224,478 7.85MB/s 時間 39s    

2019-04-30 09:51:07 (3.20 MB/s) - `knowledge.war' へ保存完了 [130224478/130224478]

[root@centos7-101 webapps]# ll /opt/tomcat/webapps/
合計 127184
drwxr-x---.  3 tomcat tomcat      4096  4月 29 19:17 ROOT
drwxr-x---. 14 tomcat tomcat      4096  4月 29 19:17 docs
drwxr-x---.  6 tomcat tomcat        83  4月 29 19:17 examples
drwxr-x---.  5 tomcat tomcat        87  4月 29 19:17 host-manager
drwxr-x---. 10 tomcat tomcat       136  4月 30 09:51 knowledge
-rw-r--r--.  1 root   root   130224478  7月 22  2018 knowledge.war
drwxr-x---.  5 tomcat tomcat       103  4月 29 19:17 manager
[root@centos7-101 webapps]# systemctl restart tomcat

webブラウザからアクセスしてみます。
次のような画面が開けば、構築完了です。たぶん。

http://TomcatをインストールしたサーバのIPアドレス:8080/knowledge

knowledge インストール

URLを変えてみるとトップ画面に繋がるようです。

TomcatをインストールしたサーバのIPアドレス:8080/knowledge/index

knowledge インストール

この後は初期セットアップが必要です。
https://information-knowledge.support-project.org/initial-setup-ja