# Foswiki - The Free and Open Source Wiki, http://foswiki.org/ # See bottom of file for license and copyright information. # # This file contains a specification of the parts of Foswiki that can be # configured using =configure=. It is combined with =Config.spec= files # shipped with extensions to generate the interface seen when you run # =configure=. # # When you run configure from your browser, it will work out required # settings and write a new LocalSite.cfg. It should never be necessary to # modify this file directly. # # If for some strange reason you want to brew your own LocalSite.cfg by # copying this file (NOT recommended), then you must un-comment and complete # the PATH and URLPATH settings that are flagged as Mandatory ( M** ) and # remove the __END__ line toward the end of the file. # # See 'setlib.cfg' in the 'bin' directory for how to configure a non-standard # include path for Perl modules. # ############################################################################# # # NOTE FOR DEVELOPERS: # The comments in this file are formatted so that the 'configure' script # can extract documentation from here. See # http://foswiki.org/System/DevelopingPlugins#Integrating_with_configure # for details of the syntax used. # # You can use $Foswiki::cfg variables in other settings, # but you must be sure they are only evaluated under program control and # NOT when this file is loaded. For example: ## $Foswiki::cfg{Blah} = "$Foswiki::cfg{DataDir}/blah.dat"; # BAD ## $Foswiki::cfg{Blah} = '$Foswiki::cfg{DataDir}/blah.dat'; # GOOD # # Note that the general path settings are deliberately commented out. # This is because they *must* be defined in LocalSite.cfg, and *not* here. ############################################################################# #---+ General path settings #

If you are a first-time installer: once you have set # up the eight paths below, your wiki should work - try it. You can # always come back and tweak other settings later.

#

Security Note: Only the URL paths listed below should # be browseable from the web. If you expose any other directories (such as # lib or templates) you are opening up routes for possible hacking attempts.

# **URL M** # This is the root of all Foswiki URLs e.g. http://myhost.com:123. # $Foswiki::cfg{DefaultUrlHost} = 'http://your.domain.com'; # **URLPATH M** # This is the 'cgi-bin' part of URLs used to access the Foswiki bin # directory e.g. /foswiki/bin
# Do not include a trailing /. #

# See ShorterUrlCookbook for more information on setting up # Foswiki to use shorter script URLs. The setting for the view script may be adjusted below. Other scripts need to # be manually added to lib/LocalSite.cfg # $Foswiki::cfg{ScriptUrlPath} = '/foswiki/bin'; # **URLPATH M** # This is the complete path used to access the Foswiki view script including any suffix. Do not include a trailing /. # (This is an exception override, so the ScriptSuffix is not automatically added.) # e.g. /foswiki/bin/view.pl
Note: The default is acceptable except when shorter URLs are used. #

# If you are using Shorter URL's, then this is typically set to the base path of your wiki, which should be the value # of {ScriptUrlPath} excluding /bin. e.g. if your {ScriptUrlPath} is either empty or set to /bin leave # {ScriptUrlPaths}{view} empty; if it is set to something like /directory/bin set it to /directory #

# Do not change # this unless your Web Server configuration has been set to use shorter URLs. See also the Foswiki # Apache Config Generator and # Shorter URL Cookbook $Foswiki::cfg{ScriptUrlPaths}{view} = '$Foswiki::cfg{ScriptUrlPath}/view$Foswiki::cfg{ScriptSuffix}'; # **PATH M** # This is the file system path used to access the Foswiki bin # directory. # $Foswiki::cfg{ScriptDir} = '/home/httpd/foswiki/bin'; # **URLPATH M** # Attachments URL path e.g. /foswiki/pub #

Security Note: files in this directory are *not* # protected by Foswiki access controls. If you require access controls, you # will have to use webserver controls (e.g. .htaccess on Apache) # $Foswiki::cfg{PubUrlPath} = '/foswiki/pub'; # **NUMBER EXPERT** # This is the maximum number of files and directories that will be checked # for permissions for the pub and data Directory paths. This limit is initially set to # 5000, which should be reasonable for a default installation. If it is # exceeded, then an informational message is returned stating that incomplete # checking was performed. If this is set to a large number on large installations, # then a significant delay will be incurred when configure is run, due to the # recursive directory checking. $Foswiki::cfg{PathCheckLimit} = 5000; # **PATH M** # Attachments store (file path, not URL), must match /foswiki/pub e.g. # /usr/local/foswiki/pub # $Foswiki::cfg{PubDir} = '/home/httpd/foswiki/pub'; # **PATH M** # Topic files store (file path, not URL) e.g. /usr/local/foswiki/data # $Foswiki::cfg{DataDir} = '/home/httpd/foswiki/data'; # **PATH M** # Tools directory e.g. /usr/local/foswiki/tools # $Foswiki::cfg{ToolsDir} = '/home/httpd/foswiki/tools'; # **PATH M** # Template directory e.g. /usr/local/foswiki/templates # $Foswiki::cfg{TemplateDir} = '/home/httpd/foswiki/templates'; # **PATH M** # Translation files directory (file path, not URL) e.g. /usr/local/foswiki/locale # $Foswiki::cfg{LocalesDir} = '/home/httpd/foswiki/locale'; # **PATH M** # Directory where Foswiki stores files that are required for the management # of Foswiki, but are not required to be browsed from the web. # A number of subdirectories will be created automatically under this # directory: #

# $Foswiki::cfg{WorkingDir} = '/home/httpd/foswiki/working'; # **STRING** # If your host has aliases (such as both www.mywiki.net and mywiki.net # and some IP addresses) you need to tell Foswiki that redirecting to them # is OK. Foswiki uses redirection as part of its normal mode of operation # when it changes between editing and viewing. # To prevent Foswiki from being used in phishing attacks and to protect it # from middleman exploits, the security setting {AllowRedirectUrl} is by # default disabled, restricting redirection to other domains. If a redirection # to a different host is attempted, the target URL is compared against this # list of additional trusted sites, and only if it matches is the redirect # permitted.
# Enter as a comma separated list of URLs (protocol, hostname and (optional) # port) e.g. http://your.domain.com:8080,https://other.domain.com $Foswiki::cfg{PermittedRedirectHostUrls} = ''; # **STRING 10** # Suffix of Foswiki CGI scripts (e.g. .cgi or .pl). You may need to set this # if your webserver requires an extension. $Foswiki::cfg{ScriptSuffix} = ''; # **PATH M** # You can override the default PATH setting to control # where Foswiki looks for external programs, such as grep and rcs. # By restricting this path to just a few key # directories, you increase the security of your Foswiki. #
    #
  1. # Unix or Linux # #
  2. #
  3. # Windows ActiveState Perl, using DOS shell # #
  4. #
  5. # Windows Cygwin Perl # #
  6. #
#$Foswiki::cfg{SafeEnvPath} = ''; # **STRING 20 EXPERT** # {OS} and {DetailedOS} are calculated in the Foswiki code. You # should only need to override if there is something badly wrong with # those calculations.
# {OS} may be one of UNIX WINDOWS VMS DOS MACINTOSH OS2 $Foswiki::cfg{OS} = ''; # **STRING 20 EXPERT** # The value of Perl $OS $Foswiki::cfg{DetailedOS} = ''; ############################################################################# #---+ Security and Authentication -- TABS #

In order to support tracking who changed what, and apply access controls, # Foswiki is normally configured to use logins. The tabs below control # various aspects of logins.

#---++ Sessions #

Sessions are how Foswiki tracks a user across multiple requests. #

'Show expert options' has advanced options for controlling sessions.

# **BOOLEAN** # Control whether Foswiki will use persistent sessions. # A user's session id is stored in a cookie, and this is used to identify # the user for each request they make to the server. # You can use sessions even if you are not using login. # This allows you to have persistent session variables - for example, skins. # Client sessions are not required for logins to work, but Foswiki will not # be able to remember logged-in users consistently. # See User # Authentication for a full discussion of the pros and # cons of using persistent sessions.

$Foswiki::cfg{UseClientSessions} = 1; # **STRING 20 EXPERT DISPLAY_IF {UseClientSessions}** # Set the session timeout, in seconds. The session will be cleared after this # amount of time without the session being accessed. The default is 6 hours # (21600 seconds).

# Note By default, session expiry is done "on the fly" by the same # processes used to # serve Foswiki requests. As such it imposes a load on the server. When # there are very large numbers of session files, this load can become # significant. For best performance, you can set {Sessions}{ExpireAfter} # to a negative number, which will mean that Foswiki won't try to clean # up expired sessions using CGI processes. Instead you should use a cron # job to clean up expired sessions. The standard maintenance cron script # tools/tick_foswiki.pl includes this function. #

Session files are stored in the {WorkingDir}/tmp directory. $Foswiki::cfg{Sessions}{ExpireAfter} = 21600; # **NUMBER EXPERT DISPLAY_IF {UseClientSessions} && {LoginManager}=='Foswiki::LoginManager::TemplateLogin'** # TemplateLogin only. # Normally the cookie that remembers a user session is set to expire # when the browser exits, but using this value you can make the cookie # expire after a set number of seconds instead. If you set it then # users will be able to tick a 'Remember me' box when logging in, and # their session cookie will be remembered even if the browser exits.

# This should always be the same as, or longer than, {Sessions}{ExpireAfter}, # otherwise Foswiki may delete the session from its memory even though the # cookie is still active.

# A value of 0 will cause the cookie to expire when the browser exits. # One month is roughly equal to 2600000 seconds. $Foswiki::cfg{Sessions}{ExpireCookiesAfter} = 0; # **BOOLEAN EXPERT DISPLAY_IF {UseClientSessions}** # Foswiki will normally use a cookie in # the browser to store the session ID. If the client has cookies disabled, # then Foswiki will not be able to record the session. As a fallback, Foswiki # can rewrite local URLs to pass the session ID as a parameter to the URL. # This is a potential security risk, because it increases the chance of a # session ID being stolen (accidentally or intentionally) by another user. # If this is turned off, users with cookies disabled will have to # re-authenticate for every secure page access (unless you are using # {Sessions}{MapIP2SID}). $Foswiki::cfg{Sessions}{IDsInURLs} = 0; # **STRING 20 EXPERT DISPLAY_IF {UseClientSessions}** # By default the Foswiki session cookie is only accessible by the host which # sets it. To change the scope of this cookie you can set this to any other # value (ie. company.com). Make sure that Foswiki can access its own cookie.
# If empty, this defaults to the current host. $Foswiki::cfg{Sessions}{CookieRealm} = ''; # **BOOLEAN EXPERT DISPLAY_IF {UseClientSessions}** # It is possible to enable a check that the user trying to use a session # is on the same IP address that was used when the session was created. # This gives a small increase in security. Public web sites can easily be # accessed by different users from the same IP address when they access # through the same proxy gateway, meaning that the protection is limited. # Additionally, people get more and more mobile using a mix of LAN, WLAN, # and 3G modems and they will often change IP address several times per day. # For these users IP matching causes the need to re-authenticate all the time. # IP matching is therefore disabled by default and should only be enabled if # you are sure the users IP address never changes during the lifetime of a # session. $Foswiki::cfg{Sessions}{UseIPMatching} = 0; # **BOOLEAN EXPERT DISPLAY_IF {UseClientSessions}** # For compatibility with older versions, Foswiki supports the mapping of the # clients IP address to a session ID. You can only use this if all # client IP addresses are known to be unique. # If this option is enabled, Foswiki will not store cookies in the # browser. # The mapping is held in the file $Foswiki::cfg{WorkingDir}/tmp/ip2sid. # If you turn this option on, you can safely turn {Sessions}{IDsInURLs} # off. $Foswiki::cfg{Sessions}{MapIP2SID} = 0; #---++ Validation # Validation is the process by which Foswiki validates that a request is # allowed by the site, and is not part of an attack on the site. #

'Show expert options' has advanced options for controlling validation.

# **SELECT strikeone,embedded,none ** #

By default Foswiki uses Javascript to perform "double submission" validation # of browser requests. This technique, called "strikeone", is highly # recommended for the prevention of cross-site request forgery (CSRF). See also # # Why am I being asked to confirm?.

#

If Javascript is known not to be available in browsers that use the site, # or cookies are disabled, but you still want validation of submissions, # then you can fall back on a embedded-key validation technique that # is less secure, but still offers some protection against CSRF. Both # validation techniques rely on user verification of "suspicious" # transactions.

#

This option allows you to select which validation technique will be # used.
# If it is set to "strikeone", or is undefined, 0, or the empty string, then # double-submission using Javascript will be used.
# If it is set to "embedded", then embedded validation keys will be used.
# If it is set to "none", then no validation of posted requests will # be performed.

$Foswiki::cfg{Validation}{Method} = 'strikeone'; # **NUMBER EXPERT DISPLAY_IF {Validation}{Method}!='none'** # Validation keys are stored for a maximum of this amount of time before # they are invalidated. Time in seconds. A shorter time reduces the risk # of a hacker finding and re-using one of the keys, at the cost of more # frequent confirmation prompts for users. $Foswiki::cfg{Validation}{ValidForTime} = 3600; # **NUMBER EXPERT DISPLAY_IF {Validation}{Method}!='none'** # The maximum number of validation keys to store in a session. There is one # key stored for each page rendered. If the number of keys exceeds this # number, the oldest keys will be force-expired to bring the number down. # This is a simple tradeoff between space on the server, and the number of # keys a single user might use (usually dictated by the number of wiki pages # they have open simultaneously) $Foswiki::cfg{Validation}{MaxKeysPerSession} = 1000; # **BOOLEAN EXPERT DISPLAY_IF {Validation}{Method}!='none'** # Expire a validation key immediately when it is used to validate the saving # of a page. This protects against an attacker evesdropping the communication # between browser and server and exploiting the keys sent from browser to # server. If this is enabled and a user edits and saves a page, and then goes # back to the edit screen using the browser back button and saves again, they # will be met by a warning screen against "Suspicious request from # browser". The same warning will be displayed if you build an application with # pages containing multiple forms and users try to submit from these # forms more than once. If this warning screen is a problem for your users, you # can disable this setting which enables reuse of validation keys. # However this will lower the level of security against cross-site request # forgery. $Foswiki::cfg{Validation}{ExpireKeyOnUse} = 1; #---++ Login #

Foswiki supports different ways of handling how a user asks, or is asked, # to log in.

#

Infrequently used options can be displayed by clicking 'Show expert options'

# **SELECTCLASS none,Foswiki::LoginManager::*Login** #
  1. # none - Don't support logging in, all users have access to everything. #
  2. # Foswiki::LoginManager::TemplateLogin - Redirect to the login template, which # asks for a username and password in a form. Does not cache the ID in # the browser, so requires client sessions to work. #
  3. # Foswiki::LoginManager::ApacheLogin - Redirect to an '...auth' script for which # Apache can be configured to ask for authorization information. Does # not require client sessions, but works best with them enabled. #
$Foswiki::cfg{LoginManager} = 'Foswiki::LoginManager::TemplateLogin'; # **STRING 100 DISPLAY_IF {LoginManager}=='Foswiki::LoginManager::TemplateLogin'** # Comma-separated list of scripts in the bin directory that require the user to # authenticate. This setting is used with TemplateLogin; any time an # unauthenticated user attempts to access one of these scripts, they will be # required to authenticate. With ApacheLogin, the web server must be configured # to require a valid user for access to these scripts. edit and # save should be removed from this list if the guest user is permitted to # edit topics without authentication. $Foswiki::cfg{AuthScripts} = 'attach,compareauth,edit,manage,previewauth,rdiffauth,rename,restauth,save,statistics,upload,viewauth,viewfileauth'; # **BOOLEAN EXPERT DISPLAY_IF {LoginManager}=='Foswiki::LoginManager::TemplateLogin'** # Browsers typically remember your login and passwords to make authentication # more convenient for users. If your Foswiki is used on public terminals, # you can prevent this, forcing the user to enter the login and password # every time. $Foswiki::cfg{TemplateLogin}{PreventBrowserRememberingPassword} = 0; # **REGEX EXPERT** # The perl regular expression used to constrain user login names. Some # environments may require funny characters in login names, such as \. # This is a filter in expression i.e. a login name must match this # expression or an error will be thrown and the login denied. $Foswiki::cfg{LoginNameFilterIn} = qr/^[^\s\*?~^\$@%`"'&;|<>\x00-\x1f]+$/; # **STRING 20 EXPERT** # Guest user's login name. You are recommended not to change this. $Foswiki::cfg{DefaultUserLogin} = 'guest'; # **STRING 20 EXPERT** # Guest user's wiki name. You are recommended not to change this. $Foswiki::cfg{DefaultUserWikiName} = 'WikiGuest'; # **STRING 20 EXPERT** # An internal admin user login name (matched with the configure password, if set) # which can be used as a temporary Admin login (see: Main.AdminUser). # This login name is additionally required by the install script for some addons # and plugins, usually to gain write access to the Foswiki web. # If you change this you risk making topics uneditable. $Foswiki::cfg{AdminUserLogin} = 'admin'; # **STRING 20 EXPERT** # An admin user WikiName that is displayed for actions done by the AdminUserLogin # You should normally not need to change this. (You will need to move the # %USERSWEB%.AdminUser topic to match. Do not register a user with this name!) # This is a special WikiName and should never be directly authenticated. # It is accessed by logging in using the AdminUserLogin either directly or with the # sudo login. $Foswiki::cfg{AdminUserWikiName} = 'AdminUser'; # **STRING 20 EXPERT** # Group of users that can use special action=repRev and action=delRev # on save and ALWAYS have edit powers. See %SYSTEMWEB%.CompleteDocumentation # for an explanation of wiki groups. This user will also run all the # standard cron jobs, such as statistics and mail notification. # The default value "AdminGroup" is used everywhere in Foswiki to # protect important settings so you would need a really special reason to # change this setting. $Foswiki::cfg{SuperAdminGroup} = 'AdminGroup'; # **STRING 20 EXPERT** # Name of topic in the {UsersWebName} web where registered users # are listed. Automatically maintained by the standard # registration scripts. If you change this setting you will have to # use Foswiki to manually rename the existing topic $Foswiki::cfg{UsersTopicName} = 'WikiUsers'; #---++ User mapping # The user mapping is used to equate login names, used with external # authentication systems, with Foswiki user identities. # **SELECTCLASS Foswiki::Users::*UserMapping** # By default only # two mappings are available, though other mappings *may* be installed to # support authentication providers. #
  1. # Foswiki::Users::TopicUserMapping - uses Foswiki user and group topics to # determine user information, and group memberships. #
  2. # Foswiki::Users::BaseUserMapping - has only pseudo users such as {AdminUser} and # {DefaultUserWikiName}, with the Admins login and password being set from this # configure script. Does not support User registration, and # only works with TemplateLogin. #
$Foswiki::cfg{UserMappingManager} = 'Foswiki::Users::TopicUserMapping'; #---++ Access Control # **SELECTCLASS Foswiki::Access::*Access** #
  1. # TopicACLAccess is the normal foswiki ACL system, as documented throught the setup guides. #
  2. # AdminOnlyAccess denies all non-admins (not in the AdminGroup) any access to the wiki - useful for site maintainence. #
$Foswiki::cfg{AccessControl} = 'Foswiki::Access::TopicACLAccess'; #---++ Passwords #

The password manager handles the passwords database, and provides # password lookup, and optionally password change, services to the rest of # Foswiki.

# **SELECTCLASS none,Foswiki::Users::*User** # Name of the password handler implementation. Foswiki ships with two alternative implementations: #
  1. # Foswiki::Users::HtPasswdUser - handles 'htpasswd' format files, with # passwords encoded as per the HtpasswdEncoding #
  2. # Foswiki::Users::ApacheHtpasswdUser - should behave identically to # HtpasswdUser for crypt encoding, but uses the CPAN:Apache::Htpasswd package to interact # with Apache. It is shipped mainly as a demonstration of how to write # a new password manager. It is not recommended for production. #
# You can provide your own alternative by implementing a new subclass of # Foswiki::Users::Password, and pointing {PasswordManager} at it in # lib/LocalSite.cfg.

# If 'none' is selected, users will not be able to change passwords # and TemplateLogin manager then will always succeed, regardless of # what username or password they enter. This may be useful when you want to # enable logins so Foswiki can identify contributors, but you don't care about # passwords. Using ApacheLogin and PassordManager set to 'none' (and # AllowLoginName = true) is a common Enterprise SSO configuration, in which # any logged in user can then register to create their Foswiki Based identity. $Foswiki::cfg{PasswordManager} = 'Foswiki::Users::HtPasswdUser'; # **NUMBER** # Minimum length for a password, for new registrations and password changes. # If you want to allow null passwords, set this to 0. $Foswiki::cfg{MinPasswordLength} = 7; # **PATH DISPLAY_IF /htpasswd/i.test({PasswordManager})** # Path to the file that stores passwords, for the Foswiki::Users::HtPasswdUser # password manager. You can use the htpasswd Apache program to create a new # password file with the right encoding, however use caution, as it will remove # email addresses from an existing file. $Foswiki::cfg{Htpasswd}{FileName} = '$Foswiki::cfg{DataDir}/.htpasswd'; # **PATH EXPERT DISPLAY_IF /htpasswd/i.test({PasswordManager})** # Path to the lockfile for the password file. This normally does not need to be changed # however if two Foswiki installations share and update a common password file it is # critical that both use the same lockfile. For example, change it to the location of the # password file, $Foswiki::cfg{DataDir}/htpasswd.lock. Foswiki must have # rights to create the file in this location. # Only applicable to HtPasswdUser. $Foswiki::cfg{Htpasswd}{LockFileName} = '$Foswiki::cfg{WorkingDir}/htpasswd.lock'; # **BOOLEAN EXPERT DISPLAY_IF {PasswordManager}=="Foswiki::Users::HtPasswdUser"** # Enable this option on systems using FastCGI, FCGID, or Mod_Perl in order to avoid reading the password file # for every transaction. It will cause the HtPasswdUser module to globally # cache the password file, reading it only once on initization. $Foswiki::cfg{Htpasswd}{GlobalCache} = $FALSE; # **BOOLEAN DISPLAY_IF {PasswordManager}=="Foswiki::Users::HtPasswdUser"** # Enable this option if the .htpasswd file can be updated either external to Foswiki # or by another Foswiki instance. When enabled, Foswiki will verify the timestamp of # the file and will invalidate the cache if the file has been changed. This is only useful # if Foswiki is running in a mod_perl or fcgi envinroment. $Foswiki::cfg{Htpasswd}{DetectModification} = $FALSE; # **SELECT bcrypt,htdigest-md5,apache-md5,sha1,crypt-md5,crypt,plain DISPLAY_IF /htpasswd/i.test({PasswordManager})** # Password encryption, for the Foswiki::Users::HtPasswdUser password manager. This # specifies the type of password hash to generate when writing entries to .htpasswd # It is also used when reading password entries unless the parameter # {Htpasswd}{AutoDetect} is enabled. #

# The choices in order of strongest to lowest strength: #

#
(HTTPS)
Any below encoding over an HTTPS SSL connection. (Not a selection here.)
#
htdigest-md5
Strongest only when combined with the Foswiki::LoginManager::ApacheLogin # Useful on sites where password files are required to be # portable. The {AuthRealm} value is used with the username and password to generate # the hashed form of the password, thus: user:{AuthRealm}:hash. # This encoding is generated by the Apache htdigest command.
#
bcrypt
Hash based upon blowfish algorithm, strength of hash controlled by a cost parameter. # Not compatible with Apache Authentication
#
apache-md5
Enable an Apache-specific algorithm using an iterated # (1,000 times) MD5 digest of various combinations of a random 32-bit salt and the password # (userid:$apr1$salt$hash). This is the default. # This is the encoding generated by the htpasswd -m command.
#
sha1
It has the strongest hash however does not use salt and is therefor more # vulnerable to dictionary attacks. This is the encoding # generated by the htpasswd -s command (userid:{SHA}hash).
#
crypt-md5
Enable use of standard libc (/etc/shadow) crypt-md5 password # (like user:$1$salt$hash:email). Unlike crypt encoding, it does not suffer from password truncation. # Passwords are salted, and the salt is stored in the encrypted password string as in normal crypt passwords. This # encoding is understood by Apache but cannot be generated by the htpasswd command.
#
crypt
Not Recommended. crypt encoding only # uses the first 8 characters of the password. Extra characters are silently discarded. # This is the default generated by the Apache htpasswd command (user:hash:email)
#
plain
stores passwords as plain text (no encryption). Useful for testing.
#
# If you need to create entries in .htpasswd before Foswiki is operational, you can use the # htpasswd or htdigest Apache program to create a new password file with the correct # encoding. Use caution however as these programs do not support the email addresses stored by Foswiki in # the .htpasswd file. $Foswiki::cfg{Htpasswd}{Encoding} = 'apache-md5'; # **STRING 80 DISPLAY_IF /htpasswd/i.test({PasswordManager}) && /md5$/.test({Htpasswd}{Encoding})** # Authentication realm. You may need to change it # if you are sharing a password file with another application. $Foswiki::cfg{AuthRealm} = 'Enter your WikiName. (First name and last name, no space, no dots, capitalized, e.g. JohnSmith). Cancel to register if you do not have one.'; # **BOOLEAN DISPLAY_IF {PasswordManager}=="Foswiki::Users::HtPasswdUser" && {Htpasswd}{Encoding}!="plain"** # Auto-detect the stored password encoding type. Enable # this to allow migration from one encoding format to another format. Note that this does # add a small overhead to the parsing of the .htpasswd file. Tests show approximately 1ms per 1000 entries. It should be used # with caution unless you are using CGI acceleration such as FastCGI or mod_perl. # This option is not compatible with plain text passwords. $Foswiki::cfg{Htpasswd}{AutoDetect} = $TRUE; # **NUMBER** # Specify the cost that should be incured when computing the hash of a password. This number should be increased as CPU speeds increase. # The iterations of the hash is roughly 2^cost - default is 8, or 256 iterations. # $Foswiki::cfg{Htpasswd}{BCryptCost} = 8; #---++ Registration #

Registration is the process by which new users register themselves with # Foswiki.

# **BOOLEAN** # If you want users to be able to use a login ID other than their # wikiname, you need to turn this on. It controls whether the 'LoginName' # box appears during the user registration process, and is used to tell # the User Mapping module whether to map login names to wikinames or not # (if it supports mappings, that is). $Foswiki::cfg{Register}{AllowLoginName} = $FALSE; # **BOOLEAN** # Controls whether new user registration is available. # It will have no effect on existing users. $Foswiki::cfg{Register}{EnableNewUserRegistration} = $TRUE; # **BOOLEAN** # Whether registrations must be verified by the user, by following # a link sent in an email to the user's registered email address $Foswiki::cfg{Register}{NeedVerification} = $FALSE; # **BOOLEAN EXPERT** # Controls whether the user password has to be entered twice on the # registration page or not. The default is to require confirmation, in which # case the same password must be provided in the confirmation input. $Foswiki::cfg{Register}{DisablePasswordConfirmation} = $FALSE; # **BOOLEAN EXPERT** # Hide password in registration email to the user # Note that Foswiki sends administrators a separate confirmation. $Foswiki::cfg{Register}{HidePasswd} = $TRUE; # **STRING 20 EXPERT** # The internal user that creates user topics on new registrations. # You are recommended not to change this. $Foswiki::cfg{Register}{RegistrationAgentWikiName} = 'RegistrationAgent'; # **BOOLEAN** # Normally users can register multiple WikiNames using the same email address. # Enable this parameter to prevent multiple registrations using the same email address. $Foswiki::cfg{Register}{UniqueEmail} = $FALSE; # **REGEX 80 EXPERT** # This regular expression can be used to block certain email addresses from being used # for registering users. It can be used to block some of the more common wikispam bots. # If this regex matches the entered address, the registration is rejected. For example:
# ^.*@(lease-a-seo\.com|paydayloans).*$
# To block all domains and list only the permitted domains, use an expression of the format:
# @(?!(example\.com|example\.net)$) $Foswiki::cfg{Register}{EmailFilter} = ''; # **STRING H** # Configuration password (not prompted) $Foswiki::cfg{Password} = ''; #---++ Environment # **PERL** # Array of the names of configuration items that are available when using %IF, %SEARCH # and %QUERY{}%. Extensions can push into this array to extend the set. This is done as # a filter in because while the bulk of configuration items are quite innocent, # it's better to be a bit paranoid. $Foswiki::cfg{AccessibleCFG} = [ '{ScriptSuffix}', '{LoginManager}', '{AuthScripts}', '{LoginNameFilterIn}', '{AdminUserLogin}', '{AdminUserWikiName}', '{SuperAdminGroup}', '{UsersTopicName}', '{AuthRealm}', '{MinPasswordLength}', '{Register}{AllowLoginName}', '{Register}{EnableNewUserRegistration}', '{Register}{NeedVerification}', '{Register}{RegistrationAgentWikiName}', '{AllowInlineScript}', '{DenyDotDotInclude}', '{UploadFilter}', '{NameFilter}', '{AccessibleCFG}', '{AntiSpam}{EmailPadding}', '{AntiSpam}{EntityEncode}','{AntiSpam}{HideUserDetails}', '{AntiSpam}{RobotsAreWelcome}', '{Stats}{TopViews}', '{Stats}{TopContrib}', '{Stats}{TopicName}', '{UserInterfaceInternationalisation}', '{UseLocale}', '{Site}{Locale}', '{Site}{CharSet}', '{DisplayTimeValues}', '{DefaultDateFormat}', '{Site}{LocaleRegexes}', '{UpperNational}', '{LowerNational}', '{PluralToSingular}', '{EnableHierarchicalWebs}', '{WebMasterEmail}', '{WebMasterName}', '{NotifyTopicName}', '{SystemWebName}', '{TrashWebName}', '{SitePrefsTopicName}', '{LocalSitePreferences}', '{HomeTopicName}', '{WebPrefsTopicName}', '{UsersWebName}', '{TemplatePath}', '{LinkProtocolPattern}', '{NumberOfRevisions}', '{MaxRevisionsInADiff}', '{ReplaceIfEditedAgainWithin}', '{LeaseLength}', '{LeaseLengthLessForceful}', '{Plugins}{WebSearchPath}', '{PluginsOrder}', '{Cache}{Enabled}', '{Validation}{Method}', '{Register}{DisablePasswordConfirmation}' ]; # **BOOLEAN** # Allow %INCLUDE of URLs. This is disabled by default, because it is possible # to mount a denial-of-service (DoS) attack on a Foswiki site using INCLUDE and # URLs. Only enable it if you are in an environment where a DoS attack is not # a high risk. #

You may also need to configure the proxy settings ({PROXY}{HOST} and # {PROXY}{PORT}) if your server is behind a firewall and you allow %INCLUDE of # external webpages (see Proxies). $Foswiki::cfg{INCLUDE}{AllowURLs} = $FALSE; # **BOOLEAN** # Used to disallow the use of SCRIPT and LITERAL tags in topics by removing # them from the body of topics during rendering. # This setting is fundamentally unsafe and is now # DEPRECATED - use SafeWikiPlugin instead. $Foswiki::cfg{AllowInlineScript} = $TRUE; # **BOOLEAN EXPERT** # If a login name (or an internal user id) cannot be mapped to a wikiname, # then the user is unknown. By default the user will be displayed using # whatever identity is stored for them. For security reasons you may want # to obscure this stored id by setting this option to true. $Foswiki::cfg{RenderLoggedInButUnknownUsers} = $FALSE; # **BOOLEAN EXPERT** # Remove .. from %INCLUDE{filename}%, to stop includes # of relative paths. $Foswiki::cfg{DenyDotDotInclude} = $TRUE; # **REGEX EXPERT** # Filter-in regex for uploaded (attached) file names. This is a filter # in, so any files that match this filter will be renamed on upload # to prevent upload of files with the same file extensions as executables. #

NOTE: Be sure to update # this list with any configuration or script filetypes that are # automatically run by your web server. $Foswiki::cfg{UploadFilter} = qr/^(\.htaccess|.*\.(?i)(?:php[0-9s]?(\..*)?|[sp]htm[l]?(\..*)?|pl|py|cgi))$/; # **REGEX EXPERT** # Filter-out regex for webnames, topic names, file attachment names, usernames, # include paths and skin names. This is a filter out, so if any of the # characters matched by this expression are seen in names, they will be # removed. $Foswiki::cfg{NameFilter} = qr/[\s\*?~^\$@%`"'&;|<>\[\]#\x00-\x1f]/; # **BOOLEAN EXPERT** # If this is set, then the search module will use more relaxed # rules governing regular expressions searches. $Foswiki::cfg{ForceUnsafeRegexes} = $FALSE; # **BOOLEAN EXPERT** # Build the path to /foswiki/bin from the URL that was used to get this # far. This can be useful when rewriting rules or redirection are used # to shorten URLs. Note that displayed links are incorrect after failed # authentication if this is set, so unless you really know what you are # doing, leave it alone. $Foswiki::cfg{GetScriptUrlFromCgi} = $FALSE; # **BOOLEAN EXPERT** # Draining STDIN may be necessary if the script is called due to a # redirect and the original query was a POST. In this case the web # server is waiting to write the POST data to this script's STDIN, # but CGI.pm won't drain STDIN as it is seeing a GET because of the # redirect, not a POST. Enable this only in case a Foswiki script # hangs. $Foswiki::cfg{DrainStdin} = $FALSE; # **BOOLEAN EXPERT** # Remove port number from URL. If set, and a URL is given with a port # number e.g. http://my.server.com:8080/foswiki/bin/view, this will strip # off the port number before using the url in links. $Foswiki::cfg{RemovePortNumber} = $FALSE; # **BOOLEAN EXPERT** # Allow the use of URLs in the redirectto parameter to the # save script, and in topic parameter to the # view script. WARNING: Enabling this feature makes it # very easy to build phishing pages using the wiki, so in general, # public sites should not enable it. Note: It is possible to # redirect to a topic regardless of this setting, such as # topic=OtherTopic or redirectto=Web.OtherTopic. # To enable redirection to a list of trusted URLs, keep this setting # disabled and set the {PermittedRedirectHostUrls}. $Foswiki::cfg{AllowRedirectUrl} = $FALSE; # **BOOLEAN EXPERT** # Some authentication systems do not allow parameters to be passed in # the target URL to be redirected to after authentication. In this case, # Foswiki can be configured to encode the address of the parameter cache # in the path information of the URL. Note that if you are using Apache # rewriting rules, this may not work. $Foswiki::cfg{UsePathForRedirectCache} = $FALSE; # **REGEX EXPERT** # Defines the filter-in regexp that must match the names of environment # variables that can be seen using the %ENV{}% macro. Set it to # '^.*$' to allow all environment variables to be seen (not recommended). $Foswiki::cfg{AccessibleENV} = '^(HTTP_\w+|REMOTE_\w+|SERVER_\w+|REQUEST_\w+|MOD_PERL|FOSWIKI_ACTION|PATH_INFO)$'; #---++ Proxies # Some environments require outbound HTTP traffic to go through a proxy # server. (e.g. http://proxy.your.company). # **STRING 30** # Hostname or address of the proxy server. # CAUTION This setting can be overridden by a PROXYHOST setting # in SitePreferences. Make sure you delete the setting from there if # you are using a SitePreferences topic from a previous release of Foswiki. # If your proxy requires authentication, simply put it in the URL, as in: # http://username:password@proxy.your.company. $Foswiki::cfg{PROXY}{HOST} = ''; # **STRING 30** # Some environments require outbound HTTP traffic to go through a proxy # server. Set the port number here (e.g: 8080). # CAUTION This setting can be overridden by a PROXYPORT setting # in SitePreferences. Make sure you delete the setting from there if you # are using a SitePreferences topic from a previous release of Foswiki. $Foswiki::cfg{PROXY}{PORT} = ''; #---++ Anti-spam #

Foswiki incorporates some simple anti-spam measures to protect # e-mail addresses and control the activities of benign robots. These # should be enough to handle intranet requirements. Administrators of # public (internet) sites are strongly recommended to install # # AntiWikiSpamPlugin

# **STRING 50** # Text added to e-mail addresses to prevent spambots from grabbing # addresses e.g. set to 'NOSPAM' to get fred@user.co.ru # rendered as fred@user.coNOSPAM.ru $Foswiki::cfg{AntiSpam}{EmailPadding} = ''; # **BOOLEAN** # Normally Foswiki stores the user's sensitive information (such as their e-mail # address) in a database out of public view. This is to help prevent e-mail # spam and identity fraud.
# If that is not a risk for you (e.g. you are behind a firewall) and you # are happy for e-mails to be made public to all Foswiki users, # then you can set this option.
# Note that if this option is set, then the user parameter to # %USERINFO is ignored. $Foswiki::cfg{AntiSpam}{HideUserDetails} = $TRUE; # **BOOLEAN** # By default Foswiki will also manipulate e-mail addresses to reduce the harvesting # of e-mail addresses. Foswiki will encode all non-alphanumeric characters to their # HTML entity equivalent. e.g. @ becomes &#64; This is not completely effective, # however it can prevent some primitive spambots from seeing the addresses. # More advanced bots will still collect addresses. $Foswiki::cfg{AntiSpam}{EntityEncode} = $TRUE; # **BOOLEAN** # By default, Foswiki doesn't do anything to stop robots, such as those used # by search engines, from visiting "normal view" pages. # If you disable this option, Foswiki will generate a META tag to tell robots # not to index pages.
# Inappropriate pages (like the raw and edit views) are always protected from # being indexed.
# Note that for full protection from robots you should also use robots.txt # (there is an example in the root of your Foswiki installation). $Foswiki::cfg{AntiSpam}{RobotsAreWelcome} = $TRUE; #---+ Logging and Statistics # **SELECTCLASS none,Foswiki::Logger::*,Foswiki::Logger::PlainFile::* ** # Foswiki supports different implementations of log files. It can be # useful to be able to plug in a database implementation, for example, # for a large site, or even provide your own custom logger. Select the # implementation to be used here. Most sites should be OK with the # PlainFile logger, which automatically rotates the logs every month.

# The PlainFile::Obfuscating logger is identical to the PlainFile # logger except that IP addresses are either obfuscated by replacing the IP Address # with a MD5 Hash, or by completely masking it to x.x.x.x. If your regulatory domain # prohibits tracking of IP Addresses, use the Obfuscating logger. Note that # Authentication Errors are never obfuscated.

# Note: the Foswiki 1.0 implementation of logfiles is still supported, # through use of the Foswiki::Logger::Compatibility logger. # Foswiki will automatically select the Compatibility logger if it detects # a setting for {WarningFileName} in your LocalSite.cfg. # You are recommended to change to the PlainFile logger at your earliest # convenience by removing {WarningFileName}, # {LogFileName} and {DebugFileName} # from LocalSite.cfg and re-running configure. $Foswiki::cfg{Log}{Implementation} = 'Foswiki::Logger::PlainFile'; # **PATH** # Directory where log files will be written. Log files are automatically # cycled once a month. $Foswiki::cfg{Log}{Dir} = '$Foswiki::cfg{WorkingDir}/logs'; # **BOOLEAN DISPLAY_IF /PlainFile::Obfuscating/i.test({Log}{Implementation})** # The Obfuscating logger can either replace IP addresses with a hashed address # that cannot be easily reversed to the original IP, or the IP address can # be completely masked as x.x.x.x. Enable this parameter to replace # The IP address with the literal string x.x.x.x. $Foswiki::cfg{Log}{Obfuscating}{MaskIP} = $FALSE; # **PERL EXPERT** # Whether or not to log different actions in the events log. # Information in the events log is used in gathering web statistics, # and is useful as an audit trail of Foswiki activity. $Foswiki::cfg{Log}{Action} = { view => 1, search => 1, changes => 1, rdiff => 1, compare => 1, edit => 1, save => 1, upload => 1, attach => 1, rename => 1, register => 1, rest => 1, viewfile => 1, }; # **NUMBER EXPERT** # Number of top viewed topics to show in statistics topic $Foswiki::cfg{Stats}{TopViews} = 10; # **NUMBER EXPERT** # Number of top contributors to show in statistics topic $Foswiki::cfg{Stats}{TopContrib} = 10; # **SELECT Prohibited, Allowed, Always EXPERT** # Set this parameter to Allowed if you want the statistics script to create a # missing WebStatistics topic only when the parameter autocreate=1 is supplied. # Set it to Always if a missing WebStatistics topic should be created unless # overridden by URL parameter 'autocreate=0'. Prohibited is # the previous behavior and is the default. $Foswiki::cfg{Stats}{AutoCreateTopic} = 'Prohibited'; # **STRING 20 EXPERT** # If this is set to the name of a Group, then the statistics script will only run for # members of the specified and the AdminGroup. Ex. Set to AdminGroup to restrict # statistics to administrators. Default is un-set. Anyone can run statistics. $Foswiki::cfg{Stats}{StatisticsGroup} = ''; # **STRING 20 EXPERT** # Name of statistics topic. Note: If you change the name of the statistics topic # you must also rename the WebStatistics topic in each web, and the DefaultWebStatistics topic # in the System web (and possibly in the Main web). $Foswiki::cfg{Stats}{TopicName} = 'WebStatistics'; ############################################################################# #---+ Internationalisation -- TABS #---++ Languages # **BOOLEAN** #

Enable user interface internationalisation, i.e. presenting the user # interface in the users own language(s). Some languages require the # Locale::Maketext::Lexicon and Encode/MapUTF8 Perl # modules to be installed.

$Foswiki::cfg{UserInterfaceInternationalisation} = $FALSE; # **BOOLEAN EXPERT DISPLAY_IF {UserInterfaceInternationalisation}** #

Enable compilation of .po string files into compressed .mo files. # This can result in a significant performance improvement for I18N, but has also been # reported to cause issues on some systems. So for now this is considered experimental. # Note that if string files are being edited, it requires that configure be rerun to recompile # modified files. Disable this option to prevent compling of string files. If disabled, # stale <language>.mo files should be removed from the # Foswiki locale directory so that the modified .po file will be used. $Foswiki::cfg{LanguageFileCompression} = $FALSE; # *LANGUAGES* Marker used by bin/configure script - do not remove! #

If {UserInterfaceInternationalisation} is enabled, the following # settings control the languages that are available in the # user interface. Check every language that you want your site to support.

#

Allowing all languages is the best for really international # sites, but for best performance you should enable only the languages you # really need. English is the default language, and is always enabled.

#

{LocalesDir} is used to find the languages supported in your installation, # so if the list of available languages is empty, it's probably because # {LocalesDir} is pointing to the wrong place.

#---++ Locale #

Enable operating system level locales and internationalisation support # for 8-bit character sets. This may be required for correct functioning # of the programs that Foswiki calls when your wiki content uses # international character sets.

# **BOOLEAN** # Enable the used of {Site}{Locale} $Foswiki::cfg{UseLocale} = $FALSE; # **STRING 50 DISPLAY_IF {UseLocale}** # Site-wide locale - used by Foswiki and external programs such as grep, and to # specify the character set in which content must be presented for the user's # web browser. #
# Note that {Site}{Locale} is ignored unless {UseLocale} is set. #
# Locale names are not standardised. On Unix/Linux check 'locale -a' on # your system to see which locales are supported by your system. # You may also need to check what charsets your browsers accept - the # 'preferred MIME names' at http://www.iana.org/assignments/character-sets # are a good starting point. #
# WARNING: Topics are stored in site character set format, so data # conversion of file names and contents will be needed if you change # locales after creating topics whose names or contents include 8-bit # characters. #
# Examples:
# en_US.ISO-8859-1 - Standard US ISO-8859-1 (default)
# de_AT.ISO-8859-15 - Austria with ISO-8859-15 for Euro
# ru_RU.KOI8-R - Russia
# ja_JP.eucjp - Japan
# C - English only; no I18N features regarding character # encodings and external programs.
# UTF-8 locale like en_US.utf8 is still considered experimental $Foswiki::cfg{Site}{Locale} = 'en_US.ISO-8859-1'; # **STRING 50 ** # Set this to match your site locale (from 'locale -a') # whose character set is not supported by your available perl conversion module # (i.e. Encode for Perl 5.8 or higher, or Unicode::MapUTF8 for other Perl # versions). For example, if the locale 'ja_JP.eucjp' exists on your system # but only 'euc-jp' is supported by Unicode::MapUTF8, set this to 'euc-jp'. # If you don't define it, it will automatically be defaulted to iso-8859-1
$Foswiki::cfg{Site}{CharSet} = undef; # **SELECT gmtime,servertime** # Set the timezone (this only effects the display of times, # all internal storage is still in GMT). May be gmtime or servertime $Foswiki::cfg{DisplayTimeValues} = 'gmtime'; # **SELECT $day $month $year, $year-$mo-$day, $year/$mo/$day, $year.$mo.$day** # Set the default format for dates. The traditional Foswiki format is # '$day $month $year' (31 Dec 2007). The ISO format '$year-$mo-$day' # (2007-12-31) is recommended for non English language Foswikis. Note that $mo # is the month as a two digit number. $month is the three first letters of # English name of the month $Foswiki::cfg{DefaultDateFormat} = '$day $month $year'; # **BOOLEAN EXPERT** # Disable to force explicit listing of national chars in # regexes, rather than relying on locale-based regexes. Intended # for Perl 5.6 or higher on platforms with broken locales: should # only be disabled if you have locale problems. $Foswiki::cfg{Site}{LocaleRegexes} = $TRUE; # **STRING DISPLAY_IF ! {UseLocale} || ! {Site}{LocaleRegexes} ** # If a suitable working locale is not available (i.e. {UseLocale} # is disabled), OR you are using Perl 5.005 (with or without working # locales), OR {Site}{LocaleRegexes} is disabled, you can use WikiWords with # accented national characters by putting any '8-bit' accented # national characters within these strings - i.e. {UpperNational} # should contain upper case non-ASCII letters. This is termed # 'non-locale regexes' mode. # If 'non-locale regexes' is in effect, WikiWord linking will work, # but some features such as sorting of WikiWords in search results # may not. These features depend on {UseLocale}, which can be set # independently of {Site}{{LocaleRegexes}, so they will work with Perl # 5.005 as long as {UseLocale} is set and you have working # locales. $Foswiki::cfg{UpperNational} = ''; # **STRING DISPLAY_IF ! {UseLocale}** # $Foswiki::cfg{LowerNational} = ''; # **BOOLEAN** # Change non-existent plural topic name to singular, # e.g. TestPolicies to TestPolicy. Only works in English. $Foswiki::cfg{PluralToSingular} = $TRUE; ############################################################################# #---+ Store #

Foswiki supports different back-end store implementations.

# **SELECTCLASS Foswiki::Store::* ** # Store implementation. # $Foswiki::cfg{Store}{Implementation} = 'Foswiki::Store::RcsWrap'; $Foswiki::cfg{Store}{Implementation} = 'Foswiki::Store::RcsLite' if ($^O eq 'MSWin32'); # **BOOLEAN** # Set to enable hierarchical webs. Without this setting, Foswiki will only # allow a single level of webs. If you set this, you can use # multiple levels, like a directory tree, i.e. webs within webs. $Foswiki::cfg{EnableHierarchicalWebs} = 1; # **NUMBER EXPERT** # Number of seconds to remember changes for. This doesn't affect revision # histories, which always remember when a file changed. It only affects # the number of changes that are cached for fast access by the 'changes' and # 'statistics' scripts, and for use by extensions such as the change # notification mailer. It should be no shorter than the interval between runs # of these scripts. $Foswiki::cfg{Store}{RememberChangesFor} = 31 * 24 * 60 * 60; # **SELECTCLASS Foswiki::Store::SearchAlgorithms::*** # This is the algorithm used to perform plain text (not query) searches. # Foswiki has two built-in search algorithms, both of which are designed to # work with the default flat-file database. #
  1. The default 'Forking' algorithm, which forks a subprocess that # runs a 'grep' command, is recommended for Linux/Unix. # Forking may also work OK on Windows if you keep the directory path to # Foswiki very short.
  2. #
  3. The 'PurePerl' algorithm, which is written in Perl and # usually only used for native Windows installations where forking # is not stable, due to limitations in the length of command lines. #
# On Linux/Unix you will be just fine with the 'Forking' implementation. # However if you find searches run very slowly, you may want to try a # different algorithm, which may work better on your configuration. # For example, there is an alternative algorithm available from # # http://foswiki.org/Extensions/NativeSearchContrib , that usually # gives better performance with mod_perl and Speedy CGI, but requires root # access to install. #

# Other store implementations and indexing search engines (for example, # # http://foswiki.org/Extensions/KinoSearchContrib) may come with their # own search algorithms. $Foswiki::cfg{Store}{SearchAlgorithm} = 'Foswiki::Store::SearchAlgorithms::Forking'; $Foswiki::cfg{Store}{SearchAlgorithm} = 'Foswiki::Store::SearchAlgorithms::PurePerl' if ($^O eq 'MSWin32'); # bodgey up a default location for grep my $grepDefaultPath = '/bin/'; $grepDefaultPath = '/usr/bin/' if ($^O eq 'darwin'); $grepDefaultPath = 'c:/PROGRA~1/GnuWin32/bin/' if ($^O eq 'MSWin32'); # **COMMAND EXPERT DISPLAY_IF {Store}{SearchAlgorithm}=='Foswiki::Store::SearchAlgorithms::Forking' ** # Full path to GNU-compatible egrep program. This is used for searching when # {SearchAlgorithm} is 'Foswiki::Store::SearchAlgorithms::Forking'. # %CS{|-i}% will be expanded # to -i for case-sensitive search or to the empty string otherwise. # Similarly for %DET, which controls whether matching lines are required. # (see the documentation on these options with GNU grep for details). $Foswiki::cfg{Store}{EgrepCmd} = $grepDefaultPath.'grep -E %CS{|-i}% %DET{|-l}% -H -- %TOKEN|U% %FILES|F%'; # **COMMAND EXPERT DISPLAY_IF {Store}{SearchAlgorithm}=='Foswiki::Store::SearchAlgorithms::Forking'** # Full path to GNU-compatible fgrep program. This is used for searching when # {SearchAlgorithm} is 'Foswiki::Store::SearchAlgorithms::Forking'. $Foswiki::cfg{Store}{FgrepCmd} = $grepDefaultPath.'grep -F %CS{|-i}% %DET{|-l}% -H -- %TOKEN|U% %FILES|F%'; # **SELECTCLASS Foswiki::Store::QueryAlgorithms::*** # This is the algorithm used to perform query searches. The default Foswiki # algorithm (BruteForce) works well, but is not particularly fast (it is # based on plain-text searching). You may be able to select a different # algorithm here, depending on what alternative implementations have been # installed. $Foswiki::cfg{Store}{QueryAlgorithm} = 'Foswiki::Store::QueryAlgorithms::BruteForce'; # **SELECTCLASS Foswiki::Prefs::*RAM* EXPERT** # The algorithm used to store preferences. The default algorithm reads # topics each time to access preferences. A caching algorithm that uses # BerkeleyDB is also available from the PrefsCachePlugin. This algorithm # is faster, but requires BerkeleyDB to be installed. $Foswiki::cfg{Store}{PrefsBackend} = 'Foswiki::Prefs::TopicRAM'; # **PERL EXPERT** # Hash of full class names of objects that want to listen to changes to # the store. The Key is the Class name, and the value is an integer, used # to define the execution order (low values are executed first). For example, # { 'Foswiki::Contrib::DBIStoreContrib::Listener' => 100, # 'Foswiki::Plugins::MongoDBPlugin::Listener' => 200 }. $Foswiki::cfg{Store}{Listeners} = {}; # **BOOLEAN EXPERT DISPLAY_IF /Foswiki::Store::Rcs/.test({Store}{Implementation})** # Some systems will override the default umask to a highly restricted setting, # which will block the application of the file and directory permissions. # If mod_suexec is enabled, the Apache umask directive will also be ignored. # Enable this setting if the checker reports that the umask is in conflict with # the permissions, or adust the expert settings {RCS}{dirPermission} and # {RCS}{filePermission} to be consistent with the system umask. $Foswiki::cfg{RCS}{overrideUmask}= $FALSE; # **OCTAL EXPERT DISPLAY_IF /Foswiki::Store::Rcs/.test({Store}{Implementation})** # File security for new directories created by RCS stores. You may have # to adjust these # permissions to allow (or deny) users other than the webserver user access # to directories that Foswiki creates. This is an octal number # representing the standard UNIX permissions (e.g. 755 == rwxr-xr-x) $Foswiki::cfg{RCS}{dirPermission}= 0755; # **OCTAL EXPERT DISPLAY_IF /Foswiki::Store::Rcs/.test({Store}{Implementation})** # File security for new files created by RCS stores. You may have to adjust these # permissions to allow (or deny) users other than the webserver user access # to files that Foswiki creates. This is an octal number # representing the standard UNIX permissions (e.g. 644 == rw-r--r--) $Foswiki::cfg{RCS}{filePermission}= 0644; # **BOOLEAN EXPERT DISPLAY_IF /Foswiki::Store::Rcs/.test({Store}{Implementation})** # Some file-based Store implementations (RcsWrap and RcsLite) store # attachment meta-data separately from the actual attachments. # This means that it is possible to have a file in an attachment directory # that is not seen as an attachment by Foswiki. Sometimes it is desirable to # be able to simply copy files into a directory and have them appear as # attachments, and that's what this feature allows you to do. # Considered experimental. $Foswiki::cfg{RCS}{AutoAttachPubFiles} = $FALSE; # **STRING 20 EXPERT DISPLAY_IF {Store}{Implementation}=='Foswiki::Store::RcsWrap'** # Specifies the extension to use on RCS files. Set to -x,v on windows, leave # blank on other platforms. $Foswiki::cfg{RCS}{ExtOption} = ""; # **REGEX EXPERT DISPLAY_IF /Foswiki::Store::Rcs/.test({Store}{Implementation})** # Perl regular expression matching suffixes valid on plain text files # Defines which attachments will be treated as ASCII in RCS. This is a # filter in, so any filenames that match this expression will # be treated as ASCII. $Foswiki::cfg{RCS}{asciiFileSuffixes} = qr/\.(txt|html|xml|pl)$/; # **BOOLEAN DISPLAY_IF {Store}{Implementation}=='Foswiki::Store::RcsWrap'** # Set this if your RCS cannot check out using the -p option. # May be needed in some windows installations (not required for cygwin) $Foswiki::cfg{RCS}{coMustCopy} = $FALSE; # **COMMAND DISPLAY_IF {Store}{Implementation}=='Foswiki::Store::RcsWrap'** # RcsWrap initialise a file as binary. # %FILENAME|F% will be expanded to the filename. $Foswiki::cfg{RCS}{initBinaryCmd} = "/usr/bin/rcs $Foswiki::cfg{RCS}{ExtOption} -i -t-none -kb %FILENAME|F%"; # **COMMAND DISPLAY_IF {Store}{Implementation}=='Foswiki::Store::RcsWrap'** # RcsWrap initialise a topic file. $Foswiki::cfg{RCS}{initTextCmd} = "/usr/bin/rcs $Foswiki::cfg{RCS}{ExtOption} -i -t-none -ko %FILENAME|F%"; # **COMMAND DISPLAY_IF {Store}{Implementation}=='Foswiki::Store::RcsWrap'** # RcsWrap uses this on Windows to create temporary binary files during upload. $Foswiki::cfg{RCS}{tmpBinaryCmd} = "/usr/bin/rcs $Foswiki::cfg{RCS}{ExtOption} -kb %FILENAME|F%"; # **COMMAND EXPERT** # RcsWrap check-in. # %USERNAME|S% will be expanded to the username. # %COMMENT|U% will be expanded to the comment. $Foswiki::cfg{RCS}{ciCmd} = "/usr/bin/ci $Foswiki::cfg{RCS}{ExtOption} -m%COMMENT|U% -t-none -w%USERNAME|S% -u %FILENAME|F%"; # **COMMAND DISPLAY_IF {Store}{Implementation}=='Foswiki::Store::RcsWrap'** # RcsWrap check in, forcing the date. # %DATE|D% will be expanded to the date. $Foswiki::cfg{RCS}{ciDateCmd} = "/usr/bin/ci $Foswiki::cfg{RCS}{ExtOption} -m%COMMENT|U% -t-none -d%DATE|D% -u -w%USERNAME|S% %FILENAME|F%"; # **COMMAND DISPLAY_IF {Store}{Implementation}=='Foswiki::Store::RcsWrap'** # RcsWrap check out. # %REVISION|N% will be expanded to the revision number $Foswiki::cfg{RCS}{coCmd} = "/usr/bin/co $Foswiki::cfg{RCS}{ExtOption} -p%REVISION|N% -ko %FILENAME|F%"; # **COMMAND DISPLAY_IF {Store}{Implementation}=='Foswiki::Store::RcsWrap'** # RcsWrap file history. $Foswiki::cfg{RCS}{histCmd} = "/usr/bin/rlog $Foswiki::cfg{RCS}{ExtOption} -h %FILENAME|F%"; # **COMMAND DISPLAY_IF {Store}{Implementation}=='Foswiki::Store::RcsWrap'** # RcsWrap revision info about the file. $Foswiki::cfg{RCS}{infoCmd} = "/usr/bin/rlog $Foswiki::cfg{RCS}{ExtOption} -r%REVISION|N% %FILENAME|F%"; # **COMMAND DISPLAY_IF {Store}{Implementation}=='Foswiki::Store::RcsWrap'** # RcsWrap revision info about the revision that existed at a given date. # %REVISIONn|N% will be expanded to the revision number. # %CONTEXT|N% will be expanded to the number of lines of context. $Foswiki::cfg{RCS}{rlogDateCmd} = "/usr/bin/rlog $Foswiki::cfg{RCS}{ExtOption} -d%DATE|D% %FILENAME|F%"; # **COMMAND DISPLAY_IF {Store}{Implementation}=='Foswiki::Store::RcsWrap'** # RcsWrap differences between two revisions. $Foswiki::cfg{RCS}{diffCmd} = "/usr/bin/rcsdiff $Foswiki::cfg{RCS}{ExtOption} -q -w -B -r%REVISION1|N% -r%REVISION2|N% -ko --unified=%CONTEXT|N% %FILENAME|F%"; # **COMMAND DISPLAY_IF {Store}{Implementation}=='Foswiki::Store::RcsWrap'** # RcsWrap lock a file. $Foswiki::cfg{RCS}{lockCmd} = "/usr/bin/rcs $Foswiki::cfg{RCS}{ExtOption} -l %FILENAME|F%"; # **COMMAND DISPLAY_IF {Store}{Implementation}=='Foswiki::Store::RcsWrap'** # RcsWrap unlock a file. $Foswiki::cfg{RCS}{unlockCmd} = "/usr/bin/rcs $Foswiki::cfg{RCS}{ExtOption} -u %FILENAME|F%"; # **COMMAND DISPLAY_IF {Store}{Implementation}=='Foswiki::Store::RcsWrap'** # RcsWrap break a file lock. $Foswiki::cfg{RCS}{breaklockCmd} = "/usr/bin/rcs $Foswiki::cfg{RCS}{ExtOption} -u -M %FILENAME|F%"; # **COMMAND DISPLAY_IF {Store}{Implementation}=='Foswiki::Store::RcsWrap'** # RcsWrap delete a specific revision. $Foswiki::cfg{RCS}{delRevCmd} = "/usr/bin/rcs $Foswiki::cfg{RCS}{ExtOption} -o%REVISION|N% %FILENAME|F%"; ############################################################################# #---+ Tuning #---++ HTTP Compression #

Expert settings controlling compression of the generated HTML.

# **BOOLEAN** # Enable gzip/deflate page compression. Modern browsers can uncompress content # encoded using gzip compression. You will save a lot of bandwidth by compressing # pages. This makes most sense when enabling page caching as well as these are # stored in compressed format by default when {HttpCompress} is enabled. # Note that only pages without any 'dirty areas' will be compressed. Any other page # will be transmitted uncompressed. $Foswiki::cfg{HttpCompress} = $FALSE; #---++ HTML Page Layout #

Expert setting controlling the layout of the generated HTML.

# **BOOLEAN** #

{MergeHeadAndScriptZones} is provided to maintain compatibility with legacy extensions that use ADDTOHEAD to add <script> markup and require content that is now in the script zone.

#

Normally, dependencies between individual ADDTOZONE statements are resolved within each zone. However, if {MergeHeadAndScriptZones} is enabled, then head content which requires an id that only exists in script (and vice-versa) will be re-ordered to satisfy any dependency.

#

{MergeHeadAndScriptZones} will be removed from a future version of Foswiki.

$Foswiki::cfg{MergeHeadAndScriptZones} = $FALSE; #---++ Cache #

Foswiki includes built-in support for caching HTML pages. This can # dramatically increase performance, especially if there are a lot more page # views than changes.

# The cache has a number of setup and tuning parameters. You should read # Page Caching on # foswiki.org (or your local copy of this page in the System web) before # enabling the cache. It is important that you read this topic carefully # as the cache also has some major disadvantages with respect to formatted # searches. # **BOOLEAN** # This setting will switch on/off caching. $Foswiki::cfg{Cache}{Enabled} = $FALSE; # **PATH DISPLAY_IF {Cache}{Enabled}** # Specify the directory where binary large objects will be stored. $Foswiki::cfg{Cache}{RootDir} = '$Foswiki::cfg{WorkingDir}/cache'; # **STRING 80 DISPLAY_IF {Cache}{Enabled}** # List of those topics that have a manual dependency on every topic # in a web. Web dependencies can also be specified using the WEBDEPENDENCIES # preference, which overrides this setting. $Foswiki::cfg{Cache}{WebDependencies} = 'WebRss, WebAtom, WebTopicList, WebIndex, WebSearch, WebSearchAdvanced'; # **REGEX DISPLAY_IF {Cache}{Enabled}** # Exclude topics that match this regular expression from the dependency # tracker. $Foswiki::cfg{Cache}{DependencyFilter} = '$Foswiki::cfg{SystemWebName}\..*|$Foswiki::cfg{TrashWebName}\..*|TWiki\..*'; # **SELECTCLASS Foswiki::PageCache::DBI::* DISPLAY_IF {Cache}{Enabled}** # Select the cache implementation. The default page cache implementation # is based on DBI (http://dbi.perl.org) which requires a working DBI driver to # connect to a database. This database will hold all cached data as well as the # maintenance data to keep the cache correct while content changes in the wiki. # Recommended drivers are DBD::mysql, DBD::Pg, DBD::SQLite or any other database driver connecting # to a real SQL engine. $Foswiki::cfg{Cache}{Implementation} = 'Foswiki::PageCache::DBI::Generic'; # **STRING 80 DISPLAY_IF {Cache}{Enabled} && /Foswiki::PageCache::DBI.*/.test({Cache}{Implementation}) ** # Prefix used naming tables and indexes generated in the database. $Foswiki::cfg{Cache}{DBI}{TablePrefix} = 'foswiki_cache'; # **STRING 80 DISPLAY_IF {Cache}{Enabled} && {Cache}{Implementation} == 'Foswiki::PageCache::DBI::Generic' ** # Generic database driver. See the docu of your DBI driver for the exact syntax of the DSN parameter string. $Foswiki::cfg{Cache}{DBI}{DSN} = ''; # **STRING 80 DISPLAY_IF {Cache}{Enabled} && {Cache}{Implementation} == 'Foswiki::PageCache::DBI::Generic' ** # Database user name. Add a value if your database needs authentication $Foswiki::cfg{Cache}{DBI}{Username} = ''; # **PASSWORD 80 DISPLAY_IF {Cache}{Enabled} && {Cache}{Implementation} == 'Foswiki::PageCache::DBI::Generic' ** # Database user password. Add a value if your database needs authentication $Foswiki::cfg{Cache}{DBI}{Password} = ''; # **STRING 80 DISPLAY_IF {Cache}{Enabled} && {Cache}{Implementation} == 'Foswiki::PageCache::DBI::SQLite'** # Name of the SQL $Foswiki::cfg{Cache}{DBI}{SQLite}{Filename} = '$Foswiki::cfg{WorkingDir}/sqlite.db'; # **STRING 80 DISPLAY_IF {Cache}{Enabled} && {Cache}{Implementation} == 'Foswiki::PageCache::DBI::MySQL' ** # Name or IP address of the database server $Foswiki::cfg{Cache}{DBI}{MySQL}{Host} = 'localhost'; # **STRING 80 DISPLAY_IF {Cache}{Enabled} && {Cache}{Implementation} == 'Foswiki::PageCache::DBI::MySQL' ** # Port on the database server to connect to $Foswiki::cfg{Cache}{DBI}{MySQL}{Port} = ''; # **STRING 80 DISPLAY_IF {Cache}{Enabled} && {Cache}{Implementation} == 'Foswiki::PageCache::DBI::MySQL' ** # Name of the database on the server host. $Foswiki::cfg{Cache}{DBI}{MySQL}{Database} = ''; # **STRING 80 DISPLAY_IF {Cache}{Enabled} && {Cache}{Implementation} == 'Foswiki::PageCache::DBI::MySQL' ** # Database user name. Add a value if your database needs authentication $Foswiki::cfg{Cache}{DBI}{MySQL}{Username} = ''; # **PASSWORD 80 DISPLAY_IF {Cache}{Enabled} && {Cache}{Implementation} == 'Foswiki::PageCache::DBI::MySQL' ** # Database user password. Add a value if your database needs authentication $Foswiki::cfg{Cache}{DBI}{MySQL}{Password} = ''; # **STRING 80 DISPLAY_IF {Cache}{Enabled} && {Cache}{Implementation} == 'Foswiki::PageCache::DBI::PostgreSQL' ** # Name or IP address of the database server $Foswiki::cfg{Cache}{DBI}{MySQL}{Host} = 'localhost'; # **STRING 80 DISPLAY_IF {Cache}{Enabled} && {Cache}{Implementation} == 'Foswiki::PageCache::DBI::PostgreSQL' ** # Port on the database server to connect to $Foswiki::cfg{Cache}{DBI}{PostgreSQL}{Port} = ''; # **STRING 80 DISPLAY_IF {Cache}{Enabled} && {Cache}{Implementation} == 'Foswiki::PageCache::DBI::PostgreSQL' ** # Name of the database on the server host. $Foswiki::cfg{Cache}{DBI}{PostgreSQL}{Database} = ''; # **STRING 80 DISPLAY_IF {Cache}{Enabled} && {Cache}{Implementation} == 'Foswiki::PageCache::DBI::PostgreSQL' ** # Database user name. Add a value if your database needs authentication $Foswiki::cfg{Cache}{DBI}{PostgreSQL}{Username} = ''; # **PASSWORD 80 DISPLAY_IF {Cache}{Enabled} && {Cache}{Implementation} == 'Foswiki::PageCache::DBI::PostgreSQL' ** # Database user password. Add a value if your database needs authentication $Foswiki::cfg{Cache}{DBI}{PostgreSQL}{Password} = ''; ############################################################################# #---+ Mail -- TABS #

Settings controlling if and how Foswiki sends email, and the proxies used # to access external web pages.

#---++ Email general #

Settings controlling if and how Foswiki handles email including the identity of the sender # and other expert settings controlling the email process.

# **BOOLEAN** # Enable email globally. Un-check this option to disable all outgoing # email from Foswiki $Foswiki::cfg{EnableEmail} = $TRUE; # **STRING 30** # Wiki administrator's e-mail address e.g. webmaster@example.com # (used in %WIKIWEBMASTER%) # NOTE: must be a single valid email address $Foswiki::cfg{WebMasterEmail} = ''; # **STRING 30** # Wiki administrator's name address, for use in mails (first name and # last name, e.g. Fred Smith) (used in %WIKIWEBMASTERNAME%) $Foswiki::cfg{WebMasterName} = 'Wiki Administrator'; # **BOOLEAN EXPERT** # Remove IMG tags in notification mails. $Foswiki::cfg{RemoveImgInMailnotify} = $TRUE; # **STRING 20 EXPERT** # Name of topic in each web that has notification registrations. # If you change this setting you will have to # use Foswiki to manually rename the topic in all existing webs $Foswiki::cfg{NotifyTopicName} = 'WebNotify'; # **BOOLEAN EXPERT** # Send email Date header using local "server time" instead of GMT $Foswiki::cfg{Email}{Servertime} = $FALSE; # **REGEX 80 EXPERT** # This parameter is used to determine which Top Level domains are vaild # when auto-linking email addresses. It is also used by UserRegistration to # validate email addresses. Note, this parameter only controls # matching of 3 character and longer TLDs. 2-character country codes and # IP Address domains always permitted. See:
# Valid TLD's at http://data.iana.org/TLD/tlds-alpha-by-domain.txt
# Version 2012022300, Last Updated Thu Feb 23 15:07:02 2012 UTC
$Foswiki::cfg{Email}{ValidTLD} = qr(AERO|ARPA|ASIA|BIZ|CAT|COM|COOP|EDU|GOV|INFO|INT|JOBS|MIL|MOBI|MUSEUM|NAME|NET|ORG|PRO|TEL|TRAVEL|XXX)i; #---++ Email server #

Settings to select the destination mail server or local email agent used for forwarding email.

# **SELECT Net::SMTP,Net::SMTP::SSL,MailProgram ** # Select the method Foswiki will use for sending email. On Unix/Linux hosts # "MailProgram" is generally acceptable. Otherwise choose one of the Email # methods required by your ISP or Email server. # Both of the above methods will perform authentication if a Username and # password are provided below. #