絵文字や画像の自動変換を行ってくれるApacheモジュール「mod_chxj」を使ってみました(インストール編)
    このエントリをはてなブックマークに登録

mod_chxjは、ユーザエージェントから端末を判断し、絵文字や画像の3キャリア変換を自動処理するApacheモジュールです。

先日のこちらの発表で、なぜか今頃になって注目を浴びつつあるこのソフトをインストールしてみました。

mod_chxjは、2006年7月のバージョン0.8.0からリリースがありません。
今後、メンテナンスされるかどうかも不明で、端末データも古いです。
今回はとりあえず評価目的ということで、インストールから動作するところまでご紹介しようと思います。

こちらのサーバの環境としては、
「CentOS5 + Apache2.2(httpd-2.2.3-11.el5.centos)」
となっています。環境が違う方は適宜読み替えてください。

ドキュメントはこちらにありますので、これに沿って作業していく形になります。
→ mod_chxj ドキュメント [sourceforge.jp]

 

まずは動作に必要なソフトをインストールします。
ドキュメントによると次のものが必要なようです。

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

yumを使って順にインストールしました。

# yum install httpd-devel
# yum install automake autoconf
# yum install libtool
# yum install ImageMagick
# yum install ImageMagick-devel
# yum install pcre-devel

libiconvはyumになかったため、こちら [gnu.org]からダウンロードしてインストールしました。

$ ./configure
$ make
# make install

さてこれで準備が整ったので、次はmod_chxj本体のmakeなのですが、私の環境ではApache2.2系を使っているため、このままコンパイルしても通りません。
2.2系を使っている場合は、先にパッチを当てる必要があります。
2.0系の方はそのまま行けると思います。

パッチはこちらのサイトを参考に作成させていただきました。ありがとうございました。
→ Devel::Bayside mod_chxj を Apache 2.2 で動かす [hatena.ne.jp]

パッチのダウンロードはこちらからどうぞ
→ mod_chxj-0.8.0_apache2.2_patch.tar.gz [ke-tai.org]

$ tar xvfz mod_chxj-0.8.0.src.tar.gz
$ cd mod_chxj-0.8.0

※以下Apache2.2系の方のみ
$ patch src/mod_chxj.c < ../mod_chxj.c.2.2.patch
$ patch src/chxj_cookie.c < ../chxj_cookie.c.2.2.patch

mod_chxjのコンパイルとインストール

$ ./buildconf.sh
$ ./configure --with-apache-header=/usr/include/httpd/
--with-apr-config=/usr/bin/apr-1-config
--with-apu-config=/usr/bin/apu-1-config ※実際には1行で実行
$ make
# make install

CentOS5の場合は、なぜかaprとapuに「-1」がついていたため、上記のオプションをつけました。
環境によっては不要になると思います。
詳しくは「./configure –help」でご確認ください。

これで「/usr/lib/httpd/modules/mod_chxj.so」にモジュールがインストールされました。
続いて端末データと絵文字データの置き場所を作り、データコピーします。

# mkdir /etc/httpd/chxj
# cp etc/device_data.xml /etc/httpd/chxj/
# cp etc/emoji.xml /etc/httpd/chxj/

mod_chxjの設定ファイルを作成します。

# vi /etc/httpd/conf.d/chxj.conf

内容は次のようにしました。詳しくはmod_chxjのドキュメントページをご覧ください。

# Load module mod_chxj
LoadModule chxj_module /usr/lib/httpd/modules/mod_chxj.so

# Device data
ChxjLoadDeviceData  /etc/httpd/chxj/device_data.xml

# Emoji data
ChxjLoadEmojiData   /etc/httpd/chxj/emoji.xml

設定が正しいか確認します。

# apachectl configtest

ここで、
httpd: Syntax error on line 210 of /etc/httpd/conf/httpd.conf: Syntax error on line 2 of /etc/httpd/conf.d/chxj.conf: Cannot load /usr/lib/httpd/modules/mod_chxj.so into server: libiconv.so.2: cannot open shared object file: No such file or directory
のようなエラーが出る場合は、libiconvのライブラリが読み込めていない可能性があります。

ひとまずシンボリックリンクを張ってごまかしましょう。
(何かスマートな方法がありましたら教えてください)

# ln -s /usr/local/lib/libiconv.so.2 /usr/lib/

エラーが出なくなったらApacheを再起動します。

# apachectl configtest
Syntax OK
# /etc/init.d/httpd restart
httpd を停止中:                                    [  OK  ]
httpd を起動中:                                    [  OK  ]

これで動作準備OKです。

 

続いてmod_chxjの設定を書きます。
httpd.confに書いても良いのですが、私は.htaccessに書くことにしました。
mod_chxjを動作させたいディレクトリに、次の内容で.htaccessを置きます。

<IfModule mod_chxj.c>
  ChxjConvertRule     ".+$" "EngineOn" "NONE"
  ChxjImageEngine     On
</IfModule>

HTMLを設置しケータイから確認すると、確かにドコモからは見れないはずのPNG画像が表示されています。
またソフトバンクでは絵文字の変換も行われているようです。

20080109-212133.jpg

 

関連:


 

最近の記事







One Response to “絵文字や画像の自動変換を行ってくれるApacheモジュール「mod_chxj」を使ってみました(インストール編)”

  1. […] まずは、ktai.orgのこちらのエントリーを参考に、必要なものをyumでinstall。 ライブラリのインストールが終わったら、mod_chxjのドキュメントを参考に まずはこちらでmod_chxjの入手。 入手し […]

コメントを書く