设置外部文件存储库的问题

时间:2015-05-10 20:29:25

标签: mediawiki ubuntu-14.04

我在我的Ubuntu盒子上安装了一个MediaWiki实例,工作正常。我使用了即时公共文件,但这导致了渲染页面的巨大延迟。

因此我决定实现自己的MediaWiki Commons实例,以便存储我用于主维基的图像。这也很好。

我遇到的问题是配置" $ wgForeignFileRepos"特别是参数" apibase"。每当我上传新图像以及描述等并在我的主wiki实例上创建新文章时,我必须更改" apibase"路径。

例如,我有一个起始配置:

$wgForeignFileRepos[] = array(
   'class'                   => 'ForeignAPIRepo',
   'name'                    => 'privateCommons',
   'apibase'                 => 'http://ubuntu/commonsmediawiki/api.php',
   'hashLevels'              => 2,
   'fetchDescription'        => true,
   'descriptionCacheExpiry'  => 432000,
   'apiThumbCacheExpiry'     => 864000
);

现在我添加一个包含描述的新图像到公共区域,然后使用刚刚添加的图像添加一篇新文章。但是,图像没有显示出来。

我现在必须改变" apibase"到

'apibase'                 => 'http://localhost/commonsmediawiki/api.php'

使图像显示。通过添加新图像和新文章重复该过程,图像不会再次显示。

我必须再次改变" apibase"任何:

'apibase'                 => '//localhost/commonsmediawiki/api.php'
'apibase'                 => '//ubuntu/commonsmediawiki/api.php'
'apibase'                 => 'http://ubuntu/commonsmediawiki/api.php'

通过这样做,第二篇文章显示了清除后的最新图像,但当我回到之前添加的文章时,图像再次消失。

顺便说一句,我正在运行维基百科(1.26wmf4)使用的相同版本的MediaWiki。我的Ubuntu版本是最新的(14.04)。

我还应该提到两个wiki共享图像文件夹,这应该不是问题,因为图像永远不会存储在两个wiki中。这两个wiki没有共用任何表格。

我也尝试使用" ForeignDBRepo"这根本无法说明找不到我不理解的图像。

我没有丝毫的线索如何纠正这种令人讨厌的行为。所以任何建议都会非常感激。

非常感谢

1 个答案:

答案 0 :(得分:0)

根据您的说明,唯一有效的网址是

'apibase'                 => 'http://localhost/commonsmediawiki/api.php'

所以请使用它。它必须是服务器可以联系的URL。像//ubuntu/这样的虚假域名需要一些DNS技巧,你没有提到过。

我怀疑您没有正确设置cache,因此您可以尝试禁用此功能的缓存:

'descriptionCacheExpiry'  => 0,
'apiThumbCacheExpiry'     => 0

让我们知道它是如何运作的。