version=pmwiki-2.2.5 ordered=1 urlencoded=1 agent=Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US) AppleWebKit/530.5 (KHTML, like Gecko) Chrome/2.0.172.43 Safari/530.5 author=Simon charset=ISO-8859-1 csum=GroupCustomizations ctime=1142605252 host=202.37.32.2 name=PmWiki.WikiFarms-Old rev=3 targets=PmWiki.WikiFarms,PmWiki.WikiGroup,PmWiki.LocalCustomizations,PmWiki.Installation,PmWiki.GroupCustomizations,PmWiki.UploadsAdmin text=%25audience%25 administrators (intermediate)%0a[[WikiFarms]] are a mechanism for running multiple independent wikis on the same web server from a single PmWiki installation. A ''`WikiFarm'' is a collection of independent wikis, and each independent wiki in the farm is commonly called a ''`WikiField''. A person who manages the PmWiki software installation is commonly called a ''farm administrator''. A person who manages an individual `WikiField is called a ''field administrator''. The location of the PmWiki software is called the ''farm directory'' and the location of each individual field is called a ''field directory''.%0a%0aEach field must have its own URL so that PmWiki can distinguish which field is being accessed, but can share [[Cookbook:SharedPages|pages]], [[WikiGroup|groups]], uploads, page templates, passwords, and other [[local customizations]] with other fields. For a quick explanation of what goes where and what it controls, see PmWiki:QuickFarms.%0a%0aThe remainder of this document describes how to setup `WikiFarms and individual fields of the farm, and assumes you are already somewhat familiar with the details of PmWiki [[installation]].%0a%0a!!!Setting up a `WikiFarm (farm administrator)%0a%0aAny PmWiki [[installation]] can become a `WikiFarm. The farm administrator creates a ''local/farmconfig.php'' file in the "farm directory" (the directory in which pmwiki.php is installed). This file would contain any [[local customizations]] that are to be performed for every field in the farm (''farmconfig.php'' is analogous to the ''config.php'' file of a typical installation). Usually, this will mean setting $FarmPubDirUrl to reasonable settings for the new field. A minimal ''farmconfig.php'' file might look like this:%0a%0a [@%3c?php if (!defined('PmWiki')) exit();%0a $FarmPubDirUrl = 'http://www.example.com/pmwiki/pub';@]%0a%0a$FarmPubDirUrl is used to provide fields with the URL location of the farm's ''pub/'' directory.%0a%0aYour PmWiki installation is now set up for farming. Now you need to create fields to see it in action.%0a%0a->%25note%25Note: Depending on your setup, you may want to install PmWiki in a non-web-server-accessible location. If you don't, or can't, you may want to control access using .htaccess. See Cookbook:FarmSecurity for more info.%0a%0a!!!Setting up a field within the `WikiFarm (field administrator)%0a%0aOnce PmWiki has been set up for `WikiFarming, a new field is created by doing the following:%0a%0a1. Create a directory to hold the field. Normally the field directory goes in a web-accessible directory (e.g., under ''public_html''), but it can be placed anywhere that a PmWiki installation would normally go.%0a%0a2. Create a PHP script (e.g., ''field.php'' or ''index.php'') in the field directory with the following line%0a%0a %3c?php include([='=]''path/to/pmwiki.php''');%0a%0awhere ''[@path/to/pmwiki.php@]'' is the file path to the farm's installation of PmWiki. Either an absolute file path ([@/home/username/pmwiki/pmwiki.php@]) or relative file path ([@../pmwiki/pmwiki.php@]) will usually work, although PHP doesn't understand ~username in file paths. Do not use a url path, i.e., there should not be an '[@http://@]' in it anywhere.%0a%0a->%25note%25 Note that it's not sufficient to use symbolic links or file shortcuts to connect to the farm installation of ''pmwiki.php''; one '''must''' use an include statement in order for PmWiki to be able to correctly determine the location of the farm's ''scripts/'' and other directories.%0a%0a3. Follow step #3 of the [[Installation#directories | installation procedure ]] to create the the field wiki's wiki.d/ directory.%0a%0a!!!Local customizations in fields and farms%0a%0aEach field administrator can create a ''local/'' directory within the field directory for [[local customization(s)]] to be applied to the field. This works just like a normal PmWiki installation--the file ''local/config.php'' holds settings for the entire field, and files of the form ''local/Group.php'' and ''[=local/Group.PageName.php=]'' are used for per-group and per-page customizations (see [[GroupCustomizations]]).%0a%0aThe PmWiki variable ''$FarmD'' points to the "home directory" for the PmWiki farm installation; thus a field administrator can use ''$FarmD/scripts/'' and ''$FarmD/pub/'' to refer to the farm's ''scripts/'' and ''pub/'' directories.%0a%0aA farm administrator can use the ''local/farmconfig.php'' file for customizations to be applied to all fields within the farm. By default, farm customizations are performed before any field-customization files; however, the farm administrator can override some field-customizations by explicitly calling the field's config.php files (this effects all fields), as in:%0a%0a %3c?php if (!defined('`PmWiki')) exit();%0a # Settings performed before field-customizations%0a $FarmPubDirUrl = 'http://www.example.com/pmwiki/pub';%0a $Skin = 'pmwiki-farm';%0a%0a # load the field's global and per-group customizations%0a include_once('local/config.php');%0a include_once('local/pgcust.php');%0a%0a # Override field customizations here%0a $EnableUpload = 0; # disable uploads%0a ?>%0a%0aIf extension scripts are used farm-wide and they are located in the farm's cookbook directory they should be loaded through entries in local/farmconfig.php like:\\%0a [@include_once("$FarmD/cookbook/scriptname.php");@]\\%0asimilar includes can be done in any field's local/config.php file. Note the double quotes "..."; single quotes do not work.%0a%0a!!!Notes%0a%0a* Field directories can also contain local ''pub/'' (for installing any custom skins for the field for instance) and ''uploads/'' directories. A per-field ''uploads/'' directory will normally be created in the field directory if uploads are enabled (see [[UploadsAdmin]]).%0a%0a* Pages distributed with PmWiki (e.g., documentation) are automatically shared among all fields in a farm. This is controlled through the $WikiLibDirs variable, which defaults to looking in the farm's copy of ''wikilib.d/''.%0a%0a* Other pages can be shared by multiple fields in a farm (See [[Cookbook:SharedPages]]).%0a%0a* The file ''farmmap.txt'' in the farm's ''local/'' directory can be used to provide farm-wide InterMap links. This may be useful for creating links to pages in other fields of the farm.%0a%0a* In general, fields can be created and administered from user accounts other than the one maintaining the farm if the underlying operating system permissions and PHP configuration settings allow it. PHP's default configuration normally allows this, but some system administrators and web hosting services change the PHP configuration such that this is not possible.%0a time=1251406787