2009年2月27日金曜日

ubuntu Intrepid Ibex 8.10 上に opnejdk6 + tomcat6 で jsp な環境

ubuntu Intrepid Ibex 8.10 上に opnejdk6 + tomcat6 で jsp な環境

[目標]
ubuntu Intrepid Ibex 8.10 上に opnejdk6 + tomcat6 な環境をつくる
apache2とtomcat6はproxy proxy_ajpで連携させる

2009-june-18 UPDATE

[環境]
Ubuntu Intrepid Ibex 8.10
VirtualBox 2.1.x
USB 104Key (US)
Apache2はインストール済み

ipaddress:hoge.fuga.fugu.fugo



[したこと]

1. インストール

[OpenJDK6]
$ sudo apt-get install openjdk-6-jre openjdk-6-jre-headless openjdk-6-jre-lib openjdk-6-jdk openjdk-6-doc openjdk-6-demo


[Tomcat6]
$ sudo apt-get install tomcat6
$ sudo apt-get install tomcat6-admin tomcat6-webapps


2. Tomcat6 の設定


環境変数の設定
$ sudo vi /etc/default/tomcat6

#TOMCAT6_USER=tomcat6 # 修正前
TOMCAT6_USER=tomcat6 # 修正後

#JAVA_HOME=/usr/lib/jvm/openjdk-6-jdk # 修正前 ここ"コメントアウト解除だけだ"と誤解しやすい
JAVA_HOME=/usr/lib/jvm/java-6-openjdk # 修正後

#CATALINA_BASE=/var/lib/tomcat6 # 修正前
CATALINA_BASE=/var/lib/tomcat6 # 修正後


server.xmlの編集

$ sudo vi /etc/tomcat6/server.xml
コメントアウトされている部分を有効にする

<Connector port="8009" protocol="AJP/1.3" redirectPort"8443" />


tomcat-users.xmlの編集
$ sudo vi /etc/tomcat6/tomcat-users.xml

以下のようにコメントアウトされている
本番時はパスワードなど変更する
<!--
<tomcat-users>
<role rolename="tomcat"/>
<role rolename="role1"/>
<user username="tomcat" password="tomcat" roles="tomcat"/>
<user username="both" password="tomcat" roles="tomcat,role1"/>
<user username="role1" password="tomcat" roles="role1"/>
</tomcat-users>
-->

コメントアウトされている部分を有効にする

<tomcat-users>
<role rolename="tomcat"/>
<role rolename="role1"/>
<user username="tomcat" password="tomcat" roles="tomcat"/>
<user username="both" password="tomcat" roles="tomcat,role1"/>
<user username="role1" password="tomcat" roles="role1"/>
</tomcat-users>


admin managerを使う場合は追加する
<tomcat-users>
<role rolename="tomcat"/>
<role rolename="role1"/>
<role rolename="admin"/> #追加
<role rolename="manager"/>#追加
<user username="both" password="tomcat" roles="tomcat,role1"/>
<user username="tomcat" password="tomcat" roles="tomcat"/>
<user username="role1" password="tomcat" roles="role1"/>
<user username="admin" password="admin" roles="admin,manager"/> #追加
</tomcat-users>


3.Apache2の設定

proxy proxy_ajpの有効化

$ sudo a2enmod proxy
$ sudo a2enmod proxy_ajp

Apache2の設定

/etc/apache2/cconf.d/tomcat を作成して jsp-test jsp-sample のある場所をApacheに指示する

$ sudo vi /etc/apache2/conf.d/tomcat

----------追加開始----------



<Location /jsp-test/>
ProxyPass ajp://localhost:8009/jsp-test/
Order allow,deny
Allow from All
</Location>

<Location /jsp-sample/>
ProxyPass ajp://localhost:8009/jsp-sample/
Order allow,deny
Allow from All
</Location>

----------追加終了----------


4. 自作jspの置き場を作る

/var/lib/tomcat6/conf/Catalina/localhost/jsp-test.xml を編集してjsp-testのある場所をtomcatに指示する

$ sudo mkdir /usr/share/tomcat6/webapps/jsp-test

$ sudo cp -r /usr/share/tomcat6/webapps/default_root/META-INF /usr/share/tomcat6/webapps/jsp-test/META-INF

$ sudo vi /var/lib/tomcat6/conf/Catalina/localhost/jsp-test.xml

<Context path="/jsp-test" docBase="/usr/share/tomcat6/webapps/jsp-test" debug="0" privileged="true" allowLinking="true">
</Context>

$ sudo ln -s /var/lib/tomcat6/conf/Catalina/localhost/jsp-test.xml /usr/share/tomcat6/webapps/jsp-test.xml


テスト用jspを置いてみる
$ sudo vi /usr/share/tomcat6/webapps/jsp-test.xml/hello.jsp
--------script-start--------
<html>
<head>
<title>Hello World JSP</title>
</head>
<body>
<%
String s= "Hello World";
out.println(s);
%>
</body>
</html>
---------script-end---------



/usr/share/tomcat6/webapps/jsp-sample.xml を編集してjsp-sampleのある場所をtomcatに指示する


$ sudo mkdir /var/www/jsp-sample

$ sudo cp -r /usr/share/tomcat6/webapps/default_root/META-INF /var/www/jsp-sample/META-INF

$ sudo vi /var/lib/tomcat6/conf/Catalina/localhost/jsp-sample.xml

<Context path="/jsp-sample.xml" docBase="/var/www/jsp-sample" debug="0" privileged="true" allowLinking="true">
</Context>


テスト用jspを置いてみる
$ sudo vi /var/www/jsp-sample/hello.jsp
--------script-start--------
<html>
<head>
<title>Hello World JSP</title>
</head>
<body>
<%
String s= "Hello World";
out.println(s);
%>
</body>
</html>
---------script-end---------



tomcat Apache2の順番で 再起動
$ sudo /etc/init.d/tomcat6 restart
$ sudo /etc/init.d/apache2 restart


アクセスしてみる
http://hoge.fuga.fugu.fugo:8080/
http://hoge.fuga.fugu.fugo/jsp-test/hello.jsp
http://hoge.fuga.fugu.fugo/jsp-samplet/hello.jsp

[注意]

JAVA_HOMEの修正忘れ
"コメントアウトを解除すればよいだけだ"と見間違えた
修正前
#JAVA_HOME=/usr/lib/jvm/openjdk-6-jdk
修正後
JAVA_HOME=/usr/lib/jvm/java-6-openjdk


jspを実行するディレクトリにはMETA-INFが必要
5.5のときはMETA-INFが必要なかった
6はMETA-INFが必要
default_rootからコピーした
$ sudo cp -r /usr/share/tomcat6/webapps/default_root/META-INF /var/www/jsp-sample/META-INF


5.5では8180だったポートが6では8080に変更

1次情報を読んでいないので、とりあえず動いた状態。間違い、誤解、もっとよい方法があるやも知れない


[参考]
http://powerpower.cocolog-nifty.com/blog/2007/11/ubuntu_tomcat55.html
http://blog.goo.ne.jp/jakaodava/e/829793f4864c2d239586fc536c14bfb7

0 コメント: