[英]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:
但是,根據我站點的已安裝 Perl 5 模塊列表,它已安裝:
我不知道它是否有幫助,但還有一個 CPAN::LWP::UserAgent:
根據 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 主機安裝的正確和必要的模塊。 LWP
和HTTP:*
就是這種情況。
要解決此問題,您可以使用 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.