次にwarファイルをデプロイ(Webアプリケーションを配備する)ために、tomcatを導入する。
$ sudo apt-get install tomcat6
まあ、今後もtomcatのお世話になるなら、tomcat6-examples、tomcat6-admin、tomcat6-user、tomcat6-extrasごっそり入れてもいいかも。
私はSubsonicのポートを変えたかったので、server.xmlを編集。
/etc/tomcat6/server.xml
<Connector port="[自分が指定したいポート番号]" protocol="HTTP/1.1"
connectionTimeout="20000"
URIEncoding="UTF-8"
redirectPort="8443" />
ちょっと脱線するが、tomcat6-adminも導入して管理マネージャ画面を開けるようにしたんだけど、デフォルトではそのためのmanager(versionによってmanagerだったり、manager-guiするようだ)ユーザが準備されていない。
そこで必死こいて
/etc/tomcat6/tomcat-users.xml
<role rolename="manager-gui"/>
<user username="[追加したいユーザ]" password="[パスワード]" roles="manager-gui"/>
追加したのに、ちっともログインできない。
よくよくみると
<!--
<role rolename="manager-gui"/>
<user username="[追加したいユーザ]" password="[パスワード]"
roles="manager-gui"/>
-->
全体がコメントアウトされていたという…
結構悩んだ・・・「木を見て森を見ず」の典型だったと、まあ自分はそんな失敗ばっかだけど。
あ、管理マネージャ画面は開けなくても問題ない。
tomcatがインストールしたら、環境変数にTOMCAT_HOME、CATALINA_HOME、CATALINA_BASEを設定。
正直、ここらへんの設定の意味一つ一つ分かってない。
( CATALINA_BASEは定義されなければデフォルトで CATALINA_HOMEと同じディレクトリを指す。 CATALINA_HOMEはエンジンのパス、 CATALINA_BASEはサービス毎のパスみたいな位置づけ?)
/etc/default/tomcat6
TOMCAT_HOME="/usr/share/tomcat6"
CATALINA_HOME=/usr/share/tomcat6
CATALINA_BASE=/var/lib/tomcat6
あと、debパッケージファイルからSubsonicを一度入れた人は綺麗な状態にしないとドツボにハマる。自分は既存ファイルがあるために、デプロイが失敗しまくった・・・
過去の汚物は抹消
$ sudo rm -r /var/subsonic/
$ sudo dpkg --purge subsonic
warファイルを$CATALINA_BASE/webapps
に配置。公式HPだと TOMCAT_HOMEなんだけどね・・・
$ sudo cp -p ~/subsonic-4.6-src/subsonic-main/target/subsonic.war /var/lib/tomcat6/webapps/
デプロイされるにあたっての下準備
$sudo mkdir /var/subsonic
$sudo mkdir /var/subsonic/playlists
$sudo mkdir /var/subsonic/transcode
$sudo chown -R tomcat6:nogroup /var/subsonic
tomcatを再起動することでsubsonic.warがデプロイされる。管理マネージャ画面からデプロイすることも可能(これだとtomcat止めなくて良い)。
$ sudo service tomcat6 restart
* Stopping Tomcat servlet engine tomcat6 [ OK ]
* Starting Tomcat servlet engine tomcat6 [ OK ]
さっそくSubsonicの勇姿を拝みに行こうではないか…
http://localhost:8080/subsonic
↑ポート番号はserver.xmlで設定されたポート番号。デフォルトは8080。debパッケージファイルから導入した場合はlocalhostだったと思うが、この場合 /subsonicが付く。
とりあえずめでたしめでたし。