Как я могу установить расширения 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
каталог.