#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 の日本語フォルダーアクセスが異常になる等の不具合が解決したことを確認できた};

トップ   編集 差分 履歴 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS