nkfによる文字コードの一括変換

2007年3月17日(土)

最近、文字コードに煩わされる頻度が増えてますねぇ、ホントはあんまりこのあたりに煩わされたくないのですが、Web系開発の仕事が増えてくると避けて通れないところですね。

で、nkfです。ファイルの内容を指定した文字コードに変換してくれるというものですね。
webalizer(和)の出力を変換する必要が出たためのご登場です。
まずはダウンロード、私は下記のURLから持ってきました。

http://osdn.dl.sourceforge.jp/nkf/19481/nkf206a.tar.gz というファイルを持ってきました。

でもって解凍
# wget http://osdn.dl.sourceforge.jp/nkf/19481/nkf206a.tar.gz
# tar xvf nkf206.tar

コンパイルします。

# cd nkf206/
# make

cc -O -Wall -c utf8tbl.c
cc -O -Wall -o nkf nkf.c utf8tbl.o

この手順で、nkf という実行ファイルが生成されます。
これをパスの通ったディレクトリへコピー(そのまま使っても良いですが)
これで準備終了です。

nkf 実行例
# nkf -s usage_200701.html.euc > usage_200701.html.sjis

で、usage_200701.html.sjis というShiftJISファイルがGet!できました。
これで適当なスクリプトを作ってディレクトリの内容を一括変換とかできますね。

mb_encode_mimeheaderの罠

2007年3月16日(金)

調べてみると意外とポピュラーな話らしいのですが、mail()関数で subject に値を設定する時にmb_encode_mimeheader()関数をずっと使っていたのですが、internal_encodingの設定内容によっては不可解な現象が発生するようです、簡単に言えば文字化けですね。

こいつに出くわし、解決に結構時間をとられてしまった。
結局のところは下記の修正で解決
〔変更前〕
mb_encode_mimeheader(mb_convert_encoding($subject, ‘SJIS-WIN’, ‘UTF-8′, ‘ISO-2022-JP’)

〔変更後〕
“=?ISO-2022-JP?B?”.base64_encode(mb_convert_encoding($subject, ’SJIS-WIN’, ‘UTF-8′)).”?=”

うーん、 mb_encode_mimeheaderは使わない方がよいかな...

CentOS4にDell SeverAdministrator をインストール:後編

2007年3月15日(木)

【インストール作業1】
□Dellサイトより最新バージョンをダウンロード
http://support2.jp.dell.com/jp/jp/filelib/search.asp から使用機種を選択して検索(共通っぽくて最近の機種なら全部同じもの)
ファイル
「Dell OpenManage Server Administrator Managed Node (Application)」の
“OMI-50-MN-LX_A01.tar.gz”

【 インストール作業2】
□インストール

ここまでの結論を導き出すために結構試行錯誤しました(^^;)
(マニュアル読んでもよくわからん何とかしてくれ->Dell)

# cd {解凍したディレクトリ}/linux/supportscripts/

# ./srvadmin-install.sh -x

オプション-xをつけないと、対話式にインストールするプログラムを選択する

経験上インストールするOS/32,64bitの違いによって、インストールされるプログラムが17~19の間で異なる

【Server Administrator の起動】

# ./srvadmin-services.sh start

ファイアーウォールの設定で、TCPのポート1311を開ける

【動作確認】

ブラウザで http://{サーバーURL}:1311/ をブラウズするとユーザID/パスワードを聞いてくるので、rootの ユーザID/パスワード入力する

これで、めでたくブラウザ上に SeverAdministratorが表示されました

CentOS4にDell SeverAdministrator をインストール:前編

2007年3月14日(水)

Dell のPowerEdge1950にCentOS4.Xをインストールすると当然ですがサポート対象外なので付属のOSインストーラは使えないので、ServerAdministratorを一緒にインストールできませんねぇ、ということでインストールします(これがないとRAIDの状態とかチェックできないのでRAIDにしている意味が半分なくなってしまう)。
(同様の手順でインストールした機種2850,2950,750,850,840)

※もしかしたら重要な注意事項
RAID5構成のPowerEdgeでServerAdministratorを常駐させておくと58日間隔でOSがフリーズする事態が複数のサーバで発生!
使用するときだけ起動した方が良いみたい、Dellのサポートに問い合わせても原因は不明。

※もしかしたらどってことなかったのか...(2007/4/5追記)
Dellのサイトに知らないうちに(って気づかなかっただけか)Storage Management version 5.1.0 パッチなるものがあるのでこれをあてれば良いのかも。でもお客さんのサーバで試す気はないので真相がわかるのはかなり先のことかな

【準備1】
□CentOS4に自分はRHEL4だと思いこませる呪文

こうしないとOracleなんかと同様にインストーラが正しく動作しない

# cd /etc;cp redhat-release redhat-release.org

# echo ‘Red Hat Enterprise Linux AS release 4 (Nahant)’ > redhat-release

※必要ならインストール後に元に戻す

【準備2】
□必要ライブラリのインストール
以下のライブラリでインストールされていないものをインストール

# yum -y install compat-libstdc++-296
# yum -y install compat-libstdc++-33
(CentOS4 x86_64では以下がインストールされていなかった)
# yum -y install ncurses
# yum -y install pam
# yum -y install libxml2

後編に続く...

JpGraph(Pro版)に付属のライブラリでQRコードを表示:プログラム編

2007年3月13日(火)

プログラム編というほど大げさではないですが。

〔QRコード生成プログラム:qrgoogle.php〕

<?php
require(’{jpgraphをインストールしたディレクトリ}/src/jpgraph.php’);
require(’{jpgraphをインストールしたディレクトリ}/src/jpgraph_canvas.php’);
require(’{jpgraph_qrcodeをインストールしたディレクトリ}/src/jpgraph_qrcode.php’);

$qrcode = QRcodeFactory::Create (’http://www.google.co.jp’);
$qrcode ->Enc ();
$img = new Output_QRcodeIMAGE ($qrcode);

$img ->SetMargin ( 2 );
$img ->SetScale ( 2 );  //QRコードの大きさ:Scaleを1にするとかなり小さくなるが認識が遅くなる、2ぐらいが見た目ちょうど良いかな

$img ->Stroke ();
//$img ->Stroke(’qr.png’);  //ファイルに出力する場合は引数に出力ファイル名を指定
?>

単純にQRコードを表示させるだけなら
http://www.neo-site.jp/labo/contents/pgm/qrgoogle.php
といった感じで直接呼び出せば、下記のように表示される ので

http://www.google.co.jp

これを携帯で読み込ませれば、googleへGo !

JpGraph(Pro版)に付属のライブラリでQRコードを表示:インストール編

2007年3月12日(月)

PHPでグラフ・QRコードを表示するためにJpGraphを導入してみた。
サーバーアクセスログ公開サービスでの使用と携帯ページ向けQRコード表示を想定
——————————————————————————————-
◆JpGraph のインストール
——————————————————————————————-
# tar xzf jpgraph-2.2.1p.tar.gz

# cd jpgraph-2.2.1p/src

# vi jpg-config.inc.php

●以下(40行目付近)のコメントを外す
DEFINE(”CACHE_DIR”,”/tmp/jpgraph_cache/”);
DEFINE(”MBTTF_DIR”,”/usr/share/fonts/ja/TrueType/”);

●TrueTypeの指定
DEFINE(’MINCHO_TTF_FONT’,'ipam.ttf’);
DEFINE(’PMINCHO_TTF_FONT’,'ipamp.ttf’);
DEFINE(’GOTHIC_TTF_FONT’,'ipag.ttf’);
DEFINE(’PGOTHIC_TTF_FONT’,'ipagp.ttf’);
(今回はマニュアルに従い情報処理推進機構のフォントを使用)

# mkdir /tmp/jpgraph_cache

——————————————————————————————-
◆QRコードライブラリ のインストール(というか解凍するだけ)
——————————————————————————————-
# tar xzf jpgraph_qrcode_1.1.tar.gz