Home > 9月 28th, 2006

MT導入記録 2006年09月28日(TineMCE)

つづいて、MT3.3に対応したTinyMCE Plugin for Movable TypeVer1.10Jaがやっとリリースされてました。
というわけで、早速入れてみました。

このPlugIn、前のVersionを入れてたんだけど、MT3.3にしたらうごかなくなっちったんではずしたんだよね。んで、前のバージョンのときは、改行設定にWYSWYGってのが追加されて、これを指定することになってたのさ。
ところが、Pluginはずしたら、MT君が「改行設定がWYSWYGなんて、どーすりゃいいんだよ」みたいなこと言って(たかどーかはしらんけど)、アーカイブページとかなんかおかしくなっちった。
しゃーないからエントリひとつづつ直してたけど、面倒になってDB直接書き直したっつー苦い経験があるんでちと躊躇しちった。

でも、説明書みてみたら、今度のは改行設定は「なし」にしとけばいいみたい。(改行設定の選択肢にはWYSWYGってのが追加されるのはかわらんけど)なので安心して導入です。

使い勝手は元々かなり気に入ってたので、入れて大正解!

そーいや、WebNote Clip4にもWYSWYGエディタ組み込む方法でてたね
掲示板だとなにされるかわかんないから怖いけど、その他のとこには入れてみよかな。
(トラバ・コメントが必要ないときはClipの方がぜんぜんお手軽でいいよん。工夫次第でかなり凝ったこともできるし。)

あ、そーそー、古いPCだとつらいみたいです。
前のVersionのときは、うちはセレロン1.4GHzとPen3 1GHz使ってたんだけど、もたついてかなりストレスたまりました。
今はPentium M 1.3GHz(Memory 1GB)でFireFox1.5.0.7で使ってるけど、この環境ならかなり快適です。

MT導入記録 2006年09月28日(Jcode.pm)

うまくいったかに見えた、定期的にmail-entry.cgiを動かす作戦
ふと気づくと、なんかエラーがあったらしくcronさんからメールがきてる。

Subroutine Jcode::ucs2_euc redefined at
(mt.cgiのディレクトリ)/extlib/Jcode/Unicode/NoXS.pm line 56.
Subroutine Jcode::euc_ucs2 redefined at
(mt.cgiのディレクトリ)/extlib/Jcode/Unicode/NoXS.pm line 71.
Subroutine Jcode::euc_utf8 redefined at
(mt.cgiのディレクトリ)/extlib/Jcode/Unicode/NoXS.pm line 87.
Subroutine Jcode::utf8_euc redefined at
(mt.cgiのディレクトリ)/extlib/Jcode/Unicode/NoXS.pm line 94.
Subroutine Jcode::ucs2_utf8 redefined at
(mt.cgiのディレクトリ)/extlib/Jcode/Unicode/NoXS.pm line 101.
Subroutine Jcode::utf8_ucs2 redefined at
(mt.cgiのディレクトリ)/extlib/Jcode/Unicode/NoXS.pm line 124.

「使おうとしたサブルーチン名はすでに使われています」ってことかな?

検索してみると、文字コード変換するときに Jcode.pm っての使うと、さらに Unicode.pm か NoXS.pm かどちらかに下請けとして発注するらしい。
で、(mt.cgiのディレクトリ)/extlib/Jcode/ をみてみると、これが両方入ってる。
Unicodeさんに発注したの忘れてNoXSさんにも発注かけたら「おいおい、そいつはもう発注済だぜ」って上司にしかられたって感じかな?よくわからんけど。
mt3.33のアーカイブにはもともとUnicode.pmは入ってないんだけど、以前のバージョンで「Unicode.pmがない」ってしかられたんで、どっからかさがしてきて入れたんだった。

そんぢゃあってんで、Unicode.pmをはずしちゃったら、mt.cgiが「Unicodeさんがいないといやだよ」って動いてくれなくなっちった。
で、Unicode.pmもどしてNoXS.pmなくしてみたら、こんどは

Subroutine Jcode::ucs2_euc redefined at
(サーバの perlディレクトリ)/Jcode/Unicode/NoXS.pm line 56.
Subroutine Jcode::euc_ucs2 redefined at
(サーバの perlディレクトリ)/Jcode/Unicode/NoXS.pm line 71.
Subroutine Jcode::euc_utf8 redefined at
(サーバの perlディレクトリ)/Jcode/Unicode/NoXS.pm line 87.
Subroutine Jcode::utf8_euc redefined at
(サーバの perlディレクトリ)/Jcode/Unicode/NoXS.pm line 94.
Subroutine Jcode::ucs2_utf8 redefined at
(サーバの perlディレクトリ)/Jcode/Unicode/NoXS.pm line 101.
Subroutine Jcode::utf8_ucs2 redefined at
(サーバの perlディレクトリ)/Jcode/Unicode/NoXS.pm line 124.

てメールがcronさんから届いた。
これは、
(mt.cgiのディレクトリ)/extlib/Jcode/Unicode.pm と
(サーバのperlディレクトリ)/Jcode/Unicode/NoXS.pmを
よみこんぢゃってるって事?

さてどーしたもんかと思ってたけど、
あ、サーバにちゃんとJocodeはいってるんだから、mtが自前で持たなくてもいいぢゃん
て思って、(mt.cgiのディレクトリ)/extlib/の下のJcode関係をはずしてみたら・・・

  • mt.cgiはちゃんと動いてるみたい。
  • cronでmail-entry.cgi動かしてメール取り込んだあとも、cronさんから苦情はこない。

てなわけで解決ってことにします。

まとめ

問題
mail-entry.cgiを動かすと、Jcode関係でエラーが出た

環境
mtのextlib/以下にJcode.pmとUnicode.pmとNoXS.pmが入っている
サーバのPerlはPerl5.8.0(Jocdeの機能元々入ってるハズ)

対応
mtのextlib/以下のJocode関係を削除

結果
いまのところ問題解決しているように見える。