CentOS 5.3/Apache/tomcat/Axis2
CentOSにAxis2を入れた。ちょっとハマってしまったのは以下の2点。
- ファイアーウォール/iptablesの設定でhttp(s)のポートを開けること。これはLinuxに慣れている人なら普通のことなのかも。
- JAVA_HOMEの設定を確実にすること。パッケージでインストールされるtomcat 5.5の起動シェルスクリプトで設定ファイルが二つあったため、設定漏れが出た。(/etc/tomcat5/tomcat5.conf と /etc/sysconfig/tomcat5)
以下メモです。
CentOS
$ uname -a
Linux centos002 2.6.18-128.el5 #1 SMP Wed Jan 21 10:44:23 EST 2009 i686 i686 386 GNU/Linux
$ cat /etc/redhat-release
CentOS release 5.3 (Final)
$ cat /proc/version
Linux version 2.6.18-128.el5 (mockbuild@builder16.centos.org) (gcc version 4.1.2 20080704 (Red Hat 4.1.2-44)) #1 SMP Wed Jan 21 10:44:23 EST 2009
Apache
- CentOSに最初から入っていた。
- ApacheのWebサイトではApache HTTP Server 2.2.14が最新で、ちょっとだけ古いみたいだったが、とりあえず使う。
- /usr/sbinにコマンドが、/etc/httpd/confに設定ファイルがあった。
/usr/sbin/apachectl
/usr/sbin/httpd
/etc/httpd/conf/httpd.conf
ServerName ip-address:80
- 自動起動の設定。
# chkconfig httpd on
# chkconfig --list httpd
httpd 0:off 1:off 2:on 3:on 4:on 5:on 6:off
iptables設定
- サーバ内で telnet localhost 80 とやると接続OK。
- しかし、他のマシンからは接続できない。ファイアウォールがあるためのようだ。
- iptablesコマンドでもできるのだろうが、面倒だったのでCentOSのデスクトップにログインして、[システム] [管理] [ファイアウォールの設定]でHTTPとHTTPSを通すように設定変更した。
- 以下のコマンドは試してないけど、コマンドでやるならこんな感じ?
iptables -A RH-Firewall-1-INPUT -p tcp -m state --state NEW -m tcp --dport 80 -j ACCEPT
#-Aで最後に追加だと駄目な気がする。-Iで途中に挿入しないと駄目?
/etc/init.d/iptables save
service iptables restart
yumへproxyの設定
proxy=http://proxy:port/
java
# /usr/java/default/bin/java -version
java version "1.6.0_16"
Java(TM) SE Runtime Environment (build 1.6.0_16-b01)
Java HotSpot(TM) Server VM (build 14.2-b01, mixed mode)
# /usr/bin/java -version
java version "1.4.2"
gij (GNU libgcj) version 4.1.2 20080704 (Red Hat 4.1.2-44)Copyright (C) 2006 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
tomcat
- CentOSのデスクトップでパッケージマネージャーを起動
- [サーバー] [Webサーバー] の中にあるtomcat5のパッケージを入れる。
- tomcat5, tomcat5-admin-webapps, tomcat5-webapps
- xml-commons-apis がないというwarningが出たので、それもパッケージマネージャーで検索して入れた。
- 以下を参考
Linux/CentOS5/Tomcat - ピノキヲ IT Wiki
http://pinoki.la.coocan.jp/wiki/?Linux%2FCentOS5%2FTomcat
- 自動起動の設定
# chkconfig tomcat5 on
# chkconfig --list tomcat5
tomcat5 0:off 1:off 2:on 3:on 4:on 5:on 6:off
ProxyPass /tomcat/ ajp://localhost:8009/
ProxyPass /examples/ ajp://localhost:8009/jsp-examples/
ProxyPass /axis2/ ajp://localhost:8009/axis2/
- /etc/tomcat5/tomcat5.confのJAVA_HOMEを修正する。
#JAVA_HOME="/usr/lib/jvm/java"
JAVA_HOME="/usr/java/default"
Axis2 NG→OK
- http://server/axis2/ にアクセスし、validate というリンクで動作を確認するとInternal Errorになってしまう。
- 以下のエラーが出ている。(/usr/share/tomcat5/log/catalina.out)
java.lang.NoClassDefFoundError: org.apache.axis2.engine.AxisConfiguration
- しかし、/usr/share/tomcat5/webapps/axis2/WEB-INF/lib/axis2-kernel.jar には対応するクラスが入っているように見えるが??
- 1.4.2のJavaが起動してしまっているような感じ。
# /etc/rc.d/init.d/tomcat5 version
Server version: Apache Tomcat/5.5.23
Server built: Jul 27 2009 05:23:29
Server number: 5.5.23.0
OS Name: Linux
OS Version: 2.6.18-128.el5
Architecture: i386
JVM Version: 1.4.2
JVM Vendor: Free Software Foundation, Inc.
- 以下を参考
- CentOS Server セットアップ備忘録 (4) - OpenJDK がダメダメな上に JPackage 機構もうまく動かない件 - kamicuの備忘録
http://d.hatena.ne.jp/kamicup/20090503/1241342783 - CentOS の Tomcat インストール その2 Sun JDK 1.6の活用
http://urobonyu.u-andme.net/index.php/2008/10/10/270
- CentOS Server セットアップ備忘録 (4) - OpenJDK がダメダメな上に JPackage 機構もうまく動かない件 - kamicuの備忘録
- bash -x /etc/rc.d/init.d/tomcat5 restart を実行してスクリプトの内容を確かめてみる。
- /etc/tomcat5/tomcat5.conf の後に /etc/sysconfig/tomcat5 が実行されていた。こちらのJAVA_HOMEが優先されていたみたいだ。
- /etc/sysconfig/tomcat5 のJAVA_HOMEも修正する。
#JAVA_HOME="/usr/lib/jvm/java"
JAVA_HOME="/usr/java/default"