So-net無料ブログ作成

たぶん難しくないApache2・Webサーバでファイルサーバ?~一番簡単なWebDAV編~ [Linux(Apache)]

 さて。今度は「WebDAV」に挑戦してみよう。なお、ここではまずはじめにWebDAVの設定について一番簡単な設定を紹介するが、セキュリティ上非常に問題があるので、このまま外部へ公開してしまわないように!!!

 まず、「WebDAV」とはなんぞや?というところから。詳しいことはWikipediaを見てもらうとして(ちなみに該当ページへのリンクはこちら)、要するに、httpによってWebサーバ上あるファイルを管理できるようにする(≒Webサーバをファイルサーバにできる)機能だということ。
 Windowsのファイル共有やsambaのファイル共有、NFSもそうかな…と似ているように見えるが、WebDAVは既存のプロトコル「HTTP 1.1」の上に実装されているので、とりあえず80番ポートだけ開いていればルータとかファイヤーウォールとかを越えてファイルを受け渡しできるという特徴が大きい。また、WebサーバにWebDAVの機能を用いてファイルをアップロードした場合、それをすぐさまブラウザ等で閲覧できることから、コンテンツの更新にも便利…というタテマエがあったりする。

 もっとも、うっかり無防備な状態でWebDAVサーバを外部に公開しようものなら、たちまち違法なファイルとかウィルスとかワームとかの巣窟になってナントカ県警サイバーナントカ課の人があなたの家の玄関をノックする事態になるかもしれないので、WebDAVサーバをシロウトが外部公開することはオススメしない。
 会社の中のイントラネット等において、ファイルを公開する(文書ファイルとか、社内で開発しているソースコードやライブラリ、モジュール等)用途などにおいては便利に使える局面もあるかと思うが。

 それでは、WebDAVの設定について解説する。

 ここで登場するディレクティブはたったの2個。「Dav」ディレクティブと、「DavLockDB」ディレクティブ。なんだかごちゃごちゃ書いてある解説サイトもあるけども、とりあえずWebDAVを機能させるだけならコレだけでよい。もちろん、セキュリティ的なことを考えるともっと必要になるのだが。

 それでは、WebDAVを使用可能にするための手順から。
手順1:WebDAVでファイル管理の対象とするディレクトリを作成する(≒ファイル置き場を作る)
手順2:httpd.confにWebDAVのための設定を記述する

 これだけ。なお、WebDAVで管理される領域にあるファイルをクライアントから操作する場合は、クライアント側にも準備が必要となることを付け加えておく。

手順1:WebDAVでファイル管理の対象とするディレクトリを作成する(≒ファイル置き場を作る)

 ドキュメントルートディレクトリの下に、WebDAVで管理する領域を作成する。これまで散々使用しているhttpd.confのサンプルが、ドキュメントルートとして「/var/www/html」を指定しているので、とりあえずここでは「/var/www/html/dav」をWebDAVで管理するディレクトリにする。

 mkdir /var/www/html/dav
 …と、これでディレクトリを作成した。
 ただしここで一点注意事項が。クライアントからのリクエストに基づいてhttpdがファイルを書いたり読んだり消したりするため、httpdが動作しているユーザー・グループでそのディレクトリの中にアクセスできる必要がある。サンプルのhttpd.confの場合はUserもGroupも「apache」という名前になっているので、このユーザーで読み書きできなければならない。
 chown apache:apache /var/www/html/dav
 …と実行しておき、ディレクトリオーナーを変更することにする。

手順2:httpd.confにWebDAVのための設定を記述する

 ではいよいよhttpd.confの中にWebDAVの設定を導入する。
 ドキュメントルートの中でも、特に「/var/www/html/dav」に対してのみWebDAVの操作を許可することになるので、「Directoryディレクティブ」を用いて、このディレクトリに対するWebDAVの許可を指定することとなる。そして、WebDAVの使用を許可するディレクティブには、「Dav On」ディレクティブを用いる。
 ということは…

<Directory /var/www/html/dav>
Dav On
</Directory>

 という記述を追加することになる。

 で、WebDAVがファイルの排他制御を管理するために使用する、「ロックファイル」を指定するディレクティブが別途必要になるので、これをさらに追記する。「DavLockDB (ロックファイルのパス名)」である。ひとまずここでは、ロックファイルとして「/tmp/LockFile_WebDAV」と指定することにする。

DavLockDB /tmp/LockFile_WebDAV
<Directory /var/www/html/dav>
Dav On
</Directory>

 と、この4行を書き加えるだけで終了する。(笑)
 あ、モジュールの読み込みもあるね。

LoadModule dav_module modules/mod_dav.so
LoadModule dav_fs_module modules/mod_dav_fs.so

 この2行も必要ということに。
 これまでで完成したhttpd.confの例を以下に示すと…
ServerRoot      "/etc/httpd"
PidFile         run/httpd.pid
Listen          80
User            apache
Group           apache

ServerName      kagami.hiiragi.com:80

DocumentRoot    "/var/www/html"

LoadModule authz_host_module modules/mod_authz_host.so
LoadModule authz_default_module modules/mod_authz_default.so
LoadModule dir_module modules/mod_dir.so
LoadModule mime_magic_module modules/mod_mime_magic.so
LoadModule mime_module modules/mod_mime.so
LoadModule dav_module modules/mod_dav.so
LoadModule dav_fs_module modules/mod_dav_fs.so

<Directory      />
        Order   Allow,Deny
        Deny from       All
</Directory>

<Directory      /var/www/html>
        Order   Deny,Allow
        Allow from      All
</Directory>

<Files  ~       "^\.ht">
        Deny from       All
</Files>

DavLockDB       /tmp/LockFile_WebDAV
<Directory      /var/www/html/dav>
        Dav     On
</Directory>

TypesConfig     /etc/mime.types
DirectoryIndex  index.html
AddDefaultCharset       off
MimeMagicFile   conf/magic

 こういうことになる。これでservice httpd startと実行する。

 なお、WebDAVでファイル管理をする場合は、WebDAVクライアントが必要になるが、Windows98以降ならWindowsに組み込まれている(Windows Vista 64bit版は例外らしい!?)ので、特にクライアントソフトを用意しなくて良いらしい。
 Windows XPの場合は以下のとおり。

1.「マイ ネットワーク」アイコンをダブルクリックする
2.「ネットワークプレースの追加」アイコンをダブルクリックする
3.「ネットワークプレースの追加ウィザードの開始」というウィンドウが表示されうので「次へ」ボタンをクリック
4.「別のネットワークの場所を選択 Webサイト、ネットワークの場所、またはFTPサイトのアドレスを指定してください。」というアイコンをクリックして選択した状態で「次へ」ボタンをクリック
5.「インターネットまたはネットワークのアドレス」に、「http://(server)/dav/」と入力して「次へ」ボタンをクリック
6.「このネットワークプレースの名前を入力してください」にはお好みで好きな名前をつけて「次へ」ボタンをクリック
7.「完了」ボタンをクリック

 これでウィンドウが開くと思われるので、そこにファイルをコピーするなり移動するなりしてやればよい。
 日本語のファイル名も大丈夫…のはず。(今試してみたが大丈夫だった…。環境によるかもしれないが。)

 http://(server)/dav/file.txt

 とかブラウザでアクセスすれば、フォルダにコピーしたデータがブラウザ上で閲覧できることを確認しておいてもらいたい。

 なお、繰り返しになるが、くれぐれも、このままの状態でWebサーバを外部に公開したりしないように!!!
nice!(0)  コメント(0)  トラックバック(0) 
共通テーマ:パソコン・インターネット

nice! 0

コメント 0

コメントを書く

お名前:
URL:
コメント:
画像認証:
下の画像に表示されている文字を入力してください。

※ブログオーナーが承認したコメントのみ表示されます。

トラックバック 0

メッセージを送る