【问题标题】:MediaWiki Wikibase Installation TroubleMediaWiki Wikibase 安装问题
【发布时间】:2021-02-04 00:43:48
【问题描述】:

我目前正在尝试将 Wikibase 扩展安装到我的新 Mediawiki 安装中。这是 php 堆栈跟踪:

running media wiki  
Notice: Undefined index: entityNamespaces in /var/www/mediawiki/extensions/Wikibase/lib/includes/WikibaseSettings.php on line 212    
Warning: array_merge(): Expected parameter 2 to be an array, null given in /var/www/mediawiki/extensions/Wikibase/lib/includes/WikibaseSettings.php on line 212    
Notice: Undefined index: entityNamespaces in /var/www/mediawiki/extensions/Wikibase/lib/includes/WikibaseSettings.php on line 212    
Warning: array_merge(): Expected parameter 2 to be an array, null given in /var/www/mediawiki/extensions/Wikibase/lib/includes/WikibaseSettings.php on line 212    
Notice: Undefined index: entityNamespaces in /var/www/mediawiki/extensions/Wikibase/lib/includes/WikibaseSettings.php on line 212    
Warning: array_merge(): Expected parameter 2 to be an array, null given in /var/www/mediawiki/extensions/Wikibase/lib/includes/WikibaseSettings.php on line 212    
Fatal error: Uncaught TypeError: Argument 2 passed to Wikibase\Lib\WikibaseSettings::applyEntityNamespacesToSettings() must be of the type array, null given, called in /var/www/mediawiki/extensions/Wikibase/lib/includes/WikibaseSettings.php on line 103 and defined in /var/www/mediawiki/extensions/Wikibase/lib/includes/WikibaseSettings.php:218 Stack trace: #0 /var/www/mediawiki/extensions/Wikibase/lib/includes/WikibaseSettings.php(103): Wikibase\Lib\WikibaseSettings::applyEntityNamespacesToSettings(Object(Wikibase\Lib\SettingsArray), NULL) #1 /var/www/mediawiki/extensions/Wikibase/client/includes/WikibaseClient.php(689): Wikibase\Lib\WikibaseSettings::getClientSettings() #2 /var/www/mediawiki/extensions/Wikibase/client/includes/WikibaseClient.php(737): Wikibase\Client\WikibaseClient::newInstance() #3 /var/www/mediawiki/extensions/Wikibase/client/includes/Hooks/MagicWordHookHandler.php(39): Wikibase\Client\WikibaseClient::getDefaultInstance() #4 /var/www/mediawiki/vendor/wikimedia/object-factory/src/ObjectFactory.php(172): in /var/www/mediawiki/extensions/Wikibase/lib/includes/WikibaseSettings.php on line 218

我试图按照Wikibase Installation guide 的说明只安装 Wikibase 客户端,但我认为我没有安装。 Sepcificially 我认为我的 LocalSettings.php 是问题所在。我按照指南的指示安装了扩展程序,所以我确信我使用的是最新版本的 Wikibase(尽管我似乎无法找到版本号)并且我使用的是 MediaWiki 1.35 和 PHP 7.3.23-4 在 Ubuntu 18.04 上由 nginx 托管。

这是我添加到我的 LocalSettings.php 末尾的位,它破坏了我的安装,但没有我不能使用信息框,这是我的真正目标。

# Wikibase
wfLoadExtension( 'WikibaseClient', "$IP/extensions/Wikibase/extension-client.json" );
require_once "$IP/extensions/Wikibase/client/ExampleSettings.php";    
$wgWBClientSettings['repoUrl'] = 'https://pool.my.wiki';
$wgWBClientSettings['repoScriptPath'] = '';
$wgWBClientSettings['repoArticlePath'] = '/wiki/$1';
$wgWBClientSettings['repositories']['']['repoDatabase'] = 'poolwiki';
$wgWBClientSettings['repositories']['']['changesDatabase'] = 'poolwiki';
$wgWBClientSettings['siteLinkGroups'] = [ 'mywikigroup' ];
wgWBClientSettings['siteGlobalID'] = 'en';

我确定我只是在某个地方搞砸了一个明显的步骤,但我已经完成了很多次,我不知道在哪里。

我尝试非常彻底地记录所有新安装,就像这种情况一样,您可以在我的 github 存储库中找到我当前的设置以及我在安装过程中采取的步骤:https://github.com/PickleProgramming/AlQinaWiki

你可以在那里找到我的完整 LocalSettings.php,以及我可能搞砸的任何其他文件。

【问题讨论】:

    标签: php mediawiki mediawiki-extensions mediawiki-installation wikibase


    【解决方案1】:

    首先,您需要将您的 WikiBase 切换到 1.35 版本。目前,您有 1.36 (master):

    cd .../extensions/WikiBase
    git checkout REL1_35
    git pull
    git submodule update --init --recursive
    

    您可能还需要使用 Composer 安装依赖项,如 here 所述。

    其次,确保您的 wiki 不认为它也是一个 WikiBase 存储库。插入$wgEnableWikibaseRepo = false 之前 wfLoadExtension( 'WikibaseClient', "$IP/extensions/Wikibase/extension-client.json" );

    第三,哪个 wiki 将作为您的 WikiBase 存储库?

    【讨论】:

    • 非常感谢,我有预感 Wikibase 是错误的,但我在任何地方都找不到确定的版本号。我看到了指南中提到的 1.36,但我不确定那是 fork 还是 master。我在哪里可以看到master的版本?我检查了他们的 github,它所在的站点,包中的几个文件,在任何地方都找不到。我在想主要的维基?我对此有点模糊。我的最终目标是能够拥有常规维基百科的所有稳定功能,例如信息框、出生/死亡日等。这可能吗?
    • 据我所知,它没有在任何地方明确说明,但是git diff REL1_35 master 你会看到区别; MediaWikiWikiBase 的版本需要相同。您遇到的错误只可能出现在master 中的那些地方。
    • 当我上次检查时,WikiData 仅作为 WikiBase 存储库供 WikiMedia Foundation 运行的 wiki 使用。跨度>
    • 好的,谢谢。您在回答中给出的内容消除了错误,现在我正在查看(无法访问数据库)页面,然后我在 WikiBase 存储库中进行了配置,并且现在可以正常工作了!我知道 WikiBase 和 MediaWiki 需要是相同的版本,但我只是假设如果教程告诉我这样做,那么 master 分支肯定是当前版本的正确 WikiBase 版本。应该考虑使用差异,再次感谢!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-01-15
    • 1970-01-01
    • 2023-03-17
    相关资源
    最近更新 更多