●【覚え書き】いろいろ参った(泣)
最近、何も書いていませんでしたが、水面下では色々な事をやっていました。
日記用の別ブログの設定をしていたのですが、思い立って、2.661で作っていた日記ブログを、3.151jaにアップグレードしてみました。
すると、本来ならアップグレードした時に自動で作成されるはずのテンプレート「Remember Me」が作製されず、再構築でエラーになってしまいました。
テンプレートの不足だけなら、新規作成してコピペすればいいのですが、他にも不具合があるとイヤだったので、一端2.661自体を削除し、3.151jaをフル・インストールしました。
(このブログとは別個にインストしていたので、こっちには影響なし)
しばらくは、3.151jaのタグとにらめっこしながら、新たにテンプレートをカスタマイズを続けたものの、最初からだったのか、いじりすぎたからなのか、カテゴリー関連の編集ができなくなってしまい、色々といじる位なら、もう一度入れ直した方が早いと、再度フル・インストール。
が、今度は再構築すると「Undefined subroutine &Jcode::euc_utf8 called at extlib/Jcode.pm line 500. 」というメッセージがあらわれ、再構築&MTの編集さえもできなくなってしまいました。
Jcode.pmの中身を確認し、CPANからダウンロードし直したりしましたが、一向に改善がみられません。
実はこの日、サーバが半日ダウンし、復旧と同時にApacheとPHPのヴァージョンアップが行われたらしいのですが、もしかしたら何か関係があるのでしょうか?
(Apache2.0.52、PHP4.3.11)
検索しても具体的な回避策が見つからず、お手上げ状態で、しばらく放置していたのですが、久しぶりにもう一度検索してみたところ、Movable Type 3.x 導入手順: mt-load.cgiを実行で、同じ状態だった人がJcode.pmでJcode.pmをDLして入れ直したら直ったというコメントが入り、試してみたところ、症状を回避する事ができるようになりました。
日付を見たところ、Jcode.pmのヴァージョンが、私が前回回避策を探していた後に2.0にアップしたようで、前ヴァージョン(0.87)だった事が原因のようですが、なぜ突然エラーが出るようになったのは、不明です。
(Apache or PHPのヴァージョンアップが関係?)
さて、ようやく作動するようになったMT3.151jaですが、一難去ってまた一難。
ログ(mt.cgi)をインポートした所、記事が全て文字化けしているのです。
とりあえず、ログ(mt.cgi)をutf8で保存し直して再度取り込んだところ、文字化けは直りました。
ああ、これで本来の作業に戻れるぞ……と安心したのもつかの間、今度はM's folderさんの和風日付表示プラグインと旧暦表示プラグインが文字化けしたり、表示されなくなってしまったのです。
両プラグインは、EUCで書かれており、MT3以降で使用する場合は、文字コードをutf8にすれば使用できるようなのですが、残念ながら文字化けどころか、今度は完全に表示されなくなってしまいました(号泣)
踏んだり蹴ったりです。
もう一度、バックアップの両プラグインをアップしたところ、日付(数字で表示する部分)はきちんと表示されました。
曜日や六曜など、日本語(漢字?)表記は文字化けしていますので、Jcode.pmをヴァージョンアップした事が、やっぱり原因のようです。
かといって、旧ヴァージョンに戻すと、前述のエラーが……。
和風日付表示プラグインと旧暦表示プラグインの文字化けついては現在、回避方法を探っている状態です。
EUCとutf8の変換の問題なのでしょうね。
日記がなんとか整理ついたら、こっちのブログも3.151ja(もしかしたら3.16?)にアップするつもりです。
【5月31日追記】
なんとか文字化けを回避しました。
文字化けするのは漢字の部分だったので、ためしに表示させたい文字列を実体参照に置き換えたところ、無事に表示されるようになりました。
これがうまくいってから気が付いたのですが、和風日付表示プラグインに関しては、M's folder: MT 和風日付表示プラグイン アップデートで、UTF-8版も配布されていて、はじめからこちらを使用すれば、余計な苦労はしないで済んだようでした(笑)
私の環境下(Mac OS9.2.2 &Jedit3 )でUTF-8に書き換えたモノは、なぜか使えないみたいですね……。
旧暦表示プラグインの方は、配布元でUTF-8版は配布されていないようなので、そのまま実体参照に置き換えた状態で使用しています。
オリジナル
my @krokuyo = ('大安', '赤口', '先勝', '友引', '先負', '仏滅');
↓
実体参照置き換え後
my @krokuyo = ('大安', '赤口', '先勝', '友引', '先負', '仏滅');
当ブログ内関連記事和風日付&六曜表示プラグイン