安装

From Linux Web Expert

(Redirected from Help:安装)

Template:Interlanguagelink: en

Installation
This page describes how to how install Semantic MediaWiki.
Image / Video collection
{{#widget:Vimeo|id=82255034|width=250|height=250 }}
Further Information
Installation type: N/A
Installation method: N/A
MediaWiki version:
Table of Contents

本页面描述的是,在下载Semantic MediaWiki 1.7.0之后,如何安装(对于其他版本,请参见本页面底部)。安装和升级注释随着版本的不同而变化:与SMW配套发布的INSTALL(安装) 文件之中含有您可能所已经下载的特定版本的说明。

若要升级运行旧版本SMW的维基站点,请确保在开始升级之前认真阅读本页面的相关小节

对于安装SMW,请仔细核对确切的要求,并且认真遵循有关说明。安装并不对您的MediaWiki数据库造成任何不可逆的变更(只是添加一些随后可以删除的数据表)。然而,如果准备要卸载Semantic MediaWiki的话,目前还没有自动化的过程可以用来从文章文本之中删除标注;不过,可以采用一些在编辑时删除标注的脚本来实现。

免责声明

请您一定要理解该复制(COPYING)条款文件中的法律免责声明。

要求

  • MediaWiki 1.16.0或以上版本(建议采用MediaWiki 1.17.0或以上版本)
  • 验证程序扩展 0.4.13版或以上版本
  • PHP 5.2或以上版本:成功安装且能够有效运行(除5.3.1外)
  • MySQL >= 4.0.14版(MediaWiki要求的版本,除5.1.49至5.1.52外)
或者,PostgreSQL >= 8.3版

请注意:后者的支持目前还处在初级阶段,因而需要额外的一些步骤,详情请参见PostgreSQL

注释

  • SMW使用PHP mb_*()多字节函数(multibyte functions),如php_mbstring.dll扩展之中mb_strpos。这虽然属于是标准,但在某些PHP的分发版本当中,默认情况下并不激活。详情请参见PHP手册
  • 对于安装和升级,SMW需要创建新表(CREATE)和更改表(ALTER TABLE)的权限。在安装好SMW之中,可以再次取消这两项权限。就这一用途来说,脚本SMW_setup.php可以使用来自于AdminSettings.php的DB证书(DB credentials),从而避免赋予维基DB用户额外权限的必要。
  • 当使用SMWSQLStore2(SMW的默认数据存储), SMW会创建和变更用于特定语义查询的临时表。为此,您的维基数据库用户(wikidb user)必须拥有创建临时表(CREATE TEMPORARY TABLES)的权限。通过向Localsettings.php之中添加如下脚本,即可关闭相应的这些功能:
$smwgQSubcategoryDepth= 0;
$smwgQPropertyDepth   = 0;
$smwgQFeatures        = SMW_ANY_QUERY & ~SMW_DISJUNCTION_QUERY;
$smwgQConceptFeatures = SMW_ANY_QUERY & ~SMW_DISJUNCTION_QUERY &
                       ~SMW_CONCEPT_QUERY;
  • 当使用SMWSparqlStore (RDF store connector)时,SMW会使用PHP的CURL函数。这些函数可能只有在被激活/安装之后才可用。

在旧版本MediaWiki上运行SMW

一般来说,不建议运行旧版本的MediaWiki,因为每个新的发布版本在安全性方面都会有所修复。如果您的站点目前仍基于PHP4运行,那就不支持SMW。几乎不可能针对旧版本的PHP反向移植代码。如果您采用的是PHP5但却是旧版本的MediaWiki,则可能会需要额外的补丁/修改。下载旧发布版本的SMW,查看其中所包含的安装(INSTALL)说明,看看究竟那里是否推荐有其他的变更。

安装

如果升级已有的Semantic MediaWiki安装,同时也请阅读下面的小节升级已有的安装!SMW的安装基本上需要三个(或四个)步骤:

(1) 复制文件:

将下载的Validator和Semantic MediaWiki的压缩档案解压缩,或者查看来自Git的最新文件,以获取包含合适文件的"Validator"和"SemanticMediaWiki"目录。将这些目录复制到"[wikipath]/extensions/"(或者将其解压缩/下载到此处)。

(2) [可选]调整命名空间:

如果您并没有对您的维基的命名空间做任何变更,可以略过这一步骤。如果您已经定义了自己的自定义命名空间,则在包括SemanticMediaWiki.php之前,必须对参数$smwgNamespaceIndex加以设置。Semantic MediaWiki使用额外的命名空间索引号,范围是从102到109。注意,只有当设置$smwgHistoricTypeNamespace的时候才需要104和105。106和107是为语义表单扩展保留的,SMW并不使用它们。详情请参见SMW_Settings.php之中的文档。如果您在安装SMW之后添加命名空间,则必须赋予它们比Semantic MediaWiki所使用的更大的索引号。

注释:

Semantic MediaWiki仅仅计算处理某些命名空间当中的语义标注。例如,默认情况下,它会忽略讨论页当中的语义标注。如果您希望变更带有标注的命名空间(可能您已经添加了您自己的自定义命名空间),则必须添加LocalSettings.php之中所需的参数数组$smwgNamespacesWithSemanticLinks

(3) 激活扩展:

在文件"[wikipath]/LocalSettings.php"之中插入下列行:

 require_once( "$IP/extensions/Validator/Validator.php" );
 include_once( "$IP/extensions/SemanticMediaWiki/SemanticMediaWiki.php" );
 enableSemantics('example.org');

其中,应当把example.org替换为您的服务器的名称(或IP地址)。这个字符串仅仅作为一个全局唯一名称,用来在Semantic Web上标识该维基的导出数据。有效的服务器名称即可很好地满足这一目的。不必担心一个维基站点拥有不止一个服务器名称,挑选一个即可。

(4) 安装数据库:

在您的维基当中,作为管理员级用户登录,并转到"Special:SMWAdmin"页面,以便完成最后的安装步骤。共计需要两步: 首先,启动数据库安装与设置【"数据库安装与升级(Database installation and upgrade)"】。之后,激活自动数据更新【"数据修复与升级(Data repair and upgrade)"】。注意,如前所述,第一步 需要用来变更/创建数据库表的权限。第二步会花费些时间;随着其进展转到Special:SMWAdmin页面。在此完成之前,SMW就已经可以使用了,但还无法访问所有的数据【比如,页面类别(page categories)】。

测试您的安装

如果您尚不确定一切就绪,可以进行一些测试,来检查是否正确安装和设置了SMW:

  1. 转到Special:版本页面。在顶部小节"语义扩展(Semantic Extensions)"当中,应当看到列出的Semantic MediaWiki (Version nn)。
  2. 创建一个名为"TestSMW"的常规维基页面,在其中输入维基文本:
    Property test:  [[testproperty::Dummypage]]
当在保存之前预览该页面的时候,您应当在显示您的输入的这篇文章的底部看到一个Factbox(事实框)。在保存该页面之后,单击该页面工具箱当中的链接"Browse properties(浏览属性)"。这时应当显示取值为Dummypage的测试属性Testproperty。

升级已有的安装

升级SMW 1.6.x

SMW 1.6.*的安装可以通过替换文件以及像往常一样运行数据库更新(Special:SMWAdmin页面或者脚本SMW_setup.php)。而且,强烈建议在Special:SMWAdmin页面上让刷新过程来更新所有数据。旧版本SMW可以采取同样的方式升级,但可能有更多需要变更维基页面的功能特性变更。关于最新版本的详情,请参见当前最新的文档。

升级SMW 1.5.x

SMW 1.6.0引入了一个新的软件依赖关系(这也适用于所有更新的版本):有助于Semantic MediaWiki验证用户所提供的参数的验证程序扩展。必须安装这项扩展,才能SMW有效运行。请确保在您的LocalSettings.php之中包括SMW之前,首先把Validator包括进来。务请注意,自1.6.0版以来,SMW发布版本之中都捆绑了Validator。如果您是通过Git来获取代码的,则需要自己来核对Validator。

同时,请也不要忘记首先安装Validator扩展,并采用下列代码行在SMW之前把它包括在LocalSettings.php当中。之后,方可接着升级SMW。

require_once( "$IP/extensions/Validator/Validator.php" );


不应当假设那些适合于1.5.*及其以下版本SMW的扩展能够直接有效地用于SMW 1.6.0。应当把所有的SMW扩展升级到兼容SMW 1.6的版本。而且,一些功能已经发生变化,页面可能会需要更新(参见下文)。 下文将针对就版本SMW的升级加以额外的说明。

如果尚未这么做,建议按照上面的安装说明所述,对LocalSettings.php之中对SMW的包含做出如下变更:

include_once("$IP/extensions/SemanticMediaWiki/SemanticMediaWiki.php");


像以前版本当中那样来包含SMW_Settings.php,不再可行。

已经变更的配置选项

自SMW 1.0以来,一些配置选项(LocalSettings.php之中所使用的)已经发生了变化。SMW_Settings.php文件之中详细记载有所有的设置。如下的列表给出了首次引入某项设置的相应版本,因此,如果您运行的已经是该版本或者是更新的版本,即可略掉相应条目:

  • [1.4] 直至1.4版,设置$smwgQComparators的默认值均为'<|>|!'。现在,该默认值已变为'<|>|!|~',以便默认激活 "like"比较操作符~
  • [1.4] 1.4版仍支持设置$smwgSMWBetaCompatible,来允许旧的<ask>查询语法和Relation关系命名空间。现在已经抛弃了这项向后兼容,不再使用该项设置。为了不再使用这些过时的(且现在也没有文档记录的)功能特性,请更新您的维基站点。
  • [1.3] 自SMW 1.3以来,事实框Factbox默认为隐藏状态,仅会在页面预览当中出现。作为补偿,工具箱(通常位于左侧搜索文本框之下)当中会显示有Special:浏览页面的链接。要像SMW 1.3之前那样使用事实框的显示行为,请设置$smwgShowFactbox = SMW_FACTBOX_NONEMPTY;。同时,亦可配置这种新的链接以及编辑过程中的事实框;详情请参见SMW_Settings.php
  • [1.2.1] 自从发现会引起若干问题之后,SMW默认情况下在属性取值当中将不再支持嵌套式链接语法(nested link syntax)。要重新激活这些功能,请设置$smwgLinksInValues = true;
  • [1.2] 如果您的维基使用<ask>语法或者Relation:关系命名空间,您可能会希望在LocalSettings.php之中,在用于包含SemanticMediaWiki.php(过去为SMW_Settings.php)的行之前,设置$smwgSMWBetaCompatible = true;。为了能够抛弃SMW beta兼容性,请考虑把<ask>变为#ask
  • [1.2] 如果有项设置为$smwgQDisjunctionSupport = false;,则您的LocalSettings.php之中现在就需要下列设置:
  $smwgQFeatures        = SMW_ANY_QUERY & ~SMW_DISJUNCTION_QUERY;
  $smwgQConceptFeatures = SMW_ANY_QUERY & ~SMW_DISJUNCTION_QUERY & ~SMW_CONCEPT_QUERY;
  • [1.0] $smwgQEqualitySupport取值为SMW_EQ_NONE、SMW_EQ_SOME或SMW_EQ_FULL三者之一(直到SMW 1.0 RC1-3为止,其取值true或者false)。
  • [1.0] $smwgQDefaultNamespaces现在的默认取值为 NULL,从而所有的命名空间均得到查询。SMW RC 1-3当中的默认值为 'array(NS_MAIN, NS_IMAGE)'。
  • [1.0] $smwgQDefaultLinking的默认取值为'all',以便所有的查询结果均被加以链接。这不再是个性能问题。直到SMW RC 1-3为止,其默认值为'subject'。

如果您当前在您的LocalSettings.php之中设置任何这些参数之一,则需要更新该文件。关于可用参数的更多文档,请参见SMW_Settings.php

参阅


#scite could not render a citation text for reference "gh:smw:3848:589920096" because type "issuecomment" was not assigned to a template.