我在本地设置自己的MediaWiki网站,并且无法使用InstantCommons功能(用于直接嵌入来自commons.wikimedia.org的文件)。
我没有收到任何错误消息,我尝试使用以下语法从Commons加载文件:
[[File:Cervus elaphus Luc Viatour 1.jpg|Cervus elaphus Luc Viatour 1]]
只是没有加载,我最终在我的页面上有一个红色链接,指的是一个不存在的文件。现在已经有2天我正在寻找解决方案,但到目前为止还没有任何成功。
我正在跑步:
我在LocalSettings.php
尝试了以下两种配置,但没有成功:
$wgUseInstantCommons = true;
和
$wgForeignFileRepos[] = array(
'class' => 'ForeignAPIRepo',
'name' => 'shared',
'apibase' => 'http://commons.wikimedia.org/w/api.php',
'fetchDescription' => true, // Optional
'descriptionCacheExpiry' => 43200, // 12 hours, optional (values are seconds)
'apiThumbCacheExpiry' => 43200, // 12 hours, optional, but required for local thumb caching
);
欢迎提出任何建议。
答案 0 :(得分:1)
好的,这不是(还)一个答案,而是一个调试建议。在我看来,从服务器到Commons的HTTP请求由于某种原因失败了,但不幸的是,ForeignAPIRepo没有以任何方式指出错误的原因。
这实际上是MediaWiki中的一个错误,应该修复,但与此同时,您可以尝试应用以下差异(或者只是手动添加标有+
符号的行)到您的{ {1}}档案:
includes/filerepo/ForeignAPIRepo.php
应用它之后,尝试加载Commons图像的文件描述页面并查看MediaWiki调试日志。现在应该有一行以Index: includes/filerepo/ForeignAPIRepo.php
===================================================================
--- includes/filerepo/ForeignAPIRepo.php (revision 97048)
+++ includes/filerepo/ForeignAPIRepo.php (working copy)
@@ -385,6 +385,7 @@
if ( $status->isOK() ) {
return $req->getContent();
} else {
+ wfDebug( "ForeignAPIRepo: HTTP GET failed: " . $status->getXML() );
return false;
}
}
开头,然后是几行XML错误转储。该错误数据应该有希望表明出了什么问题;请复制并粘贴在这里。
答案 1 :(得分:0)
我也不是一个明确的答案。参考Ilmari Karonen's post,我无法找到或获取我的Mediawiki v1.23.0版本的getXML()
方法。我正在查看参考文档found here以尝试在Status
类上找到任何其他方法调用,这些方法将为我提供良好的故障排除信息。我最终找到了以下内容并编辑了与Ilmari Karonen's post includes/filerepo/ForeignAPIRepo.php
中提到的相同的文件,从第521行开始:
if ( $status->isOK() ) {
return $req->getContent();
} else {
$error = $status->getErrorsArray();
$dump = print_r($error, true);
wfDebug("ForeignAPIRepo: HTTP GET failed: $dump\n");
return false;
}
答案 2 :(得分:0)
较旧的MediaWikis的默认InstantCommons配置有点傻。由于T114098我推荐以下其中一项,这有望解决您的问题:
LocalSettings.php
设置为热链接图像,以节省服务器端请求和处理。
$wgUseInstantCommons = false;
$wgForeignFileRepos[] = array(
'class' => 'ForeignAPIRepo',
'name' => 'commonshotlink',
'apibase' => 'https://commons.wikimedia.org/w/api.php',
'hashLevels' => 2,
'url' => 'https://upload.wikimedia.org/wikipedia/commons',
'thumbUrl' => 'https://upload.wikimedia.org/wikipedia/commons/thumb',
'transformVia404' => true,
'fetchDescription' => true,
'descriptionCacheExpiry' => 43200,
'apiThumbCacheExpiry' => 24 * 3600,
);