Home > Apache
Apache Archive
Debian/GNU Linux etch に mod_chxj をインストールしたよ
携帯電話向けにコンテンツを変換する Apache モジュールの mod_chxj が約1年半ぶりにバージョンアップしていたのでインストールしてみました。
deb パッケージだと Apache2.2 に対応していないのでソースからビルドします。
mod_chxjをインストールする前に、下記のものを用意する必要があります。
- Apache2.0のヘッダーファイル群
- Apache2.0用のapxs
- apr(Apache Portable Runtime)ライブラリとそのヘッダファイル郡(apu含む)
- automake、autoconf、libtool1.3.X
- ImageMagick(MagickWand)
- libiconvまたはlibiconv_hook
- 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 プログラム側で気にしなくても良いのはとても素晴らしいことですね。
- Comments: 2
- Trackbacks: 0
ホーム > Apache
- Search
- Feeds
- Meta