とあるサイトにて、サーバ管理者がコンテンツの更新にWebDAVを使う予定ということを聞かされる。
うーん。正直、なんだかなぁである。
WebDAV自体は、HTTPをもちいてより簡単にファイルにアクセスするためのプロトコルで、徐々に広まりつつある。AppleのiDiskもそうだし、justsystemのidiskもそうだったはず。
しかし、コンテンツを構築していく上で、WebDAVが果たして本当に便利かどうかを、考えてみる。
僕も別のあるサーバにて、WebDAVを稼動させているが、これは、サーバに画像ファイルをアップロードするための手段として使ってもらっている。ftpは通常ユーザーには敷居が高いとおもったからだ。Windows XPやMac OS Xでは、OS自体がWebDAVをサポートしているため、ExplorerやFinderでそのままリモートのファイルを扱うことができる。これはこれですごく便利である。
しかし、コンテンツを構築する・・という意味では、いろいろ面倒なこともある。
一つは、アップロードしたファイルのパーミッション(アクセス権)を、WebDAVのクライアントから設定できないことである。なぜなら、HTTPだから。
つまり、CGIを利用する場合、実行権をあたえたり、書込許可を与えたりする必要がある。それができないので、結局、sshでログインしたり、ftp(sftp)クライアントから設定する必要がある。なら、最初からftp(sftp)でやればいいだけ。
つぎに、WebDAV経由でアップロードされたファイルは、基本的にhttpdの支配下になるため、作成されたファイルは、www/wwwなどのユーザー/グループになるはず(具体的にはhttpd.confに依存。nobodyとか)
そうなると、各種CGI/SSIや、sshから、それらのファイルを操作するさいに問題が発生する場合がある。とくにsshでログインしたユーザーとはファイル所有権が違うため、消したり上書きしたりできなくなる。
WebDAVアクセス時に認証されるユーザーのユーザーIDを反映させるには、Apacheをチューンする必要がある・・と思う。これについては詳しくないので誰か知ってたら教えて。(suEXEC/CGIWrap/Jailとかそんなのだとおもう)
また、通常、WebDAVフォルダと、公開用のコンテンツのフォルダを同じフォルダにすることはない。
(ソレをすると認証なしではコンテンツにアクセスできなくなるから)
ということは、WebDAVフォルダと、公開用のディレクトリ(つまり、DocumentRoot)を同期させるなにかしらかの方法が必要となる。
手動もしくはミラーリングの仕組みなど。
そうなると、その運用においてまた様々な問題が発生する。
単純なファイルのやり取りにおいては、WebDAVは簡単で便利だが、それをコンテンツの更新に用いるのは、無理があるのではないか?
もし、僕の認識に間違いがありましたら、遠慮無く指摘してください。