CentOS6でWebDAVの設定

スポンサーリンク
スポンサーリンク

Webサーバをファイルサーバのように扱えるWebDAVのCentOS6での設定についてです。

インストール

yum install httpd-devel
wget "sourceforge.jp/frs/redir.php?m=iij&f=%2Fwebdav%2F13902%2Fmod_encoding-20021209.tar.gz"
wget http://iij.dl.sourceforge.jp/webdav/13905/mod_encoding.c.apache2.20040616
wget http://www.aconus.com/~oyaji/faq/mod_encoding.c-apache2.2-20060520.patch
tar xzvf mod_encoding-20021209.tar.gz
cd mod_encoding-20021209/
cp ../mod_encoding.c.apache2.20040616 mod_encoding.c
patch -p0 < ../mod_encoding.c-apache2.2-20060520.patch
cd lib
./configure
make
make install
cd ..
./configure --with-apxs=/usr/sbin/apxs --with-iconv-hook=/usr/local/include
make
gcc -shared -o mod_encoding.so mod_encoding.o -Wc,-Wall -L/usr/local/lib -Llib -liconv_hook
make install

/etc/ld.so.conf へ追加

/usr/local/lib

下記を実行します。

/sbin/ldconfig

WebDAV設定

WebDAV用のディレクトリを作成し、権限を設定します。
WebDAVでは、ここで設定するディレクトリ以下を使用します。
このディレクトリを以降では、WebDAVルートディレクトリと説明します。

mkdir -p WebDAVルートディレクトリ名
chown apache:apache WebDAVルートディレクトリ名

WebDAVにアクセスした際に要求されるユーザ名とパスワードを設定します。
下記を実行するとパスワード入力を要求されるので、入力して下さい。

htpasswd -c 認証用パスワードファイル名 ユーザ名

webdav.conf を設定します。
/etc/httpd/conf.d/webdav.conf

LoadModule encoding_module   modules/mod_encoding.so
<IfModule mod_dav_fs.c>
    <IfModule mod_encoding.c>
        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
    </IfModule>
</IfModule>
Alias /webdav WebDAVルートディレクトリ名
<Directory WebDAVルートディレクトリ名>
    Dav on
    SSLRequireSSL     # SSL通信を行う場合
    Options Indexes
    AuthName "This directory requires user authentification."
    AuthType Basic
    AuthUserFile 認証用パスワードファイル名
    Require valid-user
    Order deny,allow
    Deny from all
    Allow from all
</Directory>

WebDAVルートディレクトリ名 は、先に作成したWebDAV用のディレクトリを指定してください。
認証用パスワードファイル名 も、先に htpasswd コマンドで作成したファイルを指定してください。

SSLRequireSSL を指定した場合は、SSL通信でWebDAVにアクセスできます。
例えば、後述していますが、WebDAVでブラウザでアクセスする際に URL指定しますが、https://~のように、httpsでアクセスできるようになります。
但し、https でアクセス出来るようにするための apache の設定 での設定が必要です。

https でアクセス出来るようにするための apache の設定で作成した /etc/pki/tls/certs/server.crt を クライアントPC(Windows)にコピーし、
インターネットエクスプローラの
ツールメニュー ->
インターネットオプション ->
コンテンツ タブ ->
証明書 ボタン ->
信頼されたルート証明書 タブ
のインポート ボタンを押してインポートして下さい。
これをしていないと、以下で説明しているWebDAVを利用する際の net use でのネットワークドライブ割り当てや、ブラウザ(インターネットエクスプローラ)での表示で失敗します。

WebDAV利用方法

ブラウザから利用

ブラウザ上で URL に以下を指定します。

http://サーバのFQDN/webdav/  (webdav.confでSSLRequireSSLを未設定の場合)
https://サーバのFQDN/webdav/  (webdav.confでSSLRequireSSLを設定した場合)

ネットワークドライブとして利用

WindowsVista以降では、ネットワークドライブを割り当てて利用できます。
コマンドプロンプトで下記を実行してください。

net use ドライブ名: https://サーバのFQDN/webdav /user:ユーザ名

ドライブ名は、A-Zのうち、未使用のものを指定してください。例えば W を指定すると、Wドライブとして利用できます。
ユーザ名は、先の認証用パスワードファイルの作成時に指定したユーザ名です。

なお、コマンドプロンプトは、スタートメニューの プログラムとファイルの検索 で cmd と入力すると、cmd.exe が検索されます。これを実行すると、コマンドプロンプトが表示されます。

参考

CentOS 6 – WEBサーバー – WebDAVの設定 : Server World
WebDAVの日本語対策でmod_encodingを導入すると、他のソフトの日本語環境やPHPやCGIで文字化けが発生する
WebDAV Resources JP
https でアクセス出来るようにするための apache の設定

コメント

タイトルとURLをコピーしました