トップ  > サーバ設定:運用  > 各アプリケーションのインストール  > Webフォルダサーバ構築(WebDAV)

Webフォルダサーバ構築(WebDAV)  (最終更新日:2010/03/22)

外部向けにファイルサーバを構築します。

WebサーバのWebDAV機能を利用してWebフォルダでファイル共有をします。

BASIC認証によるアクセス制御をかけ、SSLによる暗号化通信のみ許可します。

Webサーバ構築(Apache)Webサーバ間通信内容暗号化(mod_ssl)が導入されていること。

WebDAV初期設定

1.ディレクトリ作成
[root@sv ~]# mkdir /var/www/webdav ← WebDAV用のディレクトリ作成

[root@sv ~]# chown -R apache:apache /var/www/webdav ← WebDAVディレクトリ所有者をApache実行ユーザに変更

2.mod_encodingインストール

WindowsでWebDAVサーバに送る文字列符号化形式Shift_JISに対し、WebDAVサーバから送る文字列符号化形式はUTF-8の為、日本語に文字化けが発生します。これを解決する為、mod_encodingをインストールします。

mod_encodingの導入により文字化けはしなくなるが、サーバ上の文字コードがUTF-8の為、コンソール上では文字化けしてしまうので注意。

[root@sv ~]# yum install httpd-devel ← mod_encodingのインストールに必要なhttpd-develをインストール

[root@sv ~]# wget http://webdav.todo.gr.jp/download/mod_encoding-20021209.tar.gz ← mod_encodingダウンロード
※最新版はこちらで確認。(2010/03/22時点。mod_encoding-20021209.tar.gz)

[root@sv ~]# wget http://webdav.todo.gr.jp/download/experimental/mod_encoding.c.apache2.20040616 ← Apache2版mod_encodingダウンロード
※最新版はこちらで確認。(2010/03/22時点。mod_encoding.c.apache2.20040616)

[root@sv ~]# tar zxvf mod_encoding-20021209.tar.gz ← mod_encoding展開

[root@sv ~]# /bin/mv mod_encoding.c.apache2.20040616 mod_encoding-20021209/mod_encoding.c ← Apache2版mod_encodingに差し替え

[root@sv ~]# cd mod_encoding-20021209/lib/ ← ディレクトリ移動

[root@sv lib]# ./configure ← 環境に応じたMakefile作成

[root@sv lib]# make ← Makefileを基にソースコードをコンパイル

[root@sv lib]# make install ← makeで生成されたファイルなどをディレクトリにコピー(インストール)

[root@sv lib]# cd .. ← 一つ上の階層へ移動

他のソフトの日本語環境へ影響を及ぼすことへの対処
[root@sv mod_encoding-20021209]# wget http://www.aconus.com/~oyaji/faq/mod_encoding.c-apache2.2-20060520.patch ← mod_encodingパッチダウンロード

[root@sv mod_encoding-20021209]# patch -p0 < mod_encoding.c-apache2.2-20060520.patch ← mod_encodingパッチ適用
patching file mod_encoding.c

[root@sv mod_encoding-20021209]# ./configure --with-apxs=/usr/sbin/apxs --with-iconv-hook ← Makefile作成

[root@sv mod_encoding-20021209]# vi Makefile ← Makefile編集
LIBS =  -liconv_hook
↓
LIBS = -L/usr/local/lib -liconv_hook ← 追加

install-exec-local:
        $(APXS) -i mod_encoding.so
        ↓
        $(APXS) -i -a -n encoding mod_encoding.la ← 変更

[root@sv mod_encoding-20021209]# make ← Makefileを基にソースコードをコンパイル
make中に「mod_encoding.c:362: warning: initialization from incompatible pointer type」等の表示が出る場合、最終的にエラーにならなければ無視してOK

[root@sv mod_encoding-20021209]# make install ← makeで生成されたファイルなどをディレクトリにコピー(インストール)
make install中に「mod_encoding.c:362: warning: initialization from incompatible pointer type」等の表示が出る場合、最終的にエラーにならなければ無視してOK

[root@sv mod_encoding-20021209]# cd ← カレントディレクトリへ戻る

[root@sv ~]# rm -rf mod_encoding-20021209 ← mod_encoding展開先ディレクトリを削除

[root@sv ~]# rm -f mod_encoding-20021209.tar.gz ← ダウンロードしたファイルを削除
3.mod_encoding設定
[root@sv ~]# vi /etc/httpd/conf.d/mod_encoding.conf ← mod_encoding設定ファイル作成
EncodingEngine        on

SetServerEncoding     UTF-8

DefaultClientEncoding UTF-8 CP932 EUCJP-MS

AddClientEncoding "Microsoft .* DAV 1.1" ASCII CP932 UTF-8
AddClientEncoding "Microsoft .* DAV" UTF-8 CP932
AddClientEncoding "(Microsoft .* DAV $)" UTF-8 CP932
AddClientEncoding "(Microsoft .* DAV 1.1)" CP932 UTF-8
AddClientEncoding "Microsoft-WebDAV*" UTF-8 CP932
AddClientEncoding "RMA/*" CP932
AddClientEncoding "xdwin9x/" CP932
AddClientEncoding "cadaver/" UTF-8 EUCJP-MS
AddClientEncoding "Mozilla/" EUCJP-MS

[root@sv ~]# /etc/rc.d/init.d/httpd restart ← Apache再起動
httpd を停止中:                                            [  OK  ]
httpd を起動中:                                            [  OK  ]
4.WebDAV設定
[root@sv ~]# vi /etc/httpd/conf.d/webdav.conf ← WebDAV設定ファイル作成
Alias /webdav /var/www/webdav
<Directory /var/www/webdav>
    DAV On
    SSLRequireSSL
    AllowOverride None
    Options None
    AuthType Basic
    AuthName WebDAV
    AuthUserFile /etc/httpd/conf/.htpasswd
    Require valid-user
アクセス元ホストを制限する場合(ここから)
    Order deny,allow
    Deny from all
    Allow from 192.168.0 ← 内部(例:192.168.1.XXX)からのアクセスを許可
アクセス元ホストを制限する場合(ここまで)
</Directory>

[root@sv ~]# /etc/rc.d/init.d/httpd reload ← Apache設定反映
httpd を再読み込み中:                                      [  OK  ]
5.BASIC認証用ユーザ登録

(1).htpasswdファイルを新規作成する場合

[root@sv ~]# htpasswd -b -c /etc/httpd/conf/.htpasswd user_m パスワード ← .htpasswdを作成してユーザuser_mを登録する
Adding password for user user_m

(2)既存の.htpasswdファイルへユーザを追加する場合

[root@sv ~]# htpasswd -b /etc/httpd/conf/.htpasswd user_m パスワード ← 既存の.htpasswdへユーザuser_mを登録する
Adding password for user user_m

WebDAV動作確認

1.WindowsでのWebフォルダの設定

「マイコンピューター」を開き、メニューの「ファイル」・左側のコンピューターを右クリック・右側の空白部分を右クリックし、「ネットワークの場所を追加する」を選択

ウィザードが開始されるので「次へ」を選択

「カスタムのネットワークの場所を選択」を選択し「次へ」を選択

インターネットまたはネットワークのアドレス欄に、「https://サーバ名/webdav」を入力し「次へ」を選択

自分で証明書を作成している場合、警告が出るので「はい」を選択

「.htpasswd」に登録した、「ユーザ名」と「パスワード」を入力し「OK」

「名前」欄を任意で入力し、「次へ」を選択

「完了」を選択

完了

自分の環境では現在、出来たフォルダを開くことができません。ファイルやフォルダを追加したり、ほかで追加しものをローカルにコピーすることは可能です。

WindowsXPでは問題なく動作するのは確認済みです。