维基农场

管理员(中级)

另请参见:食谱:农场设置示例,食谱:维基农场替代品

A类WikiFarm(维基农场)是在同一web服务器上运行的两个或多个wiki的集合,它们共享一组公共组件。该术语基于计算短语“服务器场”。

本页提供了有关维基农场并描述了如何通过添加wiki将“正常”配置转换为场。(单击在这里直接转到有关配置场的说明。)有很多方法可以配置wiki农场;此页面仅描述一个,以使首次创建场的管理员尽可能简单。

本页将讨论组织内容的三种方法:

  1. 使用Wiki组
  2. 使用具有共享代码库(“农场”)的独立wiki网站
  3. 使用独立的wiki网站和完整的PmWiki安装每个站点

在单独的wiki站点和Wiki组

为什么使用Wiki组?

当您在独立安装的wiki之间划分内容时(即,使用其单独的URL),很难(但并非不可能)提供需要访问多个wiki的服务。例如,PmWiki搜索功能只能在一个wiki中搜索。使用农场作为细分相关内容的方式通常是一个坏主意。细分内容的更好方法是使用Wiki组.

为什么使用单独的wiki站点?

当内容基本无关,并且几乎不需要或根本不需要在站点之间共享数据时,将wiki划分为独立安装的站点是有意义的。

在PmWiki和WikiFarm(维基农场)

一旦您决定需要一个单独的wiki(有自己的URL),您就有两个基本选择:

  1. 完成安装新目录中的PmWiki。这将为您提供两个完全独立的Wiki,它们是完全独立的。这是维基农场。
  2. 使用现有的wiki作为“主wiki”创建wiki场,大多数共享的PmWiki组件将驻留在这里。

使用wiki场的主要动机是减少管理多个wiki所涉及的管理工作量。在一个农场中,大多数PmWiki代码存储在一个地方,并由所有Wiki共享。例如,管理员可以通过简单地更新单个位置中的共享组件,在服务器场中的每个wiki上升级到PmWiki的新版本。

从读者的角度来看,PmWiki的独立自包含安装与WikiFarm中的独立wiki之间没有区别:场中的每个wiki都是完全独立的,并且显示为单独的网站。农场中的每个wiki:

  • 有自己的URL,URL可以位于不同的域中
  • 使用不同的皮肤可以有自己的外观和感觉
  • 可以从食谱
  • 可以有自己的管理员负责本地配置

为什么使用独立、独立的PmWiki安装

  • 它不是一个wiki农场,不需要额外的管理知识-它只是两个安装
  • 如果您决定将其中一个wiki移动到另一个服务器,只需将wiki目录结构复制到第二个服务器,它就会工作(假设有一个web服务器和PHP)。
  • 您可以在每个wiki上运行不同版本的PmWiki(适合测试新版本)
  • 无论你把一个安装搞得多么糟糕,它都不会影响另一个

为什么使用WikiFarm(维基农场)

  • 只需升级家庭wiki,就可以升级农场中的所有wiki
  • 食谱可以在所有wiki中共享
  • 配置的一部分可以在wiki中共享
  • 大多数代码存储在一个位置,并由服务器场中的所有wiki共享

我仍然无法决定是否需要一个农场。。。

好消息是你不必提前做出决定。事实上,建议的程序是首先执行“正常”或单个安装PmWiki的。用一段时间。创建页面并进行编辑。了解如何添加食谱。一定要试一试Wiki组(它们可能是您所需要的全部)。

如果您选择创建wiki场,请继续阅读。。。

创建/配置维基农场

前提条件

创建农场之前,请确保:

创建家庭wiki

你现在确实已经安装了PmWiki,是吗?这很好,因为您现有的wiki即将成为您农场的家庭wiki。

在包含现有wiki的目录中,创建文件本地/farmconfig.php。此文件用于保存任何本地自定义这适用于整个农场。例如,您可以在中指定管理员密码farmconfig.php你农场中的所有wiki都会使用它。

如果用于访问现有wiki的URL是https://www.example.com/pmwiki/然后是最小值farmconfig.php文件将如下所示:

<?php if(!defined('PmWiki'))exit();$FarmPubDirUrl='https://www.example.com/pmwiki/pub';

这会加载变量$FarmPubDirUrl使用家庭维基的URL位置酒吧/目录。您服务器场中的所有Wiki都共享此内容酒吧/目录。这个酒吧/目录中保存了要由服务器场中所有wiki共享的皮肤定义和GUI编辑按钮。

听起来令人惊讶的是,这完成了将现有wiki转换为农场家庭wiki所需的所有更改。

在农场中创建附加wiki

1.创建一个目录来保存新的wiki。这个目录必须是可通过网络访问的,就像保存您的家庭wiki的目录一样。
2.创建一个名为索引.php目录中包含以下内容:
<?php include_once('路径/to/pmwiki.php');
这允许您的新wiki共享存储在家庭wiki中的PmWiki代码。这个路径/目标/pmwiki.php是的文件路径pmwiki.php网站在您的家庭维基中。使用绝对文件路径(/主页/用户名/pmwiki/pmwiki.php)或相对文件路径(../pmwiki/pmwiki.php). 不要使用url路径-不应有“https(https)://“在任何地方。对于在Windows下运行的web服务器,需要使用完整的文件路径,如C: /阿帕奇集团/Apache2/www/mynewwiki/.
3.打开web浏览器并浏览新wiki的URL。这将是一个以“”开头的网址https(https)://'. PmWiki将尝试自动创建可写维基.d/wiki页面的存储目录。如果看到错误消息,请按照说明进行操作。如果您选择“稍微更安全的安装”选项,请确保执行这两个命令。

您的新wiki现已设置,您的服务器场现在包含2个wiki。要添加更多wiki,只需重复这3个步骤。

自定义

场中的每个wiki都继承存储在中的设置农场配置.php。执行要在中应用场范围(到所有Wiki)的任何自定义farmconfig.php.

创建一个本地/每个wiki目录中要保存的目录本地自定义这只适用于那个wiki。您至少应该创建带有新标题的本地/config.php文件,如下所示:

<?php if(!defined('PmWiki'))exit();##养殖wiki的标题$WikiTitle=“新Wiki”;

在单独的wiki本地自定义项之前处理场范围的自定义项。

PmWiki变量$农场D指向安装pmwiki.php的目录和您的主页wiki,并将其用作前缀,以允许其他wiki共享pmwiki组件。例如:

  • $农场D/脚本/指向共享的脚本/目录
  • $农场D/酒吧/指向共享的酒吧/目录
  • $农场D/食谱/指向共享的食谱/目录

在farmconfig.php中包含的任何脚本都必须包含一行,例如:

包含一次(“$农场D/cookbook/scriptfile.php”);
注意双引号-单引号可能适用于每个农场的包含,但不适用于$农场D.

农场Wiki上的密码使用/授权:

为什么当我切换到农场中的另一个wiki时,我会保留相同的授权?

PmWiki使用PHP会话来跟踪身份验证/授权信息,默认情况下,PHP会将与同一服务器的所有交互视为同一会话的一部分。

解决此问题的一种简单方法是确保每个wiki都使用不同的cookie名称作为其会话标识符。在wiki的一个本地/config.php文件的顶部附近,在调用authuser或任何其他配方之前,添加一行,如:

session_name('XYZSESSID');

您可以为XYZSESSID选择任何字母数字名称;例如,对于cs559-1 wiki,您可以选择

session_name(“CS559SESSID”);

这将使两个wiki的会话相互独立。

注意事项

  • 用于描述wiki农场的术语使用不一致。请参见WikiFarm术语了解更多信息。
  • 重要的是要记住,并非所有食谱都是为农场编写或测试的。请务必查找有关如何在农场使用食谱的说明。
  • 你可以用农场做很多很多的事情。有些在上进行了描述PmWiki:WikiFarmsAdvanced(维基农场高级)它还包含建立农场的分步示例的链接。

类别:维基农场


此页面可能包含上的更新版本pmwiki.org网站:PmWiki:维基农场、和对话页面:PmWiki:WikiFarms-Talk.