Tomcat6でSubsonicを動かしてApacheと連携させるまでの操作ログ

Subsonic使ってますか?
ていうか、Sunsonicご存じですか?

知ってしまうと抜け出せないSubsonicの罠。思わずiTunesなんていらねぇぜ!と叫びたくなる便利さ。
私などは一度はプライベートのVPSを持つのを止めようと思ったのに、Subsonicが使いたいがばかりにVPSをもう一度契約してしまったというキラーソフトです。

Subsonicのインストールは公式サイトからRPMを落としてインストールして終わり。というパターンが多いと思うのですが、今回はTomcat6を別に入れる方式をやってみましたので、その操作ログ。

そもそもSubsonicって何?

SubsonicはVPSなどのサーバに入れておいて、そこに音楽などをため込んでおけば、PCでもMacでもiPhoneでもAndroidでも、あらゆるデバイスからストリーミングで聞けるようになりますよ!というもの。
もちろん、音楽を聴くにはログインが必要になるので、不特定多数に向けて公開するといったいかがわしいものではありません。さくらのVPSなどは一番安い980円のプランでもストレージが100GB付いていますので、Subsonicを入れてクラウドジュークボックスにするには最適です。

Thumper
Mac用のSubsonicクライアントならThumperがオススメ!

あえてTomcatにインストールするメリット

先に書いたように、SubsonicのインストールはRPMを落として入れるというパターンが多いと思います。SubsonicはJavaで出来ていますが、RPMパッケージにはJava Servletコンテナも入っていますから、別途Javaのインストールだけしておけば、RPMを入れてすぐに、http://localhost:4040でアクセス出来ます。

そんな中で、あえてTomcatにインストールするメリットって何があるのでしょうか?

  • もともとTomcatを入れているから別のコンテナを入れたくない
  • Apacheと連携させてポート80でアクセスしたい

んー。考えてみたけど、あんまりメリットがないな。まぁ、やりたかったからやるのさ。
そういう気分出ない人は、素直にRPMで入れた方が良いと思います。

Tomcat6をインストール

yum install tomcat6 tomcat6-webapps tomcat6-admin-webapps

Javaが入っていない状態でtomcat6をインストールすると、おそらくjava-1.5.0-gcjが入るのではないかと思います。ただ、SubsonicはJDK1.5では動作しないのです。(でも公式サイトを見るとJava5以上と書いてあるから動くはずなんだけどな・・・。Sun・・・じゃなくてOracleのJDKじゃないからダメなのかな?)ここがハマリポイントその1。

あと、Tomcat7には現時点では対応していません。(これは公式サイトに明記されています)

ここはOpenJDK1.7をインストールしましょう。(1.6でも構いません)

yum install java-1.7.0-openjdk

既にGNOMEでLibreOfficeとかを使っている人なら、java-1.7.0-openjdkが入っているでしょうから、それでOKです。ただ、alternativesでJDK1.7を選択しておきましょう。

alternatives --config java

2 プログラムがあり 'java' を提供します。

  選択       コマンド
-----------------------------------------------
   1           /usr/lib/jvm/jre-1.5.0-gcj/bin/java
*+ 2           /usr/lib/jvm/jre-1.7.0-openjdk.x86_64/bin/java

Enter を押して現在の選択 [+] を保持するか、選択番号を入力します:

alternativesでJDK1.5を選ばないといけない事情がある人は、Tomcat側の設定でJDK1.7を選んでも構いません。

/etc/tomcat6/tomcat6.conf

JAVA_HOME="/usr/lib/jvm/jre-1.7.0-openjdk.x86_64"

subsonic.warをインストール

unzip subsonic-4.7-war.zip
cp subsonic.war /usr/share/tomcat6/webapps

TomcatのWebアプリケーションマネージャ(http://localhost:8080/manager/srv/vivinko.comlist)を開いて起動してみると・・・起動しません。
もう少し、やることがあるのです。ここがハマリポイントその2。

Subsonicディレクトリを作る

mkdir /var/subsonic
chown tomcat:tomcat /var/subsonic

Subsonic公式サイトにも書いてあるのですが、/var/subsonicディレクトリへのアクセスが必要なのです。ちなみに、このディレクトリは音楽ファイルを置く場所とは別です。

ここで、TomcatのWebアプリケーションマネージャに戻り、Subsonicを起動すると、無事起動するはずです。

Apacheとの連携

まず、Tomcat側の設定を確認します。

/etc/tomcat6/server.xml

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

この行がコメントアウトされていないことを確認します。

次に、Apache側の設定も確認します。

/etc/httpd/conf/httpd.conf

LoadModule proxy_ajp_module modules/mod_proxy_ajp.so

この行がコメントアウトされていないことを確認します。

次に、例えばhttp://localhost/subsonic/などでアクセスできるように設定します。

/etc/httpd/conf.d/subsonic.conf

<Location /subsonic>
    ProxyPass ajp://localhost:8009/subsonic/
</Location>

あとは、Apacheに設定ファイルを読み込ませます。

service httpd reload

これで完了です。お疲れ様でした。

この記事を書いた人

井上 研一

株式会社ビビンコ代表取締役、ITエンジニア/経済産業省推進資格ITコーディネータ。AI・IoTに強いITコーディネータとして活動。画像認識モデルを活用したアプリや、生成AIを業務に組み込むためのサービス「Gen2Go」の開発などを行っている。近著に「使ってわかった AWSのAI」、「ワトソンで体感する人工知能」。日本全国でセミナー・研修講師としての登壇も多数。