apache で WebDAVを使ってファイル共有してみる
ご利用のブラウザは、JavaScript が無効 となっていませんか?
このサイトでは、コンテンツの一部が非表示 、あるいは、コメント、お問い合わせの投稿ができない 、検索ができない ことがあります。
今回は、apache で WebDAVを使ってファイル共有してみます。
WebDAV (Web -based D istributed A uthoring and V ersioning)とは、
Hypertext Transfer Protocolを拡張したもので、Webサーバ上のファイル管理を目的とした分散ファイルシステムを実現するプロトコルである。
特徴として、Webサーバ等でコンテンツのアップロードや更新を行う際に、FTPやscpのような別のサービス・プロトコルを使うことなく、HTTPだけで全てのコンテンツ管理を完結できる。また、HTTPの拡張のみによって実装されているため、ファイヤーウォールによって既存のファイル転送サービスが利用できない環境や、HTTPプロキシを経由した環境でも利用できる。
出典 : http://ja.wikipedia.org/wiki/WebDAV
一般的にLinuxとWindows間でファイル共有といえば、Samba が有名かもしれません。ただ、Sambaには、Windowsの(ファイル共有を含めた)ネットワーク機能を提供するものであって、必ずしもファイル共有のみを提供するものではありません。
Samba (サンバ) は、
マイクロソフト社のWindowsネットワークを実装したフリーソフトウェア。 Linux、Solaris、BSD 、Mac OS Xなどの UNIX 系 OS を用いて、Windows のファイルサーバやプリントサービス、ドメインコントローラ機能、ドメイン参加機能を提供する。
出典 : http://ja.wikipedia.org/wiki/Samba
また、Sambaは、サービス(サーバー)を構築する必要がありますが、WebDAVは、既存のWebサーバーであるapacheを利用する点でも無駄にリソースを消費することもありません。
ここでは、簡単なWebDAVの設定について解説してみます。
apache で WebDAVを使ってファイル共有してみる
apacheのFastCGIのためのモジュールは、2つあります。
dav_module がapacheにインストールされているか確認します
以下のコマンドで、dav_module が出力されてばOKです。
$ httpd - M| grep dav
dav_module (shared)
dav_fs_module (shared)
Syntax OK
もし、出力されない場合は、まずは、apacheの設定ファイルを確認してみてください。
/etc/httpd/conf/
httpd.conf
...
LoadModule dav_module modules/mod_dav.so
...
上記のような行があるか?確認してください。もし、コメントアウトされていたなら、コメントを外して再起動してみてください。
正しく再起動(再読み込みでも可)すればOKです。
再起動後、
httpd -M|grep dav で確認してみてください。表示されるはずです。
うまく再起動できない場合は、
dav_module がインストールされていない場合が考えられます。その場合、apacheの再構築が必要になります。
ただ、一般的に意識的にdav_moduleを外して構築、インストールしない限りは、インストールされているはずです。Redhat系のCentOS,ScientificLinuxでは、デフォルトの状態でインストールされています。
WebDAV の設定を行う
WebDAV を利用するために、apacheの設定ファイルにWebDAV で共有するサイトとディレクトリを設定します。
ここでは、
サイト : dav.exmaple.com
ディレクトリ : /var/www/html/dav
を共有してみます。
/etc/httpd/conf/httpd.conf
...
<VirtualHost *:80 >
ServerName dav .exmaple.com
DocumentRoot "/var/www/html/dav"
<Directory "/var/www/html/dav" >
Dav On
Order allow ,deny
Allow from all
</Directory >
</VirtualHost >
...
ここでは、サンプルとして非常にシンプルで、だれでもアクセスできるWindowsの共有ディレクトリのイメージの設定になっています。
本当にウェブ上で運用する場合は、ちゃんとセキュリティを高めて必要な人だけに公開するような設定をしなければなりません。
これだけです。簡単ですね。これでapache の 再起動(再読み込みでも可)すればOKです。
$ etc/init.d/httpd reload
httpd を再読み込み中:
ここでの設定では、
dav.exmaple.com でアクセスした配下全てを共有しています。これを一部のディレクトリだけにした場合は、
...
<VirtualHost *:80>
ServerName dav.exmaple.com
DocumentRoot "/var/www/html/dav"
<Directory "/var/www/html/dav/sample ">
Dav On
Order allow,deny
Allow from all
</Directory>
</VirtualHost>
...
このように
Directory ディレクティブのディレクトリ指定を変更するだけです。これで、
dav.exmaple.com/sample の配下のみを共有することになります。
Windows側の設定を行う
上記の設定で、apache側では、既にdav.exmaple.com の配下は共有されているはずです。
最後は、Windows側のエクスプローラを使って共有しているdav.exmaple.com へアクセスしてみます。
もちろんWindowsに限らずMacでも共有することができます。ここでは、良く利用されるであろうWindowsに限って解説しています。
また、エクスプローラを使わずにフリーソフトを使って共有することも可能です。ここでも良く利用されるであろうエクスプローラに限って解説しています。
エクスプローラのローカルネットワークを選択します。
ネットワークプレースの追加 のアイコンを選択し、ダブルクリックします。
ネットワークプレースの追加ウィザード画面が表示されますので、画面の指示に従って設定します。
次へ をクリックすると、以下のように選択画面が表示されます。
別のネットワークの場所を選択 を選択の上、次へ をクリックします。
次に、以下のようにインターネットまたはネットワークのアドレス を設定する画面が表示されます。
インターネットまたはネットワークのアドレス にapacheで設定した共有サイトを設定します。
ここでは、http://dav.exmaple.com となります。
設定の上、次へ をクリックします。
次に、以下のようにネットワークプレースの名前 を設定する画面が表示されます。
ネットワークプレースの名前 を適当に設定します。
ここでは、dav.exmaple.com としました。ここの名前は、エクスプローラで表示されるタイトルになりますので、自分でわかりやすい名前を設定しておきましょう。
設定の上、次へ をクリックします。
最後に、以下のように完了画面表示されます。
[完了]をクリックした時にネットワークプレースを開く にチェックをして、完了をクリックます。
以下のようにファイルが見えればOKです。
エクスプローラを使ってファイルのコピーや削除などをやってみてください。
非常に便利なのがわかると思います。最近ではFTPのツールも随分便利なものになっていますが、
やっぱり、単純にエクスプローラでファイルにコピーだけでサーバーからのアップロード、ダウンロードが実現できるのは便利ですよね。
ただ、自宅のローカルな環境なら、これでOKですが、インターネット上で、だれでもアクセスできてしまうのは、ちょっと問題ですよね。
次回は、WebDAVのセキュリティについて設定してみます。
apacheを使っているので、.htaccessでユーザとパスワードを求めても良いですし、OpenSSLでSSLを使って暗号化させても良いですよね。やり方は色々あります。
ご利用のブラウザは、広告ブロック(AdBlockなど) が適用 となっていませんか?
このサイトでは、コンテンツの一部が非表示 、あるいは、コメント、お問い合わせの投稿ができない 、検索ができない ことがあります。
関連記事 :
コメントを投稿 :