データサイエンティスト基礎講座

[Tomcat] WebDAVを使う

ファイルのやり取りをするために、TomcatサーバにWebDAVを入れることになりました。管理のしやすさから、Apacheから制御するWebDAVがいいのではないか、と言われたので、Apache制御でのWebDAV導入に挑戦してみました。

こちらは失敗談

まずは、WebDAVを使うためにApacheをコンパイルし直します。

# ./configure --enable-suexec --with-suexec-caller=apache --with-suexec-docroot=/var/www --enable-ssl --enable-dav=yes --enable-dav-fs=yes
# make
# make install

そして、WebDAV用にディレクトリを作ります。

# mkdir /home/dav
# chown nobody.nobody /home/dav
# mkdir /usr/local/apache2/var/lock
# chown nobody.nobody /usr/local/apache2/var/lock

次に、httpd.confに設定を追記します。

Alias /dav "/home/dav"
<Location /dav>
  DAV on
</Location>
DAVLockDB /usr/local/apache2/var/lock

通常は、これでApacheを再起動すればOKらしいのですが・・・再起動してもつながりません。試しに、Webブラウザでアクセスしてみると、Tomcatのエラー画面が・・・?”

どうやら、Apache+Tomcatで動かしていると、Apache制御のWebDAVはうまく使えない様子。使う方法はあるのかもしれませんが、そこまでの時間が取れないため調べていません(苦笑)。時間もないことですし、Tomcat制御でWebDAVを動かしてしまおうという話になり、さっそく情報収集。

・・・5分もしないうちに公式サイトで見つけた。Tomcatにはもともとついてるの?(笑)

WebDAVはTomcatに入っています

そう言えば、マネージャー画面でWebDAVって文字を見かけたような。ということで、マネージャー画面を開いてみると、アプリケーションの一番下にありました、WebDAV。開いてみると、ディレクトリが見えます。早速ネットワークプレースに追加してみると、何の問題もなくつながりました。ナントイウコトダ(´Д`)

何か、とても無駄な時間を過ごしたような気がするのは・・・気のせい、ということにしておいて。でも脱力感は200%突破です。無事動いてよかった・・・のかな。

再度Apache制御のWebDAVを設定

でもやっぱり、Apache制御のWebDAVを試したい!今一度立ち上がりました(笑)

さらに突っ込んで情報を集めてみると、Apacheとの連携をさせている場合、Tomcat制御下に置くディレクトリを指定しているファイルがあるらしい。ディレクトリを指定しているとすれば・・・Apacheのconfフォルダに新規追加した workers2.properties というファイルだったはず!早速そのファイルを開いてみると、

# cat /usr/local/apache2/conf/workers2.properties
[channel.socket:localhost:8009]
[shm:]
disabled=1
[uri:/*]

ありました。urlという指定が。

きちんと設定すれば動きます

どうやらここで、Tomcat制御下に置かれるディレクトリを指定している様子。とりあえずマネージャー画面と、作成中のアプリだけがTomcatで動いてくれればいいので、以下のように設定してみました。

[channel.socket:localhost:8009]
[shm:]
disabled=1
[uri:/manager/*]
[uri:/APP_HOME1/*]
[uri:/APP_HOME2/*]

ApacheとTomcatを再起動してみると・・・マネージャー画面とアプリケーションは問題なくTomcatで動き、Tomcat経由のWebDAVは「アクセス権限がありません」ということで、動かなくなりました。そして、ようやくApache制御下のWebDAVが動くようになりましたとさ。めでたしめでたし。

スポンサーリンク

この記事をシェア

アカウントをフォロー