2017-10-22 7 views
0

Movable Typeが有料/プロフェッショナルのみに戻る前にMovable Typeのブログソフトウェアの最後のオープンソース版。Movable Type:パッケージ "HTTP :: Request"でオブジェクトメソッド "new"を見つけることができません。

私のホストは、最近のDebian OSのバージョンを更新し、それは明らかにPerlのの、より最新のバージョンに付属している。

を更新した後、私は今、次のエラー(特にMovable Typeの試みを取得しています

トラックバックを生成するには、私のサイトに内部トラックバックが必要です):

は /home/super/www/www/cgi-bin/mt512/extlib/HTTP/Request.pmラインで「新しい」「HTTP ::要求」パッケージを介したオブジェクトのメソッドを見つけることができません14.

問題の14行目のコードは、

です。my $ self = $ class-> SUPER :: new($ header、$ content);

ファイルの先頭からRequest.pmのコードの一部を以下に示します。

私は残念ながらPerlを知らない。しかし、私は、これに対処する比較的簡単な方法があるかどうかを誰かが教えてくれることを期待しています。

package HTTP::Request; 

require HTTP::Message; 
@ISA = qw(HTTP::Message); 
$VERSION = "5.827"; 

use strict; 



sub new 
{ 
my($class, $method, $uri, $header, $content) = @_; 
my $self = $class->SUPER::new($header, $content); 
$self->method($method); 
$self->uri($uri); 
$self; 
} 

更新:ジェイ・アレンからの助けを借りて、私は

MT-check.cgiを実行することができたチェックはLWP :: UserAgentのがインストールされていないことを言う:

mt-check

私のサイトのインストール済みPerl 5モジュールのリストによると、それはインストールされています:

LWP UserAgent

それは便利だ場合、私は知らないが、CPAN :: LWP :: UserAgentのもあります:

CPAN user agent

パージェイの元のコメントは、私はMTのCGIファイルで始まることを確認するには:ここで

#!/usr/bin/perl 

は、MT-チェックからシステム情報は次のとおりです。

オペレーティングシステムオフラインem:linux

Perlバージョン:v5.24。

プラグイン/繊維/ LIB

プラグイン/ FormattedTextForTinyMCE/LIB

プラグイン/ FormattedText/LIB

プラグインのlib/Minifier/

プラグイン:1

Perlがパスを含みます/ MultiFileUploader/lib

プラグイン/ spamlookup/LIB

プラグイン/ FacebookCommenters/EXTLIB

プラグイン/ FacebookCommenters/LIB

プラグイン/承認/ LIB

プラグイン/ CommentRating/LIB

プラグイン/ WXRImporter/lib

プラグイン/ TinyMCE/lib

プラグイン/ mixiComment/libに

プラグイン/ CustomFieldsSearch/libに

プラグイン/フィードアプリ-LITE/libに

プラグイン/ libにStyleCatcher/

プラグインのlib/WidgetManager/

プラグイン/ EmailRetitler/lib

プラグイン/ TypePadAntiSpam/lib

プラグイン/ NotifyWho/libに

プラグイン/プロファイラー/ libに

アドオン/ Community.pack/libに

アドオン/ Commercial.pack/libに

EXTLIB

EXTLIB

lib

の/ etc/perlの/usr/local/lib/i386-linux-gnu/perl/5.24.1 /usr/local/share/perl/5.24.1

は/ usr/libに/ i386の

-linux-GNU/perl5の/ 5.24を/ usr/share/perl5の

/usr/lib/i386-linux-gnu/perl/5.24 /usr/share/perl/5.24

は/ usr/local/libに/ site_perl/usr/lib/i386-linux-gnu/perl-base。

Webサーバ:Apacheの

(おそらく)cgiwrap下で実行されているか

+1

Perl LWPシステムパッケージをインストールします。あなたはおそらくより多くの依存関係を必要とします。 Perlモジュールを使ってシステムパッケージをシステムにアップグレードしなかったようです。それを実行して、DebianパッケージのWebサイトからエラーからPerlモジュール名を探して、インストールするパッケージを調べることができます。また、cpanから直接モジュールをインストールすることもできますが、Perlシステムを使いこなすのは良い考えではありません。通常は、実稼働環境用にPerlをOSとは別にインストールします。 – simbabque

+0

残念ながら、LWPシステムパッケージが既にインストールされているようです。しかし、あなたのコメントに感謝します。 – fnord12

+0

投稿したファイルはどこにありますか? mtがあなたのシステムPerlを使用していないかもしれません。あなたが別のものを持っているか確認してください。 – simbabque

答えて

1

Movable Typeにsuexecのは、あなたのextlibディレクトリ内の非コンパイルCPANライブラリの多くを含んでいます。これは、モジュールをインストールできない人が実行できるようにするという考え方です。残念ながら、Movable TypeではなくPerlをアップグレードすると、これらのモジュールは、新しいPerlライブラリにバンドルされているか、Webホストによってインストールされた、適切で必要なものをマスクします。これはまさにLWPHTTP:*の場合です。

  • HTTP/
  • LWP/
  • LWP.pm

私は通常だけでタック:

これを解決するには、あなたのFTPソフトウェアを使用して、次のextlibファイル/ディレクトリの名前を変更することができます最後に。これを仮定すると、これらのファイル/ディレクトリを完全に削除することができます。

さらに、いくつかの後のバージョンで同じ治療が必要なライブラリがありますが、わかりません。

  • JSON
  • JSON.pm
  • version/
  • version.pm
  • version.pod

UPDATE:私はそれからさらにいくつかを忘れてしまったそれはあなたが使用しているものであってもよいですリスト:

  • Net/HTTP/
  • Net/HTTP.pm
  • Net/HTTPS.pm
  • Params/Validate.pm
  • Params/ValidatePP.pm
  • Params/ValidateXS.pm
  • Params/Validate/

そしてそれはまた、名前を変更したりEXTLIBから削除するPerlの5.24 gave us at least one more module次のようになります。

  • URI/
  • URI.pm

あなたが実行したときにLWP :: UserAgentのがエラーを投げている理由はこれらの最後の二つがありますmt-check.cgi

+0

これらのフォルダ/ファイルの名前をすべて変更した後、別の場所で同じエラーが表示されるようになりました。 lib/MT/Util.pm行1407のパッケージ "HTTP :: Request"を介してオブジェクトメソッド "new"を探します。2番目のリストの名前を変更するかどうかは同じです。しかし、私は最初のコメントからの情報で元の投稿を更新しました。 LWP :: UserAgentが見えていないようです。だから、これは正しい軌道上にあるようだ。これまであなたの助けをありがとうございました。 – fnord12

+0

上記の更新を確認してください。 :-) –

+0

これらの名前を変更して、トリックを実行しました!ありがとうございました!! – fnord12

関連する問題