サーバー設定手順 5. JVM,sbtの設定

APIとしてplayframework製のサーバーを設定する例。 playframeworkはScala(もしくはJava)のライブラリであり、ScalaJVM上で実行できる。 まず、JVMをインストールし、Scalaと、Scalaのビルドや実行を行うsbtをインストールする。

Java(OpenJDK)をインストール

ScalaではJava8(Java1.8)を利用する。

# yum install java-1.8.0-openjdk-devel.x86_64

# java -version
# javac -version
openjdk version "1.8.0_181"
OpenJDK Runtime Environment (build 1.8.0_181-b13)
OpenJDK 64-Bit Server VM (build 25.181-b13, mixed mode)

javac 1.8.0_181

(-develがないものもあるが、そちらはjavacがないのでダメ)

scalaのインストール

Scala2.13は策定中なので2.12を利用する

# cd
# wget https://downloads.lightbend.com/scala/2.12.6/scala-2.12.6.rpm
# yum install scala-2.12.6.rpm

# scala -version
Scala code runner version 2.12.6 -- Copyright 2002-2018, LAMP/EPFL and Lightbend, Inc.

sbtのインストール

# cd
# curl https://bintray.com/sbt/rpm/rpm | tee /etc/yum.repos.d/bintray-sbt-rpm.repo
# sudo yum install sbt

# sbt
sbt:root> about
[info] This is sbt 1.2.1

(この方法の確認だとカレントディレクトリにproject, targetディレクトリが作成されるので注意,ただ他に確認の方法がない...) sbtはプロジェクトのあるフォルダで実行すると、ビルド定義ファイルを読み自動的にターゲットのバージョンのsbtをダウンロードして実行してくれる。

プロジェクトの設置

作成中のプロジェクトのフォルダ ywj-play-test をhome/miy/以下に設置

$ cd ~/my-play-project
$ sbt
[my-play-project] $ start -Dplay.evolutions.db.default.autoApply=true -Dapplication.secret=abcdefghijk
  • -Dplay.evolutions.db.default.autoApply=trueはevolutionsの設定
  • -Dapplication.secret=abcdefghijkも設定しないとstartは動かない
(Starting server. Type Ctrl+D to exit logs, the server will remain in background)

と表示される。Ctrl+Dをする前にsshdを閉じるとこのプロセスも道連れになるので注意。

$ psまたは$ ps xfでプロセスを確認。終了するにはkillで良いのだろうか。

firewalldの設定

このAPIではポート9000番を利用するので、firewalldの設定

# firewall-cmd --permanent --zone=public --add-rich-rule="rule family="ipv4" port protocol="tcp" port="9000" accept"
# firewall-cmd --reload

上記の確認は

# firewall-cmd --list-all