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
Apacheをインストールする
WebDAVを使用する
PHPをインストールする
Apache 情報源
Apache ウェブサーバのインストール、設定、活用法
このページの更新情報の他、IT(情報技術)に関するトピックスをメールマガジンでお知らせしています
ITNAVI.mag をまぐまぐで登録