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 Pm Wiki script. Thus they require paths on the server's filesystem.
$PubDirUrlvariables 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 Pm Wiki's pub/ directory (
- is the url that you want people's browsers to use when accessing Pm Wiki, either as a field or farm. It's used whenever Pm Wiki needs to generate a link to another Pm Wiki page or action. Pm Wiki is usually fairly good about "guessing" the correct value for
$ScriptUrlon 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.).
- is the url that refers to the
pubdirectory. 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
- 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.
- 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.
- 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.