Posts about: » WEBサーバ

携帯3キャリアの絵文字コンバータをつくった

Written in 2010年04月28日 by | コメントする( 0件 )

うちのフレームワークの絵文字コンバータ機能を再作成しました。3キャリアのSJISのページから送られてくる絵文字をmbstring.encoding_translationで、内部エンコードのUTF-8に変換したのちに、絵文字を [emoji:E123] のような内部で扱う形式に変換し、DBに保存する。PCサイトの出力時には、<img>で絵文字画像を出力し、各携帯キャリアに出力する際には、各キャリアの絵文字に変換して出力する機能です。

絵文字のバイナリと絵文字タグの相互変換をするための変換テーブルをどのような形式にしようかとだいぶ模索しました。

■フォームからやってくる絵文字を内部用の絵文字タグに変換する実装

DoCoMo

フォームからのSJIS絵文字=>UTF-8に変換=>※置換実行※<=UTF-8に変換<=unicodeの16進数をpack

EzWeb

フォームからのSJIS絵文字=>UTF-8に変換=>※置換実行※<=UTF-8に変換<=Shift-JISの16進数をpack

Softbank

フォームからのSJIS絵文字=>UTF-8に変換=>※置換実行※<=UTF-8に変換<=Shift-JISの16進数をpack

■内部用絵文字タグを絵文字に変換して携帯に出力する実装

DoCoMo

絵文字タグ=>※置換実行※<=UTF-8に変換<=unicodeの16進数をpack
※置換実行※=>SJIS-winに変換

EzWeb

絵文字タグ=>※置換実行※<=UTF-8に変換<=Shift-JISの16進数をpack
※置換実行※=>SJIS-winに変換

Softbank

絵文字タグ=>※置換実行※<=UTF-8に変換<=Shift-JISの16進数をpack
※置換実行※=>SJIS-winに変換

■実装する中でわかったこと

ドコモ絵文字は、mb_encoding_translationで、unicodeからSJIS-winや、UTF-8に変換して、それぞれの文字コードで表示できる。しかし、EzWebやSoftbankの絵文字では、unicodeから、SJIS-winや、UTF-8に変換しても、各エンコードの絵文字配列が異なるせいか、各エンコードで同じ絵文字を表示させることができない、というより文字化けとなる。したがって、サイトのHTML出力で使うエンコードの16進数を使ってバイナリを作り、それをmb_encoding_translationで変換してやる必要がある。(フォームからやってくる絵文字は、mbstring.encoding_translationで変換されているので。)


Apache2.0で、mod_cacheを後から追加

Written in 2010年03月29日 by | コメントする( 0件 )

ソースインストールしたApache2.0に後からmod_cache.so、mod_disk_cache.so、mod_file_cache.so、mod_mem_cache.soを後から追加する。

ソースディレクトリに行く。うちの例では以下の通り。

cd /usr/local/src/apache/httpd-2.0.61/modules/cache/

apxsコマンドで、モジュールをコンパイル&インストール

apxs -i -a -c mod_file_cache.c

ソースディレクトリに行く。うちの例では以下の通り。

cd /usr/local/src/apache/httpd-2.0.61/modules/experimental/

apxsコマンドで、モジュールをコンパイル&インストール

apxs -i -a -c mod_cache.c cache_util.c cache_storage.c
apxs -i -a -c mod_mem_cache.c cache_cache.c cache_hash.c cache_pqueue.c
apxs -i -a -c mod_disk_cache.c

「-c」オプションでモジュールのソースファイルを指定。
「-i」オプションでビルド完了後モジュールをモジュールディレクトリに移動。
「-a」オプションでhttpd.confにLoadModule文が1行が追加されます。

Apache2.0で、mod_proxyを後から追加

Written in 2010年03月29日 by | コメントする( 0件 )

ソースインストールしたApache2.0に後からmod_proxy.so、mod_proxy_http.so、mod_proxy_ftp.so、mod_proxy_connect.soを後から追加する。

ソースディレクトリに行く。うちの例では以下の通り。

cd /usr/local/src/apache/httpd-2.0.61/modules/proxy/

apxsコマンドで、モジュールをコンパイル&インストール

apxs -i -a -c mod_proxy.c proxy_util.c
apxs -i -a -c proxy_http.c proxy_util.c
apxs -i -a -c proxy_ftp.c proxy_util.c
apxs -i -a -c proxy_connect.c proxy_util.c

「-c」オプションでモジュールのソースファイルを指定。
「-i」オプションでビルド完了後モジュールをモジュールディレクトリに移動。
「-a」オプションでhttpd.confにLoadModule文が1行が追加されます。

proxyのモジュールでは、proxy_util.cが必要となっている。
これをしないとapachectl configtest時や、apache再起動時にエラーが出る。

高速WEBサーバいろいろ

Written in 2010年03月24日 by | コメントする( 0件 )

■高速Webサーバ「Nginx」
高速なWEBサーバで、プロキシやりライトなどの機能も持つ。
▽本家サイト
http://nginx.org/
▽マイコミ記事
http://journal.mycom.co.jp/news/2010/03/09/013/index.html

■高速Webサーバー「TUX」
▽本家サイト
http://www.redhat.com/docs/manuals/tux/
http://www.redhat.com/docs/manuals/tux/TUX-2.0-Manual/
▽IT PRO記事
http://itpro.nikkeibp.co.jp/article/COLUMN/20051115/224580/

■マルチプラットフォームの高速ウェブサーバ「lighttpd」
▽本家サイト
http://www.lighttpd.net/
▽マイコミ記事
http://journal.mycom.co.jp/news/2005/09/02/007.html