ApacheとTomcat

サーバー運用がかなり厳しいので寄付をしてくれる人がいたらこちら
メインPCもボロボロになってきたので、ついにほしいものリスト公開

いや、特にこれといって使うものは無いんですが、
なんとなく例によって全部最新版で入れてみました?

Java: http://java.sun.com/
Tomcat: http://tomcat.apache.org/

事前準備

まずはj2sdkをいれましょう。
http://java.sun.com/javase/downloads/index.jsp
ここのDownload JDKのボタンをクリックして
Linux x64 - Self Extracting Installer
のjdk-6u25-linux-x64.binをダウンロードします。

chmod 755 jdk-6u25-linux-x64.bin
./jdk-6u25-linux-x64.bin
cp -r jdk1.6.0_25 /usr/local/j2sdk
vi ~/.bash_profile
#以下を追加
export JAVA_HOME=/usr/local/j2sdk
export PATH=$PATH:$JAVA_HOME/bin
source ~/.bash_profile

これで事前準備は完了です。
次にTomcatのインストールです。

cd /usr/local/src/
wget http://ftp.jaist.ac.jp/pub/apache/tomcat/tomcat-7/v7.0.14/src/apache-tomcat-7.0.14-src.tar.gz
tar zxvf apache-tomcat-7.0.14.tar.gz
cp -r apache-tomcat-7.0.14 /usr/local/tomcat
 
wget http://www.apache.org/dist/tomcat/tomcat-connectors/jk/source/jk-1.2.28/tomcat-connectors-1.2.28-src.tar.gz
tar zxvf tomcat-connectors-1.2.28-src.tar.gz
cd tomcat-connectors-1.2.28-src/native/
./configure --with-apxs=/usr/local/apache2/bin/apxs \
--with-java-home=/usr/local/j2sdk
make
make install
cp ../conf/workers.properties.minimal /usr/local/apache2/conf/workers.properties

とまぁこれでおしまいです。
次に起動確認をしましょう。

/usr/local/tomcat/bin/catalina.sh start
Using CATALINA_BASE: /usr/local/tomcat
Using CATALINA_HOME: /usr/local/tomcat
Using CATALINA_TMPDIR: /usr/local/tomcat/temp
Using JRE_HOME: /usr/local/j2sdk
 
tail /usr/local/tomcat/logs/catalina.out
~~~
情報: Server startup in 2047 ms

と出るのでhttp://localhost:8080/にアクセスをして、Tomcatのサンプルページが
表示されることを確認しましょう。

Apache2.2.x系と連携する場合

次にhttpdとの連携ですが、
Apache2.2系の場合、コンパイル時に以下のオプションを
つけておくとmod_jkを使わすに連携が出来るため、設定もかなり簡単になります。

--enable-proxy-ajp
--enable-proxy

足りなければ--enable-proxyが付いてるオプションをひたすらくっつけてみると
良いかもしれません。

/usr/local/apache2/conf/httpd.conf

Serveradmin webmaster@example.com
ServerName java.example.com
#JkMount /* ajp13w これのかわりに
 
ProxyPass ajp://localhost:8009/

これでおk。簡単ですね。

Apache2.0.x系と連携する場合

cd /usr/local/apache2/conf
vi workers.properties
worker.list=wlb,jkstatus
↓
worker.list=ajp13w
 
vi httpd.conf

そしてApacheの設定

LoadModule jk_module modules/mod_jk.so
JkWorkersFile /usr/local/apache2/conf/workers.properties
JkLogFile /usr/local/tomcat/logs/mod_jk.log
JkLogLevel info
JkLogStampFormat %a %b %d %H:%M:%S %Y
 
JkShmFile /tmp/jk-shm
 
Serveradmin webmaster@example.com
ServerName java.example.com
JkMount /* ajp13w

以上でApache2.0系の連携設定が完了です。

後は/etc/init.d/httpdに起動と停止時にtomcatも一緒に
起動するようにしておきましょう。

start(){の↓に
if [ -f "/usr/local/tomcat/bin/catalina.sh" ]; then
/usr/local/tomcat/bin/catalina.sh start
fi
 
stop(){の↓に
if [ -f "/usr/local/tomcat/bin/catalina.sh" ]; then
/usr/local/tomcat/bin/catalina.sh stop
fi

これでhttp://java.example.com/にアクセスをすると
http://localhost:8080で見たときと同じものが見えるようになっているはずです。

~~以下編集中~~

ドキュメントルート:/usr/local/tomcat/webapps/ROOT
ドキュメントルート配下:/usr/local/tomcat/webapps

マネージャーにアクセスをする

/usr/local/tomcat/conf/tomcat-users.xml

http://java.example.com/manager/html/でID:admin PASS: adminpassをすると
ログインが出来るようになります。

マネージャーのパスワードを暗号化する

/usr/local/tomcat/conf/server.xml

変更前
 
 resourceName="UserDatabase"/>
 
変更後
 
 resourceName="UserDatabase" digest="SHA-1"/>

digest="SHA-1"が追加してあります。

次に暗号化パスワードの生成を

echo -n test(暗号化したいパスワード) | sha1sum
(ランダムな文字列) -

(ランダムな文字列)をコピーしてtomcat-users.xmlのpassword=""に入れる
tomcat7からはmanagerではなくmanager-guiなどといった詳細な分け方になったらしい。

アプリケーションの配置

cp hoge.war /usr/local/tomcat/webapps
/etc/init.d/httpd restart

tomcatマネージャを使用することでウェブ上で自動的に配置することも可能

メモリ量調整

/usr/local/tomcat/bin/catalina.sh

# $Id: catalina.sh,v~~~の↓に追加
CATALINA_OPTS="-Xmx512M -Xms512M -Xss256K"
 
Xms 初期ヒープサイズ 
Xmx 最大ヒープサイズ 
Xss スレッドスタックサイズ
Apache経由のみの起動

/usr/local/tomcat/conf/server.xml

以下を削除
 
maxThreads="150" connectionTimeout="20000"
redirectPort="8443" />

catalina.sh以外の起動方法

Tomcat7ではjsvcが亡くなったっぽいですよ

と思ったらcommons-daemon-native.tar.gzって名前になってたですよ

cd /usr/local/tomcat/bin
# tomcat >= 7
tar zxfv commons-daemon-native.tar.gz
cd commons-daemon-1.0.10-native-src/unix
#64bitの場合
export CFLAGS=-m64
export LDFLAGS=-m64
#64bitの場合ここまで
./configure --with-java=/usr/local/j2sdk
make 
cp jsvc ../../
# tomcat <= 6
tar zxvf jsvc.tar.gz
cd jsvc-src/
./configure
make
cp
native/Tomcat5.sh /etc/init.d/tomcat
chmod 755 /etc/init.d/tomcat

tomcat7ではnative/Tomcat5.shに当たるものが無いので/usr/local/tomcat/bin/daemon.shで代替としてやるらしいです?
ただ、64bitの場合libcap-devel.i386が無いと起動しないかも
その場合はインストールするか、ソースいじってください

ソースいじる場合

vi commons-daemon-1.0.10-native-src/unix/native/jsvc-unix.c
static const char *libcap_locs[] = {
~~
    "/lib64/libcap.so",
    NULL
};

という感じでlibcap.soの追加をしてあげるといいです

必要に応じて/etc/init.d/tomcat内の環境変数を変更(以下デフォルト)

JAVA_HOME=/home2/java/j2sdk1.4.2_03
CATALINA_HOME=/home/tomcat5/tomcat5/jakarta-tomcat-5/build
DAEMON_HOME=/home/jfclere/daemon
TOMCAT_USER=tomcat5
 
# for multi instances adapt those lines.
TMP_DIR=/var/tmp
PID_FILE=/var/run/jsvc.pid
CATALINA_BASE=/home/tomcat5/tomcat5/jakarta-tomcat-5/build
 
CATALINA_OPTS="-Djava.library.path=/home/jfclere/jakarta-tomcat-connectors/jni/native/.libs"

/etc/init.d/httpdの以下を変更

/usr/local/tomcat/bin/catalina.sh start
/usr/local/tomcat/bin/catalina.sh stop
 
↓
 
/etc/init.d/tomcat start
/etc/init.d/tomcat stop

コメントを追加

Plain text

  • HTMLタグは利用できません。
  • ウェブページアドレスとメールアドレスは、自動的にハイパーリンクに変換されます。
  • 行と段落は自動的に折り返されます。
CAPTCHA
また変更しました
Fill in the blank.