様々な情報を共有するなら「knowledge」 AWS Centos7へJava8+Tomcat8+httpd(Apache)でインストール備忘
情報の共有ツールとして「knowledge」をAWSのCentOS7へインストールした際のセットアップログを備忘します。
「knowledge」については下記のページを参照してください。
Knowledge - オープンソースのナレッジベース
Knowledgeはオープンソースのナレッジベースです。無料で利用できます。社内イントラネットでの情報の共有にご利用ください。
AWSのAMI ID
CentOS Linux 7 x86_64 HVM EBS 1602-b7ee8a69-ee97-4a49-9e68-afaee216db2e-ami-d7e1d2bd.3 (ami-eec1c380)
を利用しました。
OSのアップデートとjavaのJDKをインストールしてjavaヴァージョンを1.8.0系を指定
sudo yum update sudo yum install java-1.8.0-openjdk sudo alternatives --config java
tomcatをダウンロードして展開
sudo yum install wget wget http://ftp.riken.jp/net/apache/tomcat/tomcat-8/v8.5.13/bin/apache-tomcat-8.5.13.tar.gz tar -xzvf apache-tomcat-8.5.13.tar.gz
tomcatのユーザーとtomcatディレクトリを作成
sudo useradd tomcat sudo mkdir /opt/apache-tomcat sudo mv apache-tomcat-8.5.13 /opt/apache-tomcat sudo chown -R tomcat:tomcat /opt/apache-tomcat
プロファイルを編集してJREやtomcatを設定する
sudo cp /etc/profile /etc/profile_20170408 sudo vi /etc/profile # 以下を末尾に追記 JRE_HOME=/usr/java/default CATALINA_HOME=/opt/apache-tomcat/apache-tomcat-8.5.13 export JRE_HOME CATALINA_HOME source /etc/profile
次にtomcatのサービス起動スクリプトを作成します
sudo vi /etc/init.d/tomcat #!/bin/bash # # Startup script for the Tomcat Servlet Container # # chkconfig: 2345 35 65 # description: Tomcat is the servlet container that is used in the official \ # Reference Implementation for the Java Servlet and JavaServer \ # Pages technologies TOMCAT_USER=tomcat CATALINA_HOME=/opt/apache-tomcat/apache-tomcat-8.5.13 . /etc/rc.d/init.d/functions prog=tomcat start() { echo -n $"Starting $prog: " daemon --user $TOMCAT_USER $CATALINA_HOME/bin/startup.sh > /dev/null RETVAL=$? if [ $RETVAL -eq 0 ]; then echo_success else echo_failure fi echo [ $RETVAL = 0 ] && touch /var/lock/subsys/$prog return $RETVAL } stop() { echo -n $"Stopping $prog: " daemon --user $TOMCAT_USER $CATALINA_HOME/bin/shutdown.sh > /dev/null RETVAL=$? if [ $RETVAL -eq 0 ]; then echo_success else echo_failure fi echo [ $RETVAL = 0 ] && rm -f /var/lock/subsys/$prog return $RETVAL } # See how we were called. case "$1" in start) start ;; stop) stop ;; restart) stop start ;; status) INSTANCES=`ps --columns 512 -aef|grep java|grep tomcat|grep org.apache.catalina.startup.Bootstrap|wc -l` if [ $INSTANCES -eq 0 ]; then echo $prog is stopped RETVAL=3 else if [ $INSTANCES -eq 1 ]; then echo $prog is running 1 instance... else echo $prog is running $INSTANCES instances... fi RETVAL=0 fi ;; *) echo $"Usage: $prog {start|stop|restart|status|help}" exit 1 esac exit $RETVAL
続いて、tomcatの自動起動とhttpd(apache)を連携して80ポートでtomcatが動くようにプロキシ設定する
sudo chmod +x /etc/init.d/tomcat sudo chkconfig --add tomcat sudo yum install httpd sudo vi /etc/httpd/conf.d/httpd-proxy.conf $sudo vi /etc/httpd/conf.d/httpd-proxy.conf # 以下を記述 追記 http://XXX.XXX.XXX.XXX/knowledge ProxyPass ajp://localhost:8009/knowledge
tomcatも同様にプロキシからの通信を受けれるように設定
sudo cp /opt/apache-tomcat/apache-tomcat-8.5.13/conf/server.xml /opt/apache-tomcat/apache-tomcat-8.5.13/conf/server.xml_20170408 sudo vi /opt/apache-tomcat/apache-tomcat-8.5.13/conf/server.xml # 以下のように編集
knowledgeのwarファイルをダウンロードしてtomcatのホームへ移動する
wget https://github.com/support-project/knowledge/releases/download/v1.8.1/knowledge.war sudo mv knowledge.war /opt/apache-tomcat/apache-tomcat-8.5.13/webapps sudo chkconfig httpd on sudo service httpd start sudo service tomcat start
後はhttp(s)://ホスト名(ドメインorIPアドレス)/knowledge でアクセスすれば下記の画面が表示されます。
環境にもよるのでしょうけど、knowledgeのwarファイルを展開後の初回起動時に3分程度80ポートは無反応でミスった?と思いましたが、しばらくすると表示されました。
利用後のレビューと組み込みDBからPostgressへのDB切り替えは後日
Knowledge - オープンソースのナレッジベース
Knowledgeはオープンソースのナレッジベースです。無料で利用できます。社内イントラネットでの情報の共有にご利用ください。