ファイルのやり取りをするために、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が動くようになりましたとさ。めでたしめでたし。
コメント