top / index / prev / next / target / source

2008-01-19 diary: Apache 2.2 + Subversion 1.4.6 インストール

いがぴょんの日記 日記形式でつづる いがぴょんコラム ウェブページです。

old-v2

Apache 2.2 + Subversion 1.4.6 インストール

Apache 2.2 + Subversion 1.4.6 (Windows) の組み合わせのインストールメモ。 , Apache 2.2 ログ文字化け解析クラス

Apache 2.2 + Subversion 1.4.6 インストール

Apache 2.2 + Subversion 1.4.6 (Windows) の組み合わせのインストールメモ。 httpd.conf

# コメント解除
LoadModule dav_module modules/mod_dav.so
LoadModule dav_fs_module modules/mod_dav_fs.so

# 追加
LoadModule dav_svn_module modules/mod_dav_svn.so
LoadModule authz_svn_module modules/mod_authz_svn.so

環境変数 APR_ICONV_PATH = "C:\Program Files\Subversion\svn-win32-1.4.6\iconv" 環境変数 Path += "C:\Program Files\Subversion\svn-win32-1.4.6\bin" なるべく実施したくない手順 (コピー) C:\Program Files\Subversion\svn-win32-1.4.6\bin*.dll → C:\Program Files\Apache Software Foundation\Apache2.2\bin ※同名ファイルは上書きしない※これを実施しないに越したことは無い。 * 2009.04.24追記 Subversion 1.5.6 (Windows) において、同様の手順で動作することを確認しました。

Apache 2.2 認証メモ

conf/httpd.conf (抜粋)

    Order deny,allow
    Deny from all
    Satisfy all

    AuthType Basic
    AuthName "iga-pc5 login"
    AuthUserFile "conf/htpasswd.conf"
    require valid-user

conf/htpasswd.conf iga:<ここにパスワード>

Apache 2.2 ログ文字化け解析クラス

ちょこっと作りました。

ICONVについてパスに追加するなどしても、文字化けは解消せず。

文字化け例 httpd.exe: Syntax error on line 120 of C:/Program Files/Apache Software Foundation/Apache2.2/conf/httpd.conf: Cannot load C:/Program Files/Apache Software Foundation/Apache2.2/modules/mod_dav_svn.so into server: \x8ew\x92\xe8\x82\xb3\x82\xea\x82\xbd\x83\x82\x83W\x83\x85\x81[\x83\x8b\x82\xaa\x8c\xa9\x82\xc2\x82\xa9\x82\xe8\x82\xdc\x82\xb9\x82\xf1\x81B DecodeMojibake.java

import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.io.StringReader;

/**
 * Apache HTTP Serverのログ上の文字化けを修正したい場合に利用するツール。
 * 
 * @author IGA Tosiki
 */
public class DecodeMojibake {
    public static void main(final String[] args) throws IOException {
        if (args.length == 0) {
            System.out.println("usage: DecodeMojibake 文字化けを直したい文字列");
            return;
        }

        System.out.println(new String(decodeMojibake(args[0])));
    }

    public static byte[] decodeMojibake(final String arg) throws IOException {
        final ByteArrayOutputStream outStream = new ByteArrayOutputStream();
        final StringReader reader = new StringReader(arg);
        for (;;) {
            final int iRead1 = reader.read();
            if (iRead1 < 0) {
                break;
            }

            if (iRead1 == '\\') {
                final int iRead2 = reader.read();
                if (iRead2 < 0) {
                    break;
                }
                if (iRead2 == 'x') {
                    // バイト発見!
                    final int iReadHigh = reader.read();
                    if (iReadHigh < 0) {
                        break;
                    }
                    final int iReadLow = reader.read();
                    if (iReadLow < 0) {
                        break;
                    }
                    final char charHigh = (char) iReadHigh;
                    final char charLow = (char) iReadLow;
                    outStream.write((byte) Integer.parseInt("" + charHigh
                            + charLow, 16));
                } else {
                    outStream.write(iRead1);
                    outStream.write(iRead2);
                }
            } else {
                outStream.write(iRead1);
            }
        }
        reader.close();
        outStream.flush();
        outStream.close();

        return outStream.toByteArray();
    }
}

解読例 …省略…onf/httpd.conf: Cannot load C:/Program Files/Apache Software Foundation/Apache2.2/modules/mod_dav_svn.so into server: 指定されたモジュールが見つかりません。


この日記について