- 追加された行はこの色です。
- 削除された行はこの色です。
#author("2019-08-16T11:19:39+00:00","default:wikiwriter","wikiwriter")
&tag(Tomcat/設定);
*目次 [#icbe158f]
#contents
*関連ページ [#b82e2306]
-[[Tomcat]]
*参考情報 [#b923cd2d]
*CentOS6へTomat6のインストール [#h8cb51c1]
*ログの設定 [#jbb1fa3a]
-apache-tomcat-6.0.35.tar.gzを公式サイトからダウンロードし、/usr/localで展開。usr/local/tomcatにシンボリックリンクを張る
# ln -s apache-tomcat-6.0.35 tomcat
-tomcatユーザーを作る
# useradd -d /var/empty/tomcat -s /sbin/nologin tomcat
-オーナーを変更。
# chown -R tomcat.tomcat apache-tomcat-6.0.35
-自動起動設定
-次のファイルを/etc/init.d/tomcatとして保存する。
**ログファイルの整理 [#m17fb78c]
-デフォルト状態だといろいろ出力されてうっとうしい。
-[[Tomcat の初期設定まとめ - Qiita:https://qiita.com/hidekatsu-izuno/items/ab604b6c764b5b5a86ed]]を参考にして必要最低限する。
-conf/logging.propertiesを変更。
#pre{{
#!/bin/sh
#
# Startup script for Apache Tomcat 5.5
#
# chkconfig: 2345 85 15
# description: Apache Tomcat Java Servlets and JSP server
# processname: tomcat
# pidfile: /var/run/tomcat.pid
# config: /usr/local/tomcat/conf/server.xml
handlers = 1catalina.org.apache.juli.AsyncFileHandler
.handlers = 1catalina.org.apache.juli.AsyncFileHandler
# Source function library.
. /etc/rc.d/init.d/functions
1catalina.org.apache.juli.AsyncFileHandler.level = FINE
1catalina.org.apache.juli.AsyncFileHandler.directory = ${catalina.base}/logs
1catalina.org.apache.juli.AsyncFileHandler.prefix = catalina.
1catalina.org.apache.juli.AsyncFileHandler.maxDays = 90
1catalina.org.apache.juli.AsyncFileHandler.encoding = UTF-8
# Source networking configuration.
. /etc/sysconfig/network
###### added here #####
export JAVA_HOME=/usr/java/default
export PATH=$JAVA_HOME/bin:$PATH
export TOMCAT_HOME=/usr/local/tomcat
export CATALINA_HOME=/usr/local/tomcat
###### added here #####
org.apache.catalina.core.ContainerBase.[Catalina].[localhost].level = INFO
org.apache.catalina.core.ContainerBase.[Catalina].[localhost].handlers = 2localhost.org.apache.juli.AsyncFileHandler
}}
-さらにserver.xmlファイルを編集し、localhost_access_log.YYYY-MM-DD.txt をlocalhost_access_logに変更する。
#pre{{
<Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
prefix="localhost_access_log" suffix=".txt"
rotatable="false"
pattern="combined"
/>
}}
-これでcatalina.out、catalina.YYYY-MM-DD.log、localhost_access_log.txt のみとなる(rotatable="false"がポイント)
TOMCAT_SCRIPT=$CATALINA_HOME/bin/catalina.sh
TOMCAT_USER=tomcat
[ -f $TOMCAT_SCRIPT ] || exit 0
# See how we were called.
case "$1" in
start)
# Start daemons.
if [ -f /var/lock/subsys/tomcat ] ; then
echo "Tomcat already started!"
exit 1
fi
echo -n "Starting Tomcat: "
#/bin/su -s /bin/bash - $TOMCAT_USER -c "$TOMCAT_SCRIPT start" >/tmp/tomcat.log 2>&1
###### su->runuser by src #####
/sbin/runuser -p -s /bin/bash - $TOMCAT_USER -c "$TOMCAT_SCRIPT start"
RETVAL=$?
echo
[ $RETVAL = 0 ] && touch /var/lock/subsys/tomcat
;;
stop)
# Stop daemons.
if [ ! -f /var/lock/subsys/tomcat ] ; then
echo "Tomcat already stopped!"
exit 1
fi
echo -n "Shutting down Tomcat: "
$TOMCAT_SCRIPT stop
RETVAL=$?
echo
[ $RETVAL = 0 ] && rm -f /var/lock/subsys/tomcat
;;
status)
status tomcat
exit $?
;;
restart)
$0 stop
$0 start
;;
*)
echo "Usage: $TOMCAT_PROG {start|stop|status|restart}"
exit 1
esac
exit 0
**ログローテーション [#i9ae65d1]
-上記3つのログファイルをログローテーションする。[[Tomcatログローテートメモ書き - Qiita:https://qiita.com/is_s/items/68ea9b1d1f20d8b48f5b]]
-catalina.outとlocalhost_access_log.txt は、logrotateでローテーションする。
#pre{{
$ sudo vim /etc/logrotate.d/tomcat8
/opt/tomcat/apache-tomcat-8.5.29/logs/catalina.out
/opt/tomcat/apache-tomcat-8.5.29/logs/localhost_access.txt
{
copytruncate
daily
rotate 7
compress
missingok
create 0644 tomcat tomcat
}
}}
-chmod 755 tomcatを実行。
-chkconfigを実行
# chkconfig --add tomcat
-Tomcatの設定ファイルを編集。/usr/local/tomcat/conf/tomcat-user.xmlを変更。アプリケーションを配備する際のユーザー/パスワードは、tomcat/tomcat(変更すること)。
-catalina.YYYY-MM-DD.logはログローテーションされるが古いファイルが残るので以下で削除する。
#pre{{
<?xml version='1.0' encoding='utf-8'?>
<tomcat-users>
<role rolename="tomcat"/>
<role rolename="role1"/>
<role rolename="manager"/>
<role rolename="admin"/>
<user username="tomcat" password="tomcat" roles="tomcat,manager,admin"/>
<user username="role1" password="tomcat" roles="role1"/>
<user username="both" password="tomcat" roles="tomcat,role1"/>
</tomcat-users>
#!/bin/bash
LOG_DIR=/opt/tomcat/apache-tomcat-8.5.29/logs/
delfiles=`find ${LOG_DIR}*.log -mtime +7`
for a in $delfiles
do
echo -e "delete file: ${a}" > /dev/null 2>&1
rm -f ${a}
done
}}
-以上により通常使用のtomcat環境のセットアップ完了。/etc/init.d/tomcat startでTomcatが起動する。/etc/init.d/tomcat stopでTomcat終了。
*解析 [#ka90405e]
**終了時の処理 [#o524a34c]
-catalina.shによると、CATALINA_PIDが設定されていなくても終了処理は行われている。
#pre{{
eval "\"$_RUNJAVA\"" $LOGGING_MANAGER $JAVA_OPTS \
-Djava.endorsed.dirs="\"$JAVA_ENDORSED_DIRS\"" -classpath "\"$CLASSPATH\"" \
-Dcatalina.base="\"$CATALINA_BASE\"" \
-Dcatalina.home="\"$CATALINA_HOME\"" \
-Djava.io.tmpdir="\"$CATALINA_TMPDIR\"" \
org.apache.catalina.startup.Bootstrap "$@" stop
}}