#contents
*** WebDAV の設定 (基本) [#h308f757]
- ディレクトリ = /opt/webdav <---- apache.apache にオーナーを設定する必要がある
- 認証 = BASIC
- 登録ユーザー = munakata ( nananamocha )
- httpd.conf の設定
#----------------------------------------------------------------------------------------------
# WebDAV の 設定
#----------------------------------------------------------------------------------------------
<IfModule mod_dav_fs.c>
# Location of the WebDAV lock database.
DAVLockDB /var/lib/dav/lockdb
</IfModule>
<IfModule mod_dav.c>
Alias /webdav "/opt/webdav"
DAVMinTimeout 600
# XML request bodies are loaded into memory; limit to 128K by default
LimitXMLRequestBody 131072
<Location /webdav>
DAV On
SSLRequireSSL
AuthType Basic
AuthName "Enter WebDAV password"
AuthUserFile /usr/local/certs/munakatapasswd2
Require user munakata
</Location>
</IfModule>
- ファイルアクセスの競合制御用のロックにも apache.apache のアクセス権を指定する必要がある
[root@spirit ~]# ls -l /var/lib/dav/
合計 0
-rw-r--r-- 1 apache apache 0 12月 31 17:17 lockdb.dir
-rw-r--r-- 1 apache apache 0 12月 31 17:17 lockdb.pag
*** WebDAV の設定 (日本語対応) [#w3c5d167]
- 上記の標準インストールでは 日本語ファイル名/フォルダー名が文字化けする
- mod_iconv というモジュールを使って文字コードの対応を行うが、副作用があり更に対応が必要
- 例によって パソコンおやじ の記事が非常に的確で参考になった & 副作用対策のパッチも提供されていた
- mod_encode プログラムを [[WebDAV Resources JP:http://webdav.todo.gr.jp/]] からダウンロードしてインストールする
-- &ref(mod_encoding-20021209.tar.gz); <---- プログラム本体
-- &ref(mod_encoding.c.apache2.20020611a-2); <---- Apache2.0 系用の差し替えファイル
- mod_encoding-20021209.tar.gzを展開してmod_encoding.c.apache2.20020611a-2をmod_encoding.cとして差し替えます
[root@spirit Downloads]# tar zxfv mod_encoding-20021209.tar.gz
[root@spirit Downloads]# cp mod_encoding.c.apache2.20020611a-2 mod_encoding-20021209/mod_encoding.c
- iconv_hookのインストール (mod_encodingのインストール前にiconv_hookライブラリのコンパイルとインストールを行う)
[root@spirit Downloads]# cd mod_encoding-20021209/lib
[root@spirit lib]# ./configure
[root@spirit lib]# make
[root@spirit lib]# make install
- /usr/local/lib に libiconv_hook がインストールされた
[root@spirit lib]# ls -l /usr/local/lib/libiconv_hook*
-rw-r--r-- 1 root root 250478 12月 31 22:53 /usr/local/lib/libiconv_hook.a
-rwxr-xr-x 1 root root 775 12月 31 22:53 /usr/local/lib/libiconv_hook.la
lrwxrwxrwx 1 root root 22 12月 31 22:53 /usr/local/lib/libiconv_hook.so -> libiconv_hook.so.1.0.0
lrwxrwxrwx 1 root root 22 12月 31 22:53 /usr/local/lib/libiconv_hook.so.1 -> libiconv_hook.so.1.0.0
-rwxr-xr-x 1 root root 233239 12月 31 22:53 /usr/local/lib/libiconv_hook.so.1.0.0
- /etc/ld.so.conf に上記のライブラリーが反映されるように修正して ldconfog 実行(データベースの更新)を行う
[root@spirit lib]# cat /etc/ld.so.conf
include ld.so.conf.d/*.conf
/usr/local/lib
[root@spirit lib]# ldconfig
- mod_encording のビルド
[root@spirit lib]# cd ../
[root@spirit mod_encoding-20021209]# ./configure --with-apxs=/usr/sbin/apxs --with-iconv-hook=/usr/local/include
[root@spirit mod_encoding-20021209]# make
[root@spirit mod_encoding-20021209]# gcc -shared -o mod_encoding.so mod_encoding.o -Wc,-Wall -L/usr/local/lib -Llib -liconv_hook
[root@spirit mod_encoding-20021209]# cp mod_encoding.so /etc/httpd/modules/mod_encoding.so
- /etc/httpd/conf/httpd.conf に mod_encoding の読込を指定する
LoadModule encoding_module modules/mod_encoding.so
--- snip
<IfModule mod_encoding.c>
EncodingEngine on
NormalizeUsername on
SetServerEncoding UTF-8
DefaultClientEncoding JA-AUTO-SJIS-MS SJIS
AddClientEncoding "cadaver/" EUC-JP
</IfModule>
-- &color(red){上記のサーバー側のエンコーディング指定は、サーバーの指定が eucJP であっても UTF-8 でなければならない};;
*** 日本語対応による副作用対策 (パソコンおやじ 提供のパッチの適用) [#p3199e23]
- [[パソコンおやじ の対策紹介サイト:http://www.aconus.com/~oyaji/faq/apache_encoding.htm]]
-- Apache 2.0 系向けのパッチ ----> &ref(mod_encoding.c-apache2.0-20060520.patch); ・・・・・・ 今回 Cent OS にはこちらを適用した
-- Apache 2.2 系向けのパッチ ----> &ref(mod_encoding.c-apache2.2-20060520.patch);
- 上記のパッチを適用して mod_encording を作り直す
[root@spirit lib]# cd ../
[root@spirit mod_encoding-20021209]# wget http://www.aconus.com/~oyaji/faq/mod_encoding.c-apache2.0-20060520.patch
[root@spirit mod_encoding-20021209]# patch -p0 < mod_encoding.c-apache2.0-20060520.patch
[root@spirit mod_encoding-20021209]# ./configure --with-apxs=/usr/sbin/apxs --with-iconv-hook=/usr/local/include
[root@spirit mod_encoding-20021209]# make
[root@spirit mod_encoding-20021209]# gcc -shared -o mod_encoding.so mod_encoding.o -Wc,-Wall -L/usr/local/lib -Llib -liconv_hook
[root@spirit mod_encoding-20021209]# cp mod_encoding.so /etc/httpd/modules/mod_encoding.so
-- &color(red){この対策を適用した結果、squirrel mail の日本語フォルダーアクセスが異常になる等の不具合が解決したことを確認できた};