Как я могу установить расширения Mediawiki из командной строки?

Я пытаюсь автоматизировать установку Викимедиа с помощью 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 ответ

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

Эти параметры расширения просто добавляют строку в 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"

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

Другие вопросы по тегам