今回は以前から話題の携帯用Apacheモジュール「mod_ktai」をインストールしてみます。
mod_ktaiとは?
株式会社ゆめみ様の運営する開発ブログ「YUMEMI labs」で公開されている、携帯用Apacheモジュールです。現在(08/11/17)、機種情報を環境変数として取得できる「mod_ktai_info」、絵文字の変換が出来る「mod_ktai_emoji」、画像の変換が出来る「mod_ktai_image」が公開されています。Apacheモジュールとして動作するので、プログラム言語毎に携帯用ライブラリを実装する必要が無く、何より動作が高速であるという優位性がありますが、残念ながら、現在のところ導入出来る環境が限られているという制限もあります。
詳しくはこちらから => mod_ktai/YUMEMI Labs [ゆめみラボ]
mod_ktaiをインストール
mod_ktaiは現在以下の環境で動作します。
OS:CentOS 5、RedHat Enterprise 5
ミドルウェア:Apache 2.2以上、Boost 1.33以上、ImageMagick(mod_ktai_imageを使用する場合)
CPU:i386版、x86版
※Apache、Boost、ImageMagickは、ソースからではなくパッケージからインストールしたものをご利用下さい。
ソースからインストールしたものではmod_ktaiは動作できません。
※Apacheはpreforkモードでご利用ください
先ほども少し触れましたが、現在のところmod_ktaiをインストールするには上記の様な制限があります。ですが、インストール作業は特に変わった事も無く、要件を満たす環境であれば非常に簡単に導入出来ます。それでは今回は下記の様な環境に「mod_ktai_info」をインストールする事にします。
- OS: CentOS 5.2
- httpd: Apache/2.2.3(パッケージ版)
【1】必要なパッケージを導入
[root@host ~]# yum -y install boost
【2】ダウンロード&インストール
[root@host ~]# cd /usr/local/src [root@host src]# wget http://labs.yumemi.co.jp/labs/mod/rpm/mod_ktai_info-0.10.0-1.el5.yumemi.i386.rpm [root@host src]# rpm -ivh mod_ktai_info-0.10.0-1.el5.yumemi.i386.rpm
【3】設定ファイルを編集
[root@host ~]# vi /etc/httpd/conf.d/ktai_info.conf # ktai_info.conf #LoadModule ktai_info_module modules/mod_ktai_info.so ↓ コメントアウト解除 LoadModule ktai_info_module modules/mod_ktai_info.so #KtaiInfoLoadDeviceConfigFile /etc/httpd/ktai/ktai_model.tsv ↓ コメントアウト解除 KtaiInfoLoadDeviceConfigFile /etc/httpd/ktai/ktai_model.tsv
【4】Apacheを再起動
[root@host ~]# service httpd restart
mod_ktaiの動作確認
それではどの様な情報が取得できるのか確認してみます。今回は携帯端末からアクセス可能な場所に以下の様な単純なPHPスクリプトを設置して確認する事にします。(他の言語でも環境変数さえ表示出来ればどの様なものでも良いと思います。)
確認用スクリプト
[user@host ~]# vi ./public_html/ktai/index.php <?php var_dump($_SERVER);
実行結果(Softbank 821SH の場合)
[X_KTAI_INFO_ORIGINAL_USER_AGENT] => 'SoftBank/1.0/821SH/SHJ001 Browser/NetFront/3.4 Profile/MIDP-2.0 Configuration/CLDC-1.1' [X_KTAI_INFO_USER_AGENT] => 'SoftBank/1.0/821SH/SHJ001 Browser/NetFront/3.4 Profile/MIDP-2.0 Configuration/CLDC-1.1' [X_KTAI_INFO_CARRIER_ID] => '3' [X_KTAI_INFO_DEVICE_ID] => '821SH' [X_KTAI_INFO_DEVICE_NAME] => '821SH' [X_KTAI_INFO_DEVICE_CATEGORY_ID] => '1300' [X_KTAI_INFO_CACHE_SIZE] => '307200' [X_KTAI_INFO_COLOR_DEPTH] => '24' [X_KTAI_INFO_XHTML_AVAILABLE] => '1' [X_KTAI_INFO_SCREEN_WIDTH] => '234' [X_KTAI_INFO_SCREEN_HEIGHT] => '350' [X_KTAI_INFO_SCREEN_WIDTH_BY_CHARS] => '23' [X_KTAI_INFO_SCREEN_HEIGHT_BY_CHARS] => '17' [X_KTAI_INFO_UID] => '秘密' [X_KTAI_INFO_USER_ID] => '秘密' [X_KTAI_INFO_UTN] => '' [X_KTAI_INFO_EXT_CARRIER_ID] => '3' [X_KTAI_INFO_EXT_DEVICE_ID] => '821SH' [X_KTAI_INFO_EXT_WIDTH] => '234' [X_KTAI_INFO_EXT_FLASH_TARGET] => '1' ・・・以下略・・・
それぞれの値の意味などはこちらのページ(ktai_model.tsvの記述方法)で確認出来ます。デフォルトのままでも非常に有用な情報が取得出来ている事が確認出来るかと思います。前述のページでも説明されているとおり、mod_ktai_infoでは機種情報をファイル(ktai_model.tsv)で管理しています。そのため、新機種のリリース時には機種情報を追加していく必要があります。その反面、この機種情報データファイルを編集すれば各自のサービスで必要になる情報を環境変数に追加する事も出来るので、様々な利用方法が考えられそうです。実際の運用ではこのファイルの管理がとても重要になってくるでしょう。