В настоящее время я пытаюсь установить расширение 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 ответ
Прежде всего, вам нужно переключить вашу 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?
Похожие вопросы
Новые вопросы
php
PHP — это открытый, мультипарадигмальный, динамически типизированный и интерпретируемый язык сценариев, изначально разработанный для веб-разработки на стороне сервера. Используйте этот тег для вопросов о программировании на языке PHP.