JavaのWebアプリケーションサーバーの構築手順
JDKのインストール
OracleのダウンロードページからLinux版JDKをダウンロードする.
- 「Accept License Agreement」をチェックしてダウンロード.
- 執筆時点の最新版はjdk-8u45-linux-x64.rpm
-
64bit Linux 用の「Linux x64」は tar.gz 版と RPM 版がありますが、今回は RPM 版.
scpコマンドまたはFTPツール等でサーバーにjdkをアップロード.
JDKのインストール
rpm コマンドだけでインストールは完了する.
# rpm -ivh jdk-8u45-linux-x64.rpm
準備しています... ################################# [100%]
更新中 / インストール中...
1:jdk1.8.0_45-2000:1.8.0_45-fcs ################################# [100%]
Unpacking JAR files...
rt.jar...
jsse.jar...
charsets.jar...
tools.jar...
localedata.jar...
jfxrt.jar...
plugin.jar...
javaws.jar...
deploy.jar...
JDKのインストール先の確認
$ ls -l /usr/java/
合計 4
lrwxrwxrwx 1 root root 16 6月 7 09:42 default -> /usr/java/latest
drwxr-xr-x 9 root root 4096 6月 7 09:42 jdk1.8.0_45
lrwxrwxrwx 1 root root 21 6月 7 09:42 latest -> /usr/java/jdk1.8.0_45
- 実態は /usr/java/jdk1.8.0_45 配下にインストールされている.
- 2つのリンク default と latest が作成されている.
環境変数の設定
64bit Linux 用の「Linux x64」は tar.gz 版と RPM 版がありますが、今回は RPM 版.
scpコマンドまたはFTPツール等でサーバーにjdkをアップロード.
JDKのインストール
rpm コマンドだけでインストールは完了する.
# rpm -ivh jdk-8u45-linux-x64.rpm
準備しています... ################################# [100%]
更新中 / インストール中...
1:jdk1.8.0_45-2000:1.8.0_45-fcs ################################# [100%]
Unpacking JAR files...
rt.jar...
jsse.jar...
charsets.jar...
tools.jar...
localedata.jar...
jfxrt.jar...
plugin.jar...
javaws.jar...
deploy.jar...
$ ls -l /usr/java/
合計 4
lrwxrwxrwx 1 root root 16 6月 7 09:42 default -> /usr/java/latest
drwxr-xr-x 9 root root 4096 6月 7 09:42 jdk1.8.0_45
lrwxrwxrwx 1 root root 21 6月 7 09:42 latest -> /usr/java/jdk1.8.0_45
~/.bash_profile へ追記
export JAVA_HOME=/usr/java/default
- 次回、最新のJDKをインストールしたとき、パス設定を変更不要とするためにJAVA_HOME を /usr/java/default とする.
変更した ~/.bash_profile を有効化
$ source ~/.bash_profile
Tomcatのインストール
Tomcatの公式ホームページからパッケージをダウンロードする.
Coreの中の[tar.gz]をダウンロードすれば良い。 8.0.23ならapache-tomcat-8.0.23.tar.gzというファイルになる.
ダウンロードしたtar.gzを/usr/localに展開する
```
# tar xvzf apache-tomcat-8.0.23.tar.gz
# mv apache-tomcat-8.0.23 /usr/local
```
Tomcat管理ユーザーを作成する
- Tomcatをroot権限で扱っていると、セキュリティホールがあった時に サーバのroot権限が取られる可能性がある.
- そこで実行専用のユーザとして、tomcatというアカウントを作成する.
- このtomcatユーザは、-s オプションでログインシェルに/sbin/nologinを指定して通常利用はできないようにしておく.
# useradd -s /sbin/nologin tomcat
展開後、ディレクトリのオーナーをtomcatユーザーにする.
# cd /usr/local
# chown -R tomcat:tomcat apache-tomcat-8.0.23
tomcatという名前でシンボリックリンクを作成しておく
# ln -s apache-tomcat-8.0.23 tomcat
/usr/local/tomcat/logs/内のファイルオーナーをtomcatユーザーにする
chown tomcat:tomcat /usr/local/tomcat/logs/*
環境変数の設定
~/.bash_profile へ追記
export CATALINA_HOME=/usr/local/tomcat
変更した ~/.bash_profile を有効化
$ source ~/.bash_profile
Tomcatの起動確認
- 実行権限の確認
# ls -l /usr/local/tomcat/bin/
-rw-r--r-- 1 tomcat tomcat 28386 5月 19 15:00 bootstrap.jar
-rw-r--r-- 1 tomcat tomcat 1647 5月 19 15:03 catalina-tasks.xml
-rw-r--r-- 1 tomcat tomcat 13825 5月 19 15:00 catalina.bat
- 実行権限の付与
# chmod +x /usr/local/tomcat/bin/*
- 再確認
# ls -l /usr/local/tomcat/bin/
rwxr-xr-x 1 tomcat tomcat 28386 5月 19 15:00 bootstrap.jar
-rwxr-xr-x 1 tomcat tomcat 1647 5月 19 15:03 catalina-tasks.xml
-rwxr-xr-x 1 tomcat tomcat 13825 5月 19 15:00 catalina.bat
- 起動
# /usr/local/tomcat/bin/startup.sh
Using CATALINA_BASE: /usr/local/tomcat
Using CATALINA_HOME: /usr/local/tomcat
Using CATALINA_TMPDIR: /usr/local/tomcat/temp
Using JRE_HOME: /usr/java/default
Using CLASSPATH: /usr/local/tomcat/bin/bootstrap.jar:/usr/local/tomcat/bin/tomcat-juli.jar
Tomcat started.
- 停止
# /usr/local/tomcat/bin/shutdown.sh
Using CATALINA_BASE: /usr/local/tomcat
Using CATALINA_HOME: /usr/local/tomcat
Using CATALINA_TMPDIR: /usr/local/tomcat/temp
Using JRE_HOME: /usr/java/default
Using CLASSPATH: /usr/local/tomcat/bin/bootstrap.jar:/usr/local/tomcat/bin/tomcat-juli.jar
自動起動スクリプト作成
init.dにスクリプトを新規登録.
# vim /etc/rc.d/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=/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
確認
# ls -l /etc/rc.d/init.d/tomcat
-rw-r--r-- 1 root root 1603 6月 7 12:05 /etc/rc.d/init.d/tomcat
実行権限を付与
# chmod +x /etc/rc.d/init.d/tomcat
再確認
# ls -l /etc/rc.d/init.d/tomcat
-rwxr-xr-x 1 root root 1603 6月 7 12:05 /etc/rc.d/init.d/tomcat
起動スクリプトからの起動確認
# /etc/rc.d/init.d/tomcat start
tomcat を起動中: [ OK ]
停止
# /etc/rc.d/init.d/tomcat stop
tomcat を停止中: [ OK ]
自動起動登録
chkconfig確認
# chkconfig --list tomcat
サービス tomcat は chkconfig をサポートしますが実行レベルで参照されていません (run 'chkconfig --add tomcat')
chkconfig にTomcatを追加
# chkconfig --add tomcat
もう一度確認
chkconfig --list tomcat
tomcat 0:off 1:off 2:on 3:on 4:on 5:on 6:off
Tomcat自動起動セット
# chkconfig tomcat on
Apache/Tomcatの連携設定
Apacheの設定ファイル追加
- http:/ホスト名/hello/で始まるURLを使ってアクセスがあった場合にTomcat側のファイルを呼び出すようにする.そこでセクションコンテナとして「Location」を使う。
- Tomcat側へアクセスを飛ばす設定をこの中に記述する。Tomcat側へはAJP/1.3プロトコルで8009番ポートを使って接続を行う
- 下記のように/etc/httpd/conf/extra/httpd-proxy.confに追記
mkdir /etc/httpd/conf/extra
vim /etc/httpd/conf/extra/httpd-proxy.conf
<Location /hello/>
ProxyPass ajp://localhost:8009/hello/
</Location>
/etc/httpd/conf/httpd.confファイルに「Include」を使って上で作成した「httpd-proxy.conf」を呼び出すようにする
# vim /etc/rc.d/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=/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
# ls -l /etc/rc.d/init.d/tomcat
-rw-r--r-- 1 root root 1603 6月 7 12:05 /etc/rc.d/init.d/tomcat
# chmod +x /etc/rc.d/init.d/tomcat
# ls -l /etc/rc.d/init.d/tomcat
-rwxr-xr-x 1 root root 1603 6月 7 12:05 /etc/rc.d/init.d/tomcat
# /etc/rc.d/init.d/tomcat start
tomcat を起動中: [ OK ]
# /etc/rc.d/init.d/tomcat stop
tomcat を停止中: [ OK ]
chkconfig確認
# chkconfig --list tomcat
サービス tomcat は chkconfig をサポートしますが実行レベルで参照されていません (run 'chkconfig --add tomcat')
chkconfig にTomcatを追加
# chkconfig --add tomcat
もう一度確認
chkconfig --list tomcat
tomcat 0:off 1:off 2:on 3:on 4:on 5:on 6:off
Tomcat自動起動セット
# chkconfig tomcat on
Apache/Tomcatの連携設定
Apacheの設定ファイル追加
- http:/ホスト名/hello/で始まるURLを使ってアクセスがあった場合にTomcat側のファイルを呼び出すようにする.そこでセクションコンテナとして「Location」を使う。
- Tomcat側へアクセスを飛ばす設定をこの中に記述する。Tomcat側へはAJP/1.3プロトコルで8009番ポートを使って接続を行う
- 下記のように/etc/httpd/conf/extra/httpd-proxy.confに追記
mkdir /etc/httpd/conf/extra
vim /etc/httpd/conf/extra/httpd-proxy.conf
<Location /hello/>
ProxyPass ajp://localhost:8009/hello/
</Location>
/etc/httpd/conf/httpd.confファイルに「Include」を使って上で作成した「httpd-proxy.conf」を呼び出すようにする
mkdir /etc/httpd/conf/extra
vim /etc/httpd/conf/extra/httpd-proxy.conf
<Location /hello/>
ProxyPass ajp://localhost:8009/hello/
</Location>
/etc/httpd/conf/httpd.confファイルに下記を追加
Include conf/extra/httpd-proxy.conf
httpdのリロード
/etc/rc.d/init.d/httpd reload
http:://ホスト名/hello/でブラウザからアクセス
Author And Source
この問題について(JavaのWebアプリケーションサーバーの構築手順), 我々は、より多くの情報をここで見つけました https://qiita.com/Uejun/items/adb428cccf96f8509b8f著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .