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.