В настоящее время я пытаюсь установить расширение 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, чтобы установить только Клиент Wikibase, но я так не думаю. В частности, я думаю, что проблема заключается в моем 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 вместе с любыми другими файлами, которые я мог испортить.

1
KingOfEphrya 21 Окт 2020 в 09:31

1 ответ

Лучший ответ

Прежде всего, вам нужно переключить вашу WikiBase на версию 1.35. В настоящее время у вас 1,36 (master):

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

Вам также может потребоваться установить зависимости с Composer, как описано здесь.

Во-вторых, убедитесь, что ваша вики не считает себя репозиторием WikiBase . Вставить $wgEnableWikibaseRepo = false перед wfLoadExtension( 'WikibaseClient', "$IP/extensions/Wikibase/extension-client.json" );

В-третьих, какая вики будет для вас репозиторием WikiBase?

2
Alexander Mashin 21 Окт 2020 в 09:07