Как я могу установить расширения Mediawiki из командной строки? - PullRequest
1 голос
/ 30 марта 2019

Я пытаюсь автоматизировать установку Викимедиа с помощью Ansible и сценария установки из командной строки Викимедиа .

Я заметил, что текущая версия содержит параметры сценария для установки расширений.Из справочной команды сценария:

$ php maintenance/install.php --help

CLI-based MediaWiki installation and configuration.
Default options are indicated in parentheses.

Usage: php install.php [--conf|--confpath|--dbgroupdefault|--dbname|--dbpass|--dbpassfile|--dbpath|--dbport|--dbprefix|-
-dbschema|--dbserver|--dbtype|--dbuser|--env-checks|--extensions|--globals|--help|--installdbpass|--installdbuser|--lang
|--memory-limit|--mwdebug|--pass|--passfile|--profiler|--quiet|--scriptpath|--server|--skins|--wiki|--with-extensions] [
name] <admin>

...

Script specific parameters:
    --extensions: Comma-separated list of extensions to install
    --with-extensions: Detect and include extensions

Однако я не могу найти другую информацию о том, как лучше всего использовать эти параметры.Ни справочные страницы Викимедиа по сценарию install.php, ни Расширения не документируют их:

Может кто-то указать мнечтобы получить более подробную документацию по этим параметрам или предоставить пример того, как их использовать?

Я планирую сделать несколько проб и ошибок и сам отвечу на этот вопрос, если выясню, как они работают, прежде чем кто-нибудь ответит.Но я знаю, что установка расширений может быть сложной и обычно включает в себя обновление файлов конфигурации, поэтому я надеюсь, что смогу найти некоторую существующую документацию, которая поможет мне.

1 Ответ

0 голосов
/ 08 апреля 2019

Краткий ответ

Эти параметры расширения просто добавляют строку в файл LocalSettings.php, если указанное имя найдено в каталоге extensions, чтобы загрузить расширение во время выполнения.

Длинный ответ

Я немного поиграл с этим.Я протестировал --with-extensions, который, согласно справочной документации, будет detect and include extensions.Похоже, это означает, что он будет сканировать каталог расширений и устанавливать все найденные там расширения.

Я выполнил следующую команду:

php maintenance/install.php --with-extensions --dbserver="localhost" --dbname=foo --dbuser=foo --dbpass=foo --server="https://wiki.foo.localhost" --script path=/mediawiki -en --pass=foo "My Wiki Name" "Admin"

В моем * получен следующий блок1016 * файл конфигурации со списком пакетов по умолчанию, включенных в текущую версию ядра Mediawiki:

# Enabled extensions. Most of the extensions are enabled by adding
# wfLoadExtensions('ExtensionName');
# to LocalSettings.php. Check specific extension documentation for more details.
# The following extensions were automatically enabled:
wfLoadExtension( 'CategoryTree' );
wfLoadExtension( 'Cite' );
wfLoadExtension( 'CiteThisPage' );
wfLoadExtension( 'CodeEditor' );
wfLoadExtension( 'ConfirmEdit' );
wfLoadExtension( 'Gadgets' );
wfLoadExtension( 'ImageMap' );
wfLoadExtension( 'InputBox' );
wfLoadExtension( 'Interwiki' );
wfLoadExtension( 'LocalisationUpdate' );
wfLoadExtension( 'MultimediaViewer' );
wfLoadExtension( 'Nuke' );
wfLoadExtension( 'OATHAuth' );
wfLoadExtension( 'ParserFunctions' );
wfLoadExtension( 'PdfHandler' );
wfLoadExtension( 'Poem' );
wfLoadExtension( 'Renameuser' );
wfLoadExtension( 'ReplaceText' );
wfLoadExtension( 'SpamBlacklist' );
wfLoadExtension( 'SyntaxHighlight_GeSHi' );
wfLoadExtension( 'TitleBlacklist' );
wfLoadExtension( 'WikiEditor' );

Сложность этого параметра, вероятно, разумно, не идет дальше этого.

Я пыталсязапустите эту команду, чтобы увидеть, будет ли параметр --extensions=GoogleLogin автоматически устанавливать расширение GoogleLogin .Это не так.Скорее он сообщал об этой ошибке:

Could not find the registration file for the extension "GoogleLogin"

Так что, если вы ищете более полнофункциональный менеджер пакетов расширения, похожий на Composer, это не так.

Когда я скачалРасширение GoogleLogin и поместил его в каталог extensions, запустил параметр --with-extensions и включил его в блок расширений файла конфигурации.

Не проверяя его явно, я пришел к выводу, что параметры --extensions работают стак же, как и --with-extensions, за исключением того, что он будет перезаписывать в файл конфигурации LocalSettings.php только те расширения, которые явно указаны и , найденные в каталоге extensions.

...