たぶん難しくない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の例を以下に示すと…
こういうことになる。これで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サーバを外部に公開したりしないように!!!
まず、「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サーバを外部に公開したりしないように!!!
コメント 0