如何从命令行安装Mediawiki扩展?

时间:2019-03-30 17:55:35

标签: mediawiki mediawiki-extensions mediawiki-installation

我正在尝试使用Ansible和Wikimedia command-line install script自动执行Wikimedia安装。

我注意到当前版本包括用于安装扩展的脚本参数。通过脚本帮助命令:

$ 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脚本或Extensions上的Wikimedia手册页均未记录它们:

有人可以向我指出有关这些参数的更多详细文档吗?还是提供使用它们的示例?

我计划进行一些反复试验,如果在其他人未回答之前就弄清了它们的工作原理,我将自己回答这个问题。但是我知道扩展程序的安装会变得很复杂,通常会涉及到配置文件的更新,因此我希望可以找到一些现有的文档来指导我。

1 个答案:

答案 0 :(得分:0)

简短回答

如果在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 extension。它没。而是报告了此错误:

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

因此,如果您正在寻找功能更全的类似Composer的扩展程序包管理器,那就不是了。

当我下载GoogleLogin扩展名并将其放置在extensions目录中并运行了--with-extensions参数时,它确实将其包含在配置文件扩展名块中。

在没有显式测试的情况下,我断定--extensions参数的运行方式与--with-extensions相同,只是它仅将那些明确指定的扩展名重写为LocalSettings.php配置文件。 extensions目录中。