另请参见:食谱:农场设置示例,食谱:维基农场替代品
A类WikiFarm(维基农场)是在同一web服务器上运行的两个或多个wiki的集合,它们共享一组公共组件。该术语基于计算短语“服务器场”。
本页提供了有关维基农场并描述了如何通过添加wiki将“正常”配置转换为场。(单击在这里直接转到有关配置场的说明。)有很多方法可以配置wiki农场;此页面仅描述一个,以使首次创建场的管理员尽可能简单。
本页将讨论组织内容的三种方法:
- 使用Wiki组
- 使用具有共享代码库(“农场”)的独立wiki网站
- 使用独立的wiki网站和完整的PmWiki安装每个站点
在单独的wiki站点和Wiki组
当您在独立安装的wiki之间划分内容时(即,使用其单独的URL),很难(但并非不可能)提供需要访问多个wiki的服务。例如,PmWiki搜索功能只能在一个wiki中搜索。使用农场作为细分相关内容的方式通常是一个坏主意。细分内容的更好方法是使用Wiki组.
为什么使用单独的wiki站点?
当内容基本无关,并且几乎不需要或根本不需要在站点之间共享数据时,将wiki划分为独立安装的站点是有意义的。
一旦您决定需要一个单独的wiki(有自己的URL),您就有两个基本选择:
- 完成安装新目录中的PmWiki。这将为您提供两个完全独立的Wiki,它们是完全独立的。这是不维基农场。
- 使用现有的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(适合测试新版本)
- 无论你把一个安装搞得多么糟糕,它都不会影响另一个
- 只需升级家庭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组件。例如:
在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的会话相互独立。
注意事项
类别:维基农场