Manual:$wgTmpDirectory

From mediawiki.org
Server URLs and file paths: $wgTmpDirectory
The path of the temporary directory.
Introduced in version:pre 1.1.0
Removed in version:still in use
Allowed values:(absolute path)
Default value:The path to the directory for temporary files as determined by wfTempDir()[1] (1.20+)

"{$wgUploadDirectory }/tmp" (pre 1.1-1.19)

(Note: The default value of this variable depends on other variables, such as the values set in Setup.php , after LocalSettings.php is executed)

Details[edit]

MediaWiki version:
1.20

The local filesystem path to a temporary directory. This is required to be writable. It shouldn't be accessible from the web, so try to place it outside of the document root (recommended) or at least deny any access from the web via .htaccess or webserver configuration. Having files from this folder accessible from the web can be a security risk.

$wgTmpDirectory is used by wfTempDir() to control where MediaWiki writes temporary files to, including:

  • Old and new tempfiles for external executable based external diff engines configured by $wgExternalDiffEngine
  • TempFSFile - used for chunked uploading, some transformations, and various parts of the file backend code
  • UID Generator node and lock files.
  • Upload from URL
  • The directory in which a CACHE_DBA cache places its DBA database file. Can be overridden using $wgObjectCaches [CACHE_DBA]['dir']. (removed in 1.23)
  • Importing uploads from XML dumps
  • SvgHandler - used for SVG transformation
  • ...

Common pitfalls[edit]

If you are getting this error, an incorrect setting for $wgTmpDirectory often is the cause:

Warning: rename(/tmp/l10n_cache-en.cdb.tmp.335721450,/tmp/l10n_cache-en.cdb): Operation not permitted in /.../vendor/wikimedia/cdb/src/Writer/DBA.php on line 59

Fatal exception of type MWException: Warning: dba_close(): supplied resource is not a valid DBA identifier resource in /.../vendor/wikimedia/cdb/src/Writer/DBA.php on line 54

Fatal error: Uncaught Cdb\Exception: Unable to move the new CDB file into place. in /.../vendor/wikimedia/cdb/src/Writer/DBA.php:60 

The solution is to set $wgTmpDirectory to a folder, which actually is writable by the webserver user.

Sometimes it is useful to have separate directories for the web server and CLI user, if they require different permissions. For example:

$wgTmpDirectory = $IP . '/images/tmp-' . php_sapi_name();

See task T126736 for more information!

Usage in unsupported MediaWiki versions[edit]

MediaWiki version:
1.19

The path to the temporary directory. When using CACHE_DBA as your $wgMainCacheType , this allows you to select which directory is used.

References[edit]

See also[edit]