ホーム > Apache | Debian | Memo | Mobile > Debian/GNU Linux etch に mod_chxj をインストールしたよ

Debian/GNU Linux etch に mod_chxj をインストールしたよ

携帯電話向けにコンテンツを変換する Apache モジュールの mod_chxj が約1年半ぶりにバージョンアップしていたのでインストールしてみました。

deb パッケージだと Apache2.2 に対応していないのでソースからビルドします。

mod_chxjをインストールする前に、下記のものを用意する必要があります。

  1. Apache2.0のヘッダーファイル群
  2. Apache2.0用のapxs
  3. apr(Apache Portable Runtime)ライブラリとそのヘッダファイル郡(apu含む)
  4. automake、autoconf、libtool1.3.X
  5. ImageMagick(MagickWand)
  6. libiconvまたはlibiconv_hook
  7. Linux

と、ありますので、libapr や libmagick を aptitude でインストールしておきます。

libconv は http://ftp.gnu.org/pub/gnu/libiconv/
libconv の日本語パッチは http://www2d.biglobe.ne.jp/~msyk/software/libiconv-patch.html にありますので、それぞれ wget して gzip -dc libiconv-1.12-ja-1.patch.gz | patch -p1 とパッチをあててからインストールします。

$ wget http://ftp.gnu.org/pub/gnu/libiconv/libiconv-1.12.tar.gz
$ tar xvzf libiconv-1.10.tar.gz
$ cd libiconv-1.10
$ wget http://www2d.biglobe.ne.jp/~msyk/software/libiconv/libiconv-1.12-ja-1.patch.gz
$ gzip -dc libiconv-1.10-ja-1.patch.gz | patch -p1
$ ./configure
$ make
$ sudo make install

という感じ。

次に mod_chxj のダウンロードとインストール。

$ wget http://osdn.dl.sourceforge.jp/modchxj/28979/mod-chxj_0.8.1p1.src.tar.gz
$ tar vxzf mod-chxj_0.8.1p1.src.tar.gz
$ cd mod-chxj_0.8.1p1

こんな感じで解凍したら、エディタで ./src/chxj_cookie.c を開きます。
120行辺りに下記のコードがありますので、ap_run_http_method(r), をコメントアウトして下さい。

if (! has_refer) {
    apr_uri_parse(r->pool,r->uri, &parsed_uri);
    refer_string = apr_psprintf(r->pool,
                                "%s://%s%s",
#if AP_SERVER_MAJORVERSION_NUMBER == 2 && AP_SERVER_MINORVERSION_NUMBER == 2
                                ap_run_http_scheme(r),
#else
                                ap_run_http_method(r),
#endif
                                r->hostname,
                                apr_uri_unparse(r->pool,
                                                &parsed_uri,
                                                APR_URI_UNP_OMITSITEPART));
    if (r->args && strlen(r->args)) {
      refer_string = apr_pstrcat(r->pool, refer_string, "?", r->args, NULL);
    }
    apr_table_setn(new_cookie_table, REFERER_COOKIE_KEY, refer_string);
    DBG1(r, "ADD REFER[%s]", refer_string);
    has_cookie++;
  }

次にコンパイル&インストール。

$ ./buildconf.sh
$ ./configure --prefix=/usr --with-apache-header=/usr/include/apache2 --with-apxs=/usr/bin/apxs2 --with-iconv=/usr/bin/iconv --with-apr-config=/usr/bin/apr-config --with-apu-config=/usr/bin/apu-config
$ make
$ sudo make install

こんな感じです。

インストールできたらソースパッケージの中にある etc ディレクトリの xml ファイルを /etc/apache2/chxj などという名前のディレクトリを作成してコピーします。
インストール時にモジュールをロードする設定ファイルが Apache のモジュール設定ファイルのディレクトリにコピーされているはずですが、されていなかった場合にはソースパッケージの debian ディレクトリにある chxj.load を適時コピーして下さい。

設定は http://cvs.sourceforge.jp/cgi-bin/viewcvs.cgi/modchxj/mod_chxj/doc/modchxj.html?rev=1.20#doc1_102 を参考にして下さい。

僕は試しに mb サブドメインでバーチャルホストを立てて

<virtualHost *>
      ServerName mb.example.com
      DocumentRoot /var/www/mb/httpdocs
	<directory /var/www/mb/httpdocs>
		Options FollowSymLinks MultiViews ExecCGI
		AllowOverride All
	</directory>
	ChxjLoadDeviceData  /etc/apache2/chxj/device_data.xml
	ChxjLoadEmojiData   /etc/apache2/chxj/emoji.xml
	ChxjConvertRule "^/chxj.+$" "EngineOn" "UTF-8" "PC"
	<location /images>
		ChxjImageEngine On
		ChxjImageCacheDir /tmp
	</location>
</virtualHost>

という風にしました。
絵文字や画像のキャリアごとの差異を web プログラム側で気にしなくても良いのはとても素晴らしいことですね。

コメント:2

grap 2008 年 2 月 18 日

失礼しませ。

携帯電話からテスト投稿させてもらいます。

機種はauのW41CAです。

mod_chxjを導入すれば、携帯から絵文字付き投稿をするとPCにも反映されるのでしょうか?

以下、絵文字です。


以上、テスト投稿です。失礼いたしました。

nic 2008 年 2 月 18 日

>> grap さん
こんばんは!

http://cvs.sourceforge.jp/cgi-bin/viewcvs.cgi/modchxj/mod_chxj/doc/modchxj.html?rev=1.20#doc1_1123
上記ページをご覧頂くとわかるよう、このモジュールの絵文字に対する取り組みは「XML で定義された相互変換ライブラリによってキャリアごとの絵文字出力をモジュール側で制御する」という事になります。
要するに携帯電話上で定義されたバイナリを例えば DoCoMo なら DoCoMo の定義で、au なら au の定義でそれぞれ変換して出力する。と言うことになります。

grap さんのおっしゃるような仕組みをお探しでしたら下記ページなどが近いかもしれません。
http://php-develop.org/MobilePictogramConverter/
こちらは PHP スクリプトによる変換ライブラリで、PC に向けた表示も可能となっています。

コメントフォーム
入力した情報を記憶する

トラックバック:0

この記事のトラックバック URL
http://spais.jp/mobile/debiangnu-linux-etch-%e3%81%ab-mod_chxj-%e3%82%92%e3%82%a4%e3%83%b3%e3%82%b9%e3%83%88%e3%83%bc%e3%83%ab%e3%81%97%e3%81%9f%e3%82%88/2008-01-28/trackback
トラックバックの送信元リスト
Debian/GNU Linux etch に mod_chxj をインストールしたよ - SPaiS より

ホーム > Apache | Debian | Memo | Mobile > Debian/GNU Linux etch に mod_chxj をインストールしたよ

カテゴリー

ページの上部に戻る