むー

| トラックバック(0)

同じエラーが出てしまいますか・・・( ; ´Д`)


もう一度読み直してみると、

Undefined subroutine &Jcode::euc_utf8 called at /home/httpd/copycat/public_html/****/extlib/Jcode.pm line 500.

前回は飛ばして読んでたので気がつかなかった(マテ

EUC から UTF-8 への文字コード変換のモジュールが見つからないと出るみたいですね。
Jcode.pm でエラーが出てるので、Jcode.pm の500行付近を確認する〜

sub utf8{ load_module("Jcode::Unicode"); euc_utf8(${$_[0]->[0]}); }

と言うサブルーチンのところか。
エラー内容通りのサブルーチン。

Jcode オープンラボ曰く、
Jcode.pm のドキュメントやらを読んでると、以前のバージョンでは extlib/CGI/Jcode/ ディレクトリに Unicode.pm と言うモジュールがあったそうですが、
v0.88では extlib/CGI/Jcode/Unicode/ ディレクトリにある NoXS.pm に統合されてるそうな。
v0.88 (Movable Typeに同梱されているバージョンの v0.87でも)では、まず Unicode.pm をロードしに行き、無ければ /Unicode/NoXS.pm をロードしに行くとのこと。

何らかの要因で、ロードしに行ってないのかな?

$NOXS = 1;

と書き換えることでエラーが出なくなるみたいなので、やっぱりパスがうまく通ってないのが問題だと思うんですよね。
んで、パスが云々は Carp.pm が古いせいではないのかというのが一応の解決策。
でも、それでも無理とは・・・あれー( ; ´Д`)


他の面から推測。
まず、疑ったのが サーバ側。
サーバ仕様を確認すると、pc1.jp では

perl5.0:/usr/bin/perl
perl5.8:/usr/local/bin/perl

となっている。
MT のデフォルトパス設定は

#!/usr/bin/perl

なので、そのままアップロードをしているとすれば、Perl 5.8 では無く Perl 5.0 が使用されているはず。
もしかしたら、*.cgi の1行目のパス設定を変えると正常に動く可能性が?
#*.cgiファイルすべてに同じ記述があるので、結構大変な作業かもしれませんが・・・
でも、MT は一応 Perl 5.0 以降での動作を謳ってるんですよねー
なんでだろ・・・( ; ´Д`)
#Perl5.0 では動かなくなっている スクリプトもありますので、極力 5.6 以上を使った方がよさそうかもです。
#その逆もありえるのですが。


ちなみに、XREA では、サポート掲示板(2002年の情報)曰く Perl 5.6 (SSH でのバージョン確認が出来なかったので Perl 5.8 かもしれませんが)が入っているそうです。
それが原因か分かりませんが、ウチでは特に問題なく動いてたりします。

トラックバック(0)

トラックバックURL: http://www.waza-net.com/mt/mt-tb.cgi/1309

Powered by Movable Type 4.22-ja

インフォメーション