WebDAVを使用する


# cd /usr/local/apache2/htdocs
# mkdir hogedav
# chown nobody.nobody hogedav
# chmod a-rwx hogedav
# chmod u+rwx hogedav
# mkdir lock
# chown nobody.nobody lock

httpd.conf にWebDAV ディレクトリの設定を追加します。
Basic認証もかけておきます。
DAVLockDB /usr/local/apache2/htdocs/lock/DAVLock

<Location /hogedav>
     DAV On
    <Limit GET PUT POST DELETE PROPFIND PROPPATCH MKCOL COPY MOVE LOCK UNLOCK>
        AuthType Basic
        AuthName "WebDAV Security"
        AuthUserFile /home/hoge/.htpasswd
        Require valid-user
    </Limit>
</Location>

mod_encoding を組み込み日本語リソース名対応にします。

日本語のファイル名、フォルダ名は、本家のmod_davで対応していないため、mod_encoding モジュールを作成し、Apache にロードする必要があります。
何故、この処理が必要かは、クライアントからサーバへの送信時と受信時で文字コードが違うためです。mod_davは送られたきた文字コードのまま、mkdirやopenシステムコールを呼び出し、ファイルやディレクトリを作成してしまいます。しかし、Windowsの場合は、送信時はシフトJIS、受信時はUTF-8を使用するため、サーバからシフトJISのファイルを返されても理解できないという現象が発生します。WebフォルダをはじめとするWebDAVクライアントはUTF-8が送られてくることを期待しています。mod_encodingは、クライアントから受け取ったコードをUTF-8に変換し格納することで、この問題を回避します。

WebDAV Resources JP

ダウンロードします。
mod_encoding-20020611a.tar.gz

mod_encoding.c.apache2.20020611a-2

iconv_hookライブラリのコンパイル/インストール
$ tar xvzf mod_encoding-20020611a.tar.gz
$ cd mod_encoding-20020611a/lib
$ ./configure
$ make
$ su
# make install
# exit

$ cd ..
$ ./configure --with-apxs=/usr/local/apache2/bin/apxs
$ cp ../mod_encoding.c.apache2.20020611a-2 mod_encoding.c

$ /usr/local/apache2/bin/apxs -c mod_encoding.c
$ gcc -shared -o mod_encoding.so mod_encoding.o -Wc,-Wall \
-L/usr/local/lib -Llib -liconv_hook
$ su
# cp mod_encoding.so /usr/local/apache2/modules

httpd.conf に下記の設定を追加します。
LoadModule encoding_module modules/mod_encoding.so

<IfModule mod_encoding.c>
         EncodingEngine on
         NormalizeUsername on
         SetServerEncoding UTF-8

         DefaultClientEncoding JA-AUTO-SJIS-MS SJIS
         AddClientEncoding "cadaver/" EUC-JP
</IfModule>

古いドキュメントには逆になっているものもありますが、AddClientEncoding UserAgent Encoding の順序です。
httpd.confの設定が完了したら、
configtestで設定内容に誤りが無いか確認します。
# /usr/local/apache2/bin/apachectl configtest
Syntax OK
apachectlのconfigtestでSyntax OKが出たら設定に問題ありません。

/usr/local/apache2/bin/apachectl configtest
Syntax error on line 1054 of /usr/local/apache2/conf/httpd.conf:
Cannot load /usr/local/apache2/modules/mod_encoding.so into server: libiconv_hoo
k.so.1: cannot open shared object file: No such file or directory

このエラーが出た場合、httpd.conf に下記の1行を追加します。
LoadFile /usr/local/lib/libiconv_hook.so

早速、再起動してみます。
# /etc/rc.d/init.d/httpd2 restart



  1. Apacheをインストールする
  2. WebDAVを使用する
  3. PHPをインストールする
  4. Apache 情報源




Apache ウェブサーバのインストール、設定、活用法


当サイト 人気ウイルス対策ソフト

ESET Smart Security

ウイルスバスター

ノートン・アンチウイルス

マカフィーウイルススキャン

NOD32

ウイルスセキュリティZERO

Copyright(c) 1999-2017 ITNAVI.com サイト運営者情報