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 の設定
コメント