Manual:$wgForeignFileRepos

Properties required for all repos

 * class

The class name for the repository. May come from the core or an extension. The core repository classes are LocalRepo, ForeignDBRepo, FSRepo and ForeignAPIRepo.
 * name

A unique name for the repository.

For all core repos

 * url

Base public URL
 * thumbUrl

Base thumb url, if different from url/thumb
 * hashLevels

The number of directory levels for hash-based division of files
 * thumbScriptUrl

The URL for thumb.php (optional, not recommended)
 * transformVia404

Whether to skip media file transformation on parse and tp>Special:MyLanguage/Manual:thumb.php|rely on a 404 handler instead.
 * initialCapital

Equivalent to wgc>Special:MyLanguage/Manual:$wgCapitalLinks|$wgCapitalLinks, determines whether file names implicitly start with a capital letter. The current implementation may give incorrect description page links when the local 2gc>Special:MyLanguage/Manual:$wgCapitalLinks|$wgCapitalLinks and initialCapital are mismatched.
 * pathDisclosureProtection

May be 'paranoid' to remove all parameters from error messages, 'none' to leave the paths in unchanged, or 'simple' to replace paths with place holders. Default for LocalRepo is 'simple'. Note, some image thumbnailing software puts the thumbnail path into the resulting thumb's metadata, so this setting may not provide full protection.
 * descBaseUrl

URL of image description pages, e.g.
 * scriptDirUrl

URL of the MediaWiki installation, equivalent to spc>Special:MyLanguage/Manual:$wgScriptPath|$wgScriptPath, e.g.  
 * articleUrl

Equivalent to ap>Special:MyLanguage/Manual:$wgArticlePath|$wgArticlePath, e.g.  
 * fetchDescription

Fetch the text of the remote file description page. Equivalent to fdc>Special:MyLanguage/Manual:$wgFetchCommonsDescriptions|$wgFetchCommonsDescriptions.
 * descriptionCacheExpiry
 * descriptionCacheExpiry

If set to 0, no caching will be used. Set to 1 or more (seconds) to define how long the local cache of description pages will last. Must set fetchDescription to true to use.

ForeignAPIRepo class

 * apibase

The base URL for the remote repository's API (eg:  ). Only used for ForeignAPIRepo.
 * apiThumbCacheExpiry

How long to cache thumbs locally for. Not setting this or setting to 0 disables local thumb caching

ForeignDBRepo class

 * dbType, dbServer, dbUser, dbPassword, dbName, dbFlags

equivalent to the corresponding member of dbs>Special:MyLanguage/Manual:$wgDBservers|$wgDBservers
 * tablePrefix

Table prefix, the foreign wiki's dbs2>Special:MyLanguage/Manual:$wgDBprefix|$wgDBprefix
 * hasSharedCache

True if the wiki's shared cache is accessible via the local $wgMemc
 * favicon

A favicon for the remote repository

Default value (code in Setup.php) :

Directory permissions
You'll need rw on  and   for whatever user php runs as.

Using files from Wikimedia Commons : ForeignAPIRepo


Since 1.16.0 there is a more convenient shorthand to use Commons as a foreign repository: . ''

You can set your wiki to use media from Wikimedia Commons (or from any other MediaWiki-powered site, see below) directly. However, please beware any legal implications.

To use this, you need: MediaWiki 1.13 or later PHP with JSON support (for the  function). JSON is enabled by default since PHP 5.2.0, you'll need the PECL extension for older versions. Since MediaWiki 1.16, this is no longer necessary; v. 1.16 will use custom (and slower) code if JSON is not available. The remote wiki must also use MediaWiki 1.13 or later; otherwise its  returns <tvar|code> </> and file requests fail silently (i.e. the requested files are just treated as non-existent).

The code below enables media files from Wikimedia Commons on your site. You should place it in you "LocalSettings.php" file:

To pull images from another Wikimedia project, set <tt>apibase</tt> to this wiki's "api.php" file like e.g. <tvar|eg4><tt> https://en.wikipedia.org/w/api.php </tt></>. Example:

To embed an image in your installation, simply use <tt> </tt>.

You may need to configure the mct>Special:MyLanguage/Manual:$wgMainCacheType</>|$wgMainCacheType as well. Default it is set to CACHE_NONE, meaning it will load the image from the remote host on each page load. Similarly, you need to set <tt>apiThumbCacheExpiry</tt> to zero if you prefer to use the foreign thumbnails.

Using files from a database that you can access : ForeignDBRepo
The ForeignDBRepo class is very useful for creating wf>Special:MyLanguage/Manual:Wiki family</>|wiki families. In a wiki family, each wiki will have its own database or table prefix. Using this class, you can make a family member aware of the tables of another family member. Access through ForeignDBRepo is faster than through ForeignAPIRepo. This code should be deployed to LocalSettings.php.

Alternatively, if you have lbfc>Special:MyLanguage/Manual:$wgLBFactoryConf</>|$wgLBFactoryConf set up for multiple wikis, you can use <tt>'class' => 'ForeignDBViaLBRepo'</tt> and <tt>'wiki' => 'wiki db name used with load balancer'</tt> (and not need all the db* parameters in the above config).

Using files from a local folder : FSRepo
You can set your wiki to use media from a single folder. This is just a demonstration feature at present, and will probably be too slow for busy wikis or slow servers due to the lack of caching. This code should be deployed to LocalSettings.php.

The below code enabled media files from it: