<< Layout Variables | PmWiki.Variables | Link Variables >>

When dealing with file or path variables, one has to recognize the difference between working with urls and files on disk. For example:

  • The include() statements are used to include other files (on disk) into the currently running PmWiki script. Thus they require paths on the server's filesystem.
  • The $ScriptUrl and $PubDirUrl variables are used to tell a browser, connecting via the webserver, how to execute the pmwiki script ($ScriptUrl) and the base url for getting files from PmWiki's pub/ directory ($PubDirUrl).

Note that a browser needs a url (http://www.example.com/pmwiki/pub) while an include statement requires a server file path ($FarmD/scripts/something.php).

$ScriptUrl
is the url that you want people's browsers to use when accessing PmWiki, either as a field or farm. It's used whenever PmWiki needs to generate a link to another PmWiki page or action. PmWiki is usually fairly good about "guessing" the correct value for $ScriptUrl on its own, but sometimes an admin needs to set it explicitly because of url manipulations by the webserver (e.g., Cookbook:CleanUrls, mod_rewrite, bizarre PHP configurations, etc.).

$PubDirUrl
is the url that refers to the pub directory. That directory contains all the files and subdirectories that must be directly accessible from a browser (e.g. CSS and HTML files). Most prominent here is the skins subdirectory.

$FarmD
The directory on the server where the farm is located (i.e., the directory containing the farm's copy of pmwiki.php and the scripts/ directory). This directory is automatically determined by pmwiki.php when it runs, and can be used to distinguish the farm's cookbook/ and pub/ subdirectories from a field's subdirectories.

$SkinDirUrl
Set by scripts/skins.php to be the base url of the current skin's directory (i.e., within a 'pub/skins/' directory). This variable is typically used inside of a skin .tmpl file to provide access to .css files and graphic images associated with the skin.

$UploadDir
The directory where uploads are to be stored. Defaults to uploads/ in the pmwiki directory, but can be set to any location on the server. This directory must be writable by the webserver process if uploading is to occur.

See also