|
2008/01/19 日記: Apache 2.2 + Subversion 1.4.6 インストール[いがぴょんの日記v2,diary,igapyon] Apache 2.2 + Subversion 1.4.6 (Windows) の組み合わせのインストールメモ。 , Apache 2.2 ログ文字化け解析クラス |
| 広告: イマドキのIDE事情: Eclipseベースの統合翻訳環境「Benten」を使ってみよう 09/27 たげぞうさんの手による Benten 紹介記事! |
| 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
※これを実施しないに越したことは無い。
| 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: 指定されたモジュールが見つかりません。