top / index / prev / next / target / source
日記形式でつづる いがぴょんコラム ウェブページです。
Apache 2.2 + Subversion 1.4.6 (Windows) の組み合わせのインストールメモ。 , Apache 2.2 ログ文字化け解析クラス
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) において、同様の手順で動作することを確認しました。
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:<ここにパスワード>
ちょこっと作りました。
文字化け例 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: 指定されたモジュールが見つかりません。