計算機メモ目次 (目的のページと内容が一致しない場合, 目次から探してください)

Solaris8 上の SSL Apache2 サーバに SSL + WebDAV 環境を構築する


標準で組み込まれている WebDAV は日本語環境の整備が必要.

日本語環境のソース http://webdav.todo.gr.jp/
  http://webdav.todo.gr.jp/download/mod_encoding-20021209.tar.gz
  http://webdav.todo.gr.jp/download/experimental/mod_encoding.c.apache2.20040616

パッチ情報
  http://www.namazu.org/ml/namazu-win32-users-ja/msg01596.html

mod_encoding.c のメイク, インストール
  gtar xvfz mod_encoding-20021209.tar.gz
  cd mod_encoding-20021209
  cp ../mod_encoding.c.apache2.20040616 mod_encoding.c

  patch <<PAT
*** mod_encoding.c.orig	Wed May 24 15:58:46 2006
--- mod_encoding.c	Wed May 24 16:17:02 2006
***************
*** 74,80 ****
  #include <http_log.h>
  #include <http_protocol.h>
  #include <http_request.h>
! /* #include <ap_compat.h> */
  
  #include <iconv_hook/iconv.h>
  
--- 74,80 ----
  #include <http_log.h>
  #include <http_protocol.h>
  #include <http_request.h>
! #include <ap_compat.h>
  
  #include <iconv_hook/iconv.h>
  
***************
*** 185,197 ****
    char *buff;
    char *keys[] = { "Destination", NULL };
    int   i;
  
    /* Normalize encoding in HTTP request line */
!   ap_unescape_url(r->unparsed_uri);
!   if ((buff = iconv_string(r, cd, r->unparsed_uri,
! 			   strlen(r->unparsed_uri))) == NULL)
      return -1;
!   ap_parse_uri(r, buff);
    ap_getparents(r->uri); /* normalize given path for security */
  
    /* Normalize encoding in HTTP request header(s) */
--- 185,205 ----
    char *buff;
    char *keys[] = { "Destination", NULL };
    int   i;
+   char *unparsed_uri;
+   char *query_string;
  
    /* Normalize encoding in HTTP request line */
!   query_string = ap_pstrdup(r->pool, r->unparsed_uri);
!   unparsed_uri = ap_getword(r->pool, &query_string, '?');
!   ap_unescape_url(unparsed_uri);
!   if ((buff = iconv_string(r, cd, unparsed_uri,
!                           strlen(unparsed_uri))) == NULL)
      return -1;
!   if (query_string && strlen(query_string) > 0) {
!     ap_parse_uri(r, ap_pstrcat(r->pool, buff, "?", query_string, NULL));
!   } else {
!     ap_parse_uri(r, buff);
!   }
    ap_getparents(r->uri); /* normalize given path for security */
  
    /* Normalize encoding in HTTP request header(s) */
PAT

  cd lib
  ./configure
  gmake
  gmake install
  cd ..
  apxs -c -I/usr/local/include -L/usr/local/lib -liconv_hook mod_encoding.c
  apxs -i mod_encoding.la

httpd.conf を編集し mod_encoding モジュールを組み込む

LoadModule encoding_module modules/mod_encoding.so

ssl.conf を編集する

Alias /public "/home/dante/public"
DavLockDB /var/spool/dav/DavLock
<Directory "/home/dante/public">
    Options +Indexes
    Dav on
    Order allow,deny
    Allow from 157.82.132.128/255.255.255.224
<IfModule mod_encoding.c>
    EncodingEngine on
    NormalizeUsername on
    SetServerEncoding EUC-JP
    DefaultClientEncoding JA-AUTO-SJIS-MS SJIS
</IfModule>
</Directory>

サーバを再起動する.


計算機メモ目次 (目的のページと内容が一致しない場合, 目次から探してください)
海洋大循環分野
daigo@ocg.aori.u-tokyo.ac.jp