2009年4月27日月曜日

Ubuntu Jaunty Jackalope でOpenJDK6とTomcat6

[目標]
Ubuntu Jaunty Jackalope 9.04でOpenJDK6とTomcat6でJSPServerを立てる
Ubuntu Jaunty Jackalope 9.04でApvahce2とTomcat6の連携

2009-june-18 UPDATE

[環境]
Ubuntu Jaunty Jackalope 9.04
VirtualBox 2.1.x
USB 104Key (US)



[したこと]

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


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

環境変数の設定
$ 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="passwd" roles="tomcat"/>
<user username="both" password="passwd" roles="tomcat,role1"/>
<user username="role1" password="passwd" roles="role1"/>
</tomcat-users>
-->

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

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


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

自作jspの置き場を作る

/etc/tomcat6/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 /etc/tomcat6/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 /etc/tomcat6/Catalina/localhost/jsp-test.xml /usr/share/tomcat6/webapps/jsp-test.xml


テスト用jspを置いてみる
$ sudo vi /usr/share/tomcat6/webapps/jsp-test.xml/hello.jsp

---------------ここから
<html>
<head>
<title>Hello JSP World</title>
</head>
<body>
<%
String s= "Hello JSP World";
out.println(s);
%>
</body>
</html>
---------------ここまで


Apache2との連携

Apache2の設定

proxy proxy_ajpの有効化

$ sudo a2enmod proxy
$ sudo a2enmod proxy_ajp


/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/>
ProxyPass ajp://localhost:8009/examples/jsp/
Order allow,deny
Allow from All
</Location>

---------------ここまで


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