簡體   English   中英

可移動類型:無法通過包“HTTP::Request”定位對象方法“new”

[英]Movable Type: Can't locate object method "new" via package "HTTP::Request

在 Movable Type 重新成為付費/專業產品之前,我一直堅持使用博客軟件 Movable Type 的最后一個開源版本。

我的主機最近更新了 Debian 操作系統版本,它顯然帶有更新版本的 Perl。

更新后,我現在收到以下錯誤(特別是當 Movable Type 嘗試生成引用時,並且我的網站上確實需要內部引用時):

無法通過包“HTTP::Request”在 /home/super/www/www/cgi-bin/mt512/extlib/HTTP/Request.pm 第 14 行找到對象方法“new”。

有問題的第 14 行代碼是

我的 $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;
} 

更新:在 Jay Allen 的幫助下,我能夠運行 mt-check.cgi

檢查表明未安裝 LWP::UserAgent:

mt-檢查

但是,根據我站點的已安裝 Perl 5 模塊列表,它已安裝:

輕量級用戶代理

我不知道它是否有幫助,但還有一個 CPAN::LWP::UserAgent:

CPAN 用戶代理

根據 Jay 的原始評論,我確認 MT cgi 文件以以下內容開頭:

#!/usr/bin/perl

以下是來自 mt-check 的系統信息:

操作系統:linux

Perl 版本:v5.24.1

Perl 包含路徑:

插件/紡織/庫

插件/FormattedTextForTinyMCE/lib

插件/格式化文本/庫

插件/壓縮器/庫

插件/MultiFileUploader/lib

插件/垃圾郵件查找/庫

插件/FacebookCommenters/extlib

插件/FacebookCommenters/lib

插件/批准/庫

插件/CommentRating/lib

插件/WXRImporter/lib

插件/ TinyMCE/lib

插件/mixiComment/lib

插件/自定義字段搜索/庫

插件/feeds-app-lite/lib

插件/StyleCatcher/lib

插件/WidgetManager/lib

插件/EmailRetitler/lib

插件/TypePadAntiSpam/lib

插件/通知誰/庫

插件/分析器/庫

插件/Community.pack/lib

插件/Commercial.pack/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 。

網絡服務器:Apache

(可能)在 cgiwrap 或 suexec 下運行

Movable Type 在您的extlib目錄中包含許多未編譯的 CPAN 庫。 這個想法是,這使無法安裝模塊的人更容易運行它。 不幸的是,當您升級 Perl 而不是 Movable Type 時,這些模塊會掩蓋與新 Perl 庫捆綁在一起或由您的 Web 主機安裝的正確和必要的模塊。 LWPHTTP:*就是這種情況。

要解決此問題,您可以使用 FTP 軟件重命名以下extlib文件/目錄

  • HTTP/
  • LWP/
  • LWP.pm

我通常只是把-MOVED放在最后。 假設這有效,您可以完全刪除這些文件/目錄。

此外,還有其他庫在某些更高版本中需要相同的處理,盡管我不確定是哪個。 它可能是您正在使用的:

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

更新:我從該列表中忘記了更多內容:

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

而且看起來 Perl 5.24至少給了我們一個模塊來重命名或從 extlib 中刪除:

  • URI/
  • URI.pm

最后兩個是 LWP::UserAgent 在您運行mt-check.cgi時拋出錯誤mt-check.cgi

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM