Help:安装

本页面描述的是，在下载了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之中添加如下脚本，即可关闭相应的这些功能：


 * 当使用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</tt>.

(3) 激活扩展：

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

其中，应当把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.

<br style="clear:both;" clear="all" />

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

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

<br style="clear:both;" clear="all" />

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

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


 * [1.4] 直至1.4版，设置$smwgQComparators</tt>的默认值均为'<|>|!'</tt>. 现在，该默认值已变为'<|>|!|~'</tt>，以便默认激活 "like"比较操作符~</tt>.


 * [1.4] 1.4版仍支持设置$smwgSMWBetaCompatible</tt>，来允许旧的 查询语法和Relation关系命名空间. 现在已经抛弃了这项向后兼容，不再使用该项设置. 为了不再使用这些过时的（且现在也没有文档记录的）功能特性，请更新您的维基站点.


 * [1.3] 自SMW 1.3以来，事实框Factbox默认为隐藏状态，仅会在页面预览当中出现. 作为补偿，工具箱（通常位于左侧搜索文本框之下）当中会显示有Special:浏览页面的链接. 要像SMW 1.3之前那样使用事实框的显示行为，请设置$smwgShowFactbox = SMW_FACTBOX_NONEMPTY;</tt>. 同时，亦可配置这种新的链接以及编辑过程中的事实框；详情请参见SMW_Settings.php</tt>.


 * [1.2.1] 自从发现会引起若干问题之后，SMW默认情况下在属性取值当中将不再支持嵌套式链接语法（nested link syntax）. 要重新激活这些功能，请设置$smwgLinksInValues = true;</tt>.


 * [1.2] 如果您的维基使用 </tt>语法或者Relation:</tt>关系命名空间，您可能会希望在LocalSettings.php之中，在用于包含SemanticMediaWiki.php（过去为SMW_Settings.php）的行之前，设置$smwgSMWBetaCompatible = true;</tt>. 为了能够抛弃SMW beta兼容性，请考虑把 </tt>变为#ask</tt>.


 * [1.2] 如果有项设置为$smwgQDisjunctionSupport = false;</tt>，则您的<tt>LocalSettings.php</tt>之中现在就需要下列设置：


 * [1.0] <tt>$smwgQEqualitySupport</tt>取值为<tt>SMW_EQ_NONE、SMW_EQ_SOME或SMW_EQ_FULL</tt>三者之一（直到SMW 1.0 RC1-3为止，其取值<tt>true</tt>或者<tt>false</tt>）.


 * [1.0] <tt>$smwgQDefaultNamespaces</tt>现在的默认取值为 <tt>NULL</tt>，从而所有的命名空间均得到查询. SMW RC 1-3当中的默认值为 '<tt>array(NS_MAIN, NS_IMAGE)</tt>'.


 * [1.0] <tt>$smwgQDefaultLinking</tt>的默认取值为'<tt>all</tt>'，以便所有的查询结果均被加以链接. 这不再是个性能问题. 直到SMW RC 1-3为止，其默认值为'<tt>subject</tt>'.

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

参阅

 * MediaWiki installation manual