なんやかんやで Tomcat を80ポートで動かしたくなることってあると思います。
・わざわざ Apache を動かすのはなんかたるい...
・できれば、Tomcat だけでなんとかしたい!
・でも、Tomcatだけでやろうと思っても、80ポートは root じゃないと使えない...
・root 権限で Tomcat 動かすのは絶対やだ!!
こんなときは jsvc を使って 任意のユーザをオーナにして Tomcat を デーモンモードで動かすのが一つのやり方です。
まずはjsvcのインストール
jsvc は $CATALINA_BASE/binにソースが入っています。
cd $CATALINA_HOME/bin tar xvfz jsvc.tar.gz cd jsvc-src autoconf ./configure make cp jsvc .. cd ..
次に起動用スクリプトの作成
とりあえず、こんなかんじで...
TOMCAT_USER に Tomcat のオーナになるユーザを指定します。
% vi $CATALINA_BASE/bin/jsvc-startup.sh #!/bin/sh export JAVA_HOME=/usr/local/jdk1.6.0_11 export JRE_HOME=$JAVA_HOME/jre/ export CATALINA_BASE=$HOME/apache-tomcat-5.5.23 export CATALINA_HOME=$CATALINA_BASE export CATALINA_OPTS="-server" export CATALINA_PID=$CATALINA_BASE/bin/tomcat.pid export CATALINA_TMPDIR=$CATALINA_BASE export TOMCAT_USER=hoge cd $CATALINA_HOME ./bin/jsvc \ -user $TOMCAT_USER \ -cp ./bin/bootstrap.jar \ -outfile ./logs/catalina.out \ -errfile ./logs/catalina.err \ -pidfile "$CATALINA_PID" \ \ -Djava.endorsed.dirs=./common/endorsed \ -Dcatalina.home="$CATALINA_HOME" \ -Djava.io.tmpdir="$CATALINA_TMPDIR" \ org.apache.catalina.startup.Bootstrap start
rootになって実行
$ su - # jsvc-startup.sh # ps -ef | grep tomcat
jsvc は root がオーナになっていますが
Tomcat は TOMCAT_USER で指定したユーザがオーナになっているのを確認できると思います。
参考ページ
http://www.klawitter.de/tomcat80.html
http://www.oki.com/jp/oss/document/tomcat/tomcat-docs-ja/setup.html
やり方としては他に カーネルベースのポートフォワーディングを使うやり方もあるようです。かなり力業という気もしますが...
参考ページ
http://www.linux-java-memo.com/Java/TomcatOnPort80.html
ではでは