はじめてのVPSとはじめてのJava環境構築。TomcatをインストールしてJava8が実行できる環境にします。
#ここまでの環境
- さくらVPS
- SentOS7
- Apache/2.4.6
「ネコでもわかる!さくらのVPS講座」を読みながらたどたどしく構築した環境を使っていきます。
https://knowledge.sakura.ad.jp/8218/
#Java Runtime Environment(Java実行環境、JRE)のインストール
OpenJDK (Open Java Development Kit)の8を利用。CentOS の標準の yum リポジトリ内に java-1.8.0-openjdk という名前であります。
# yum install java-1.8.0-openjdk
以下のコマンドを実行し、バージョンが複数ある場合は 8 に切り替え。
# alternatives --config java
#Tomcatのインストール
Tomcatの配布ページからtar.gz形式のファイル【apache-tomcat-8.5.34.tar.gz】をダウンロードする
ダウンロードしたファイルをFTPで転送(適当に/var/www/html/testとかWebサーバ構築のときにFTPアクセスを設定したディレクトリアップ)し、下記コマンドでCentOS上で展開。
# tar xvfz apache-tomcat-8.5.34.tar.gz
展開したフォルダを /usr/local ディレクトリ へ移動させる
# mv apache-tomcat-8.5.34 /usr/local
【tomcat】という名称でアクセスできるようにシンボリックリンクを設定する
# cd /usr/local
# ln -s apache-tomcat-8.5.34 tomcat
#MySQL Connector/J の配備
データベース毎の差を吸収してくれるもの。
ダウンロードした中に入っている mysql-connector-java-x.x.x-bin.jar を /usr/local/tomcat/lib に移動
https://dev.mysql.com/downloads/connector/j/5.1.html
# mv mysql-connector-java-x.x.x-bin.jar /usr/local/tomcat/lib
Tomcat Web アプリケーションマネージャの設定
以下はTomcatのGUIを使いたい場合に必要な設定。
GUIなくてもwarファイルを/usr/local/tomcat/webappsに移動させれば配置できる。
– /usr/local/tomcat/conf/tomcat-users.xml に以下の 設定を追加する
<role rolename="admin-gui"/>
<role rolename="manager-gui"/>
<user username="【ユーザー名】" password="【パスワード】" roles="admin-gui,manager-gui"/>
ホストマシン側からTomcatの管理画面へのアクセスを許可する
下記2ファイルに以下の設定を追記する
- /usr/local/tomcat/webapps/manager/METAINF/context.xml
- /usr/local/tomcat/webapps/host-manager/METAINF/context.xml
GUIはデフォルトだとローカル以外からアクセスできないように制限されているので外部からアクセスしたい場合は下記のようにするか、またはコメントアウトする。※セキュリティ注意
<Valve className="org.apache.catalina.valves.RemoteAddrValve"
allow="127¥.¥d+¥.¥d+¥.¥d+|::1|0:0:0:0:0:0:0:1|¥d+¥.¥d+¥.¥d+¥.¥d+"/>
tomcat用8080 ポートの開放
即時反映
# firewall-cmd --zone=public --add-port=8080/tcp
恒久的な設定の反映
# firewall-cmd --zone=public --add-port=8080/tcp --permanent
リロード
# firewall-cmd --reload
設定を確認
# firewall-cmd --list-all
Tomcatの終了、起動
何か変更したら再起動しないと反映されない
# /usr/local/tomcat/bin/startup.sh
# /usr/local/tomcat/bin/shutdown.sh
下記のURLでGUIにアクセスできるようになっていれば成功。
http://【VPSのIPアドレス】:8080/
#Tomcatをサービスとして登録する
サーバーの起動と一緒にTomcatが起動するように設定する。
ユーザを作成する
# useradd -s /sbin/nologin tomcat
tomcat ディレクトリのオーナーを tomcat に 変更する
# chown -R tomcat /usr/local/apache-tomcat-8.x.x
###起動スクリプトファイルの作成
# vi /etc/init.d/tomcat
#!/bin/bash
#
# Startup script for the Tomcat Servlet Container
#
# chkconfig: 2345 80 10
# 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=/usr/local/tomcat
. /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
起動スクリプトファイルに実行権限を付与する
# chmod a+x /etc/init.d/tomcat
chkconfigコマンドでサービスの自動開始を有効 にする
# chkconfig tomcat on