2009年9月19日土曜日

apacheで日本語URLを利用できるようにする方法

以前、Windows、IISで構築していたシステムでURLに日本語(SJIS)があるシステムがあった。それをLinux、Apacheで再構築したときに、Apachedで日本語URLを利用できるようにしなければならなくなりました。そのときの作業メモを残しておきます。ここでのApacheは2.2.3です。

Apacheで日本語URLを利用できるようにするためには「mod_encoding」をインストール、設定しなければならないようです。そこで mod_encodingをインストールします。

1.mod_encodingのインストール
-----mod_encodingのソース、apache2用のパッチのダウンロード
$wget http://ftp.gnu.org/pub/gnu/libiconv/libiconv-1.10.tar.gz
$wget http://www2d.biglobe.ne.jp/~msyk/software/libiconv/libiconv-1.10-ja-1.patch.gz
-----アーカイブを解凍
$tar xvfz mod_encoding-20021209.tar.gz
-----解凍したソースファイルがあるディレクトリへ移動
$cd mod_encoding-20021209
-----makeファイルを作成するため、configureファイルを実行します。最近はyumなどパッケージ管理システムからのバイナリインストールばっかりやっていたので、ソースからコンパイルするのは緊張(笑)
$./configure
-----しかし、apxがないと怒られます。apxも入っていませんでした。デフォルトでは入ってないのですね。apxをインストールします。
$yum install httpd-devel
-----指示に従っていけばインストールできます。もういちど実行します。
$./configure
-----また失敗しました。次は「libiconv」がないと怒られます。
libiconvをインストール。設定しなければなりません。ここで検索したところ良いページを見つけました。
http://raku.8ware.com/archives/2664
ここに書いてあるとおり、libiconvのインストール、設定を行うと、mod_encoding.so が作成されました。エラーが出るが、なんとか作成できたという感じで気味悪いですがとにかくできました。あとはapacheとの連携です。

2.Apacheとの連携
-----1.で出来たmod_encoding.soを/etc/httpd/modulesへコピー。
$cp mod_encoding.so /etc/httpd/modules
----- httpd.conf に設定を追加
$vi /etc/httpd/conf/httpd.conf
----- LoadModule部の下部に以下を追加した。今回はSJISなので以下のように設定しました。他のエンコードでも可能なようです。
#added by khiga
LoadModule encoding_module modules/mod_encoding.so

EncodingEngine on
SetServerEncoding SJIS
DefaultClientEncoding JA-AUTO-SJIS-MS SJIS

-----httpd.confの変更を反映させます
$/etc/rc.d/init.d/httpd restart

これでApacheで日本語URLも利用可能になりました。しかし教訓としてURLには日本語は使わない方が良いですね。でも、一時日本語ドメインなど話題になりましたが、ほとんど使われてないですね。あのとき取得したドメインはどうなっているのだろう?いずれ利用するときが出てくるのだろうか?

0 件のコメント:

コメントを投稿

What A Wonderful World - ルイ・アームストロング  名曲です。

  きょうは、ルイ・アームストロングの「What A Wonderful World 」です。  コロナ禍時こそ、この歌を聞きたくなりました。  なんて、素晴らしい世界なんだー!   素晴らしい世界は身近なことにあることを教えてくれる曲です。  この曲を知ったきっかけは、予備校時...