有馬総一郎のブログ

(彼氏の事情)

2012年06月19日 23:22:00 JST - 3 minute read - Subsonic

Subsonic構築への道 その6(Subsonic 導入 Tomcat編)

次に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が付く。

有馬総一郎のブログ

とりあえずめでたしめでたし。