Home arrow Diary arrow days arrow ロリポップにおけるUTF-8化の顛末
ロリポップにおけるUTF-8化の顛末
Tag it:
Hatena:Bookmark
Yahoo!
Delicious
作者 Nob   
2007/11/01 木曜日 00:18:33 JST

当サイトは、オープンソースCMSのJoomla!を利用しているわけですが、Joomla!がMamboの頃から利用しているわけで、日本国内では割とというかあまり流行っていないCMSなんですが、世界的に観ると非常に流行っているわけで、そいつはGoogle Trendsを利用して国内で人気のXoopsと比較してみると明らかだったりするわけなんで、グローバル志向?の私としては国内で流行りのXoopsよりもJoomla!の方が、色々出来て楽しいぞってなことを体験したく、今日もJoomla!を使います。

Joomla!もっと流行らないかな・・・orz

まぁ、流行らないのは一重に日本語の解説が少ないのが原因なんだろうなぁって思っていたりするので、気づいたこととかは随時記録していこうということで、先日実施したコンテンツデータのEUC-JPからUTF-8への変換手順をご説明します。

ちなみに、当サイトはロリポップレンタルサーバを利用しており、説明する手順もこれに準拠するものになります。

さて、そもそも何でEUC-JPをUTF-8に変更する必要があったかというと、Joomla!は随分前から(version1.02ぐらいだったかな・・・、うーん、いつだっただろうか?)多言語対応のために、コアファイルがUnicode対応しており、標準ではEUC-JPをサポートしなくなっていたわけなんですな。

ですが、別に自分で記事書いて確認する分にはEUC-JPでも不便ではなかったし、そもそもMamboの時の設定をそのまま引き継いでいたわけで、UTF-8化の方法で有力な情報が日本であまり利用されていないせいかほぼなかったので、面倒なので放り出していたのですが、Joomla Tagbotでのソーシャルブックマークサービスへの登録時にEUC-JPだと日本語が文字化けする問題を解決する方法がわからなかったのと、やっぱり郷に入っては郷に従えだよねぇってことで、一念発起し、UTF-8化したわけです。

前置きが長くなりました。

では、簡単に手順を説明します。

  1. まず、Joomla!管理者画面のグローバルセッティングでサイトをオフラインに設定しておきます。これでユーザにはオフライン時の案内ページが表示されるようになります。
  2.  phpMyadminを利用して、データベース内のデータをSQLファイルとしてエクスポートします。
    ※エクスポートの際には、DROP DATABASEオプションをつけておいた方がいいとか、色々なサイトには記載されていますが、結果として必要ありませんでした。その理由は後述します。
  3. エクスポートしたファイルは当然のように文字コードがEUCになっているので、ベクター等で文字コード変換ソフトを探してきて、UTF-8に変換してあげます。
    ※ちなみに私は「CharsetConverter」というソフトを利用しました。
  4. phpMyadminを利用してデータベースの標準言語をUTF-8に変更して、UTF-8に変換したファイルをインポートしてあげます。
  5. 今まで利用していた日本語化ファイルは、EUC-JP用のものなので、Joomla!じゃぱんのサイトから、Joomla!本体をダウンロードして、その日本語ファイル(japanese.php、japanese.xml)をFTPソフトを利用して従来利用していたものから置き換えます。
    ※せっかくがんばって自分で翻訳したのになぁ・・・
  6. Joomla!管理者画面のグローバルセッティングで、言語(Locale)を[ja_JP,UTF8]に変更して、オンラインに変更します。

これで、UTF-8化は終了のはずでしたが、実際には手順4のインポート時に「無効な句読点文字です。」というエラーが発生し、インポートが出来ないという事態になりました。

ネットで、このエラーが出た場合の対処方法を色々調べたけど、有効なページがヒットしなかったので、断片的な情報を頼りに、とりあえず現在のデータベースを削除して、新規データベースを作成し、インポートしたら上手くいくかもとか思って、実行・・・orz

ERROR・・・orz

マジっすか・・・えっ、サイト閉鎖の危機ってヤツですか?

っって、うぉいって感じにまで陥りましたが、気を取り直して、エクスポートしてUTF-8に変換したファイルのSQL文をトランザクション毎に分割して、流し込み、どこで落ちているのかを調べるという地道な作業をはじめる決意をしました。
っというわけで、データベースを再作成したので、[DROP DATABASE]文はいらなくなったわけです。

で、トランザクションを一つ一つ実施していった結果、ERRORも起こらず終了。何故?
どこぞのコメントが悪さをしていたの?それともファイルが大きすぎて流れなかったの?

理由はわからりませんが、まぁ、とりあえずサイトは閉鎖せずに済みました。

ただ、データのインポートが出来たからと言って変換作業は終わりではありません。
データベースを作り換えたので、Joomla!のconfiguration.php内の接続データベースのURLも変更する必要があります。
ただ、まぁ、トランザクションを一つ一つ流すより、全然楽な作業ですよ。

っというわけで、サイト閉鎖の危機も無事に脱出して、UTF-8化を成し遂げたのであります。

結論から言うとローカルにテストサイトを立てて、試して合点とか、ロリポップはJoomla!の運用には実は不向きなんじゃね?とかの諸々の反省点はございますが、まぁ、長く使っているとそれなりに愛着が湧くものだし、っていうか、レンタルサーバに関しては更新したばかりなので、しばらくはこのまま続行です。
※Mamboで利用を始めた頃には、ロリポップでの構築についてのページしかなかったんだよなぁ・・・今だとサクラインターネットなのかなぁ・・・

ちなみに、ロリポップがJoomla!の運用に向かない理由はMySQLのバージョンが低いことと、Joomla!管理者画面でインストールしたコンポーネント等のファイルの所有者がapacheになってしまい、FTPソフト等でのファイル更新・削除ができなくなってしまうためです。それを解決してくれるツールとしてJoomlaXplorerってのがあるのですが、こいつが本当に使えるツールなのかどうかは、また今度ご紹介できたらいいなぁって思います。

 
< 前へ   次へ >
Joomla template by DesignForJoomla.com
DesignForJoomla.com provides free Joomla templates, free and commercial Joomla extensions, Joomla tutorials and SEO tips for the Joomla CMS