LoginSignup
11
7

More than 5 years have passed since last update.

ラズパイ3でqiitaライクなknowledgeをtomcat8で動かす

Last updated at Posted at 2016-08-12

概要

普段、自分は自宅にRaspberry Pi 3にApache2をapt-getでインストールしてホストしてますが、普段qiitaにあまり投稿してなくても結構、問題をSolveするのに使わせてもらっていて、自分もそんなサービスをホストできたらいいなって思って導入してみました。
今回はRaspberry Pi 3で構築してるのは、knowledgeのサーバ要件がtomcat8以上、Java8だったためです。おそらく、Raspverry Pi 2にそれぞれtomcat8、Java8をインストールしてやってみてもできるとは思いますが面倒だったのでやってません。
誰かやってみてください。
あと、knowledgeを動かすと書いてありますが、BitBucketも動きます

Java8のインストール

自分が試した時点ではJava8はインストールされていなかったので、wgetでもってきて適当なところに置いてあげます。
ひとつもってくるときに難があり、オラクルのダウンロードリンクをどこからか持ってきてwgetしてもダウンロードできません。
理由は実際にダウンロードすれば分かるようにライセンスにAgreementしないといけないためです。つまり、いろいろwgetでインストールするよりもSCPしてやったらいいです。
SCPについては、ネットでググってください。
以下のサイトからjava8のLinux ARM 32 Hard Float ABIをダウンロードします。

http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html

SCPでファイルを転送したディレクトリに移動して

$ sudo tar zxvf jdk-8u91-linux-arm32-vfp-htlt.tar.gz -C /opt

今回は/opt以下に展開します。
次に、Javaのバージョン管理をするaleternativeを使用してデフォルトで使用しているバージョンを変更します。

$ sudo update-alternatives --config java

選択肢に番号が表示されているので、今回インストールしたパスを番号で指定してください。
指定できたらjava -versionで

java version "1.8.0_91"

と表示されれば正しく変更されています。

また、もう一つの方法としてapt-getでインストールする方法があります。
インストールできるjavaは以下のコマンドで確認できます。

$ pi@raspberrypi:~$ sudo apt-cache search java8
oracle-java8-jdk - Java™ Platform, Standard Edition 8 Development Kit

と検索結果が表示され、このjava8を

$ sudo apt-get install oracle-java8-jdk

でインストールしてから設定しても構いません。

tomcat8のインストール

どこからかバイナリデータを持ってきて、ビルドしてもいいのですが、今回はapt-getでインストールします。

$ sudo apt-get install tomcat8 tomcat8-admin tomcat8-common tomcat8-docs tomcat8-examples tomcat8-user

もしインストールできない場合は

$ sudo apt-get update

して再度実行してください。

tomcat8まわりの諸設定

CATALINA_HOMEとJDK_HOMEの設定

まず、tomcat8で使われているCATALINAというサーブレットコンテナのホームフォルダを指定してやる必要があります。あと、サーブレットコンテナが参照するJDK_HOMEも設定してやります。その設定は/etc/profile に以下を追加します。
デフォルトのままインストールしているのであれば、CATALINA_HOMEのパスは以下のようになるはずです。

JDK_HOME=/usr/java/default
CATALINA_HOME=/etc/tomcat8/
export JDK_HOME CATALINA_HOME

ルートフォルダの所有者の変更

tomcat8を正常に起動させるためには、フォルダの所有者をtomcat8に変更する必要があります。
デフォルトであれば以下のように指定します。

$ sudo chown -R tomcat8:tomcat8 /etc/tomat8/

これで/etc/tomcat8以下の所有者はtomcat8になります。

tomcat8のマネージャーの設定

tomcat8には標準でアプリケーションマネージャーが存在します。そのアプリケーションマネージャーを使用するには初めにロールの設定をする必要があるので、以下のファイルを編集します。

$ sudo nano /etc/tomcat8/tomcat-users.xml

<tomcat-users>
ユーザ名:tomcat
パスワード:password
と設定するとき、

<tomcat-users>
   ....
   ....
   <role rolename="manager-gui"/>
   <user username="admin" password="password" roles="manager-gui"/>
   ....
   ....
</tomcat-users>

と設定します。

tomcat8をインストールしたときに作られるユーザーのホームディレクトリの変更

実はtomcat8をインストールした際に専用のユーザーが作られますが、なぜかホームディレクトリが/rootになっていたのでこれを適当なtomcat8が所有するフォルダに変更します。

$ sudo mkdir /home/tomcat8/
$ sudo useradd -d /home/tomcat8/ tomcat8

あとはtomcat8で動かすアプリケーションのHOMEを/home/tomcat8/以下にアプリケーション名のフォルダを作り、/etc/profile

[アプリケーション名]_HOME=[/home/tomcat8/[アプリケーション名]]

と設定します。

以上で全ての基本的な設定は終わったので、/etc/profile/を反映させるために再起動します。

$ sudo service reboot

して
アプリケーションマネージャーにアクセスするなら、[自分のアドレス]:8080/manager/で先ほど設定したユーザ名とパスワードを入力する
配備したアプリケーションにアクセスするなら、[自分のアドレス]:8080/[アプリケーション名]/にアクセスすれば動くはずです。

構築した感じとしては、違うサーバからajpで接続して同一のアドレスで運用するのがいいのかもしれません。いちいち:8080/をつけるのか面倒なので

11
7
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
11
7