Manual talk:$wgForeignFileRepos
Using files from Wikimedia Commons
editI followed Manual:$wgForeignFileRepos#Using files from Wikimedia Commons but the wiki goes blank when I hit preview or submit with an image tag that doesn't exist in the wiki (and presumably the wiki will attempt to find for it on commons). I am using MediaWiki 1.13.3. Example: (removed) Why would this be? --Yonghokim 17:59, 20 January 2009 (UTC)
- As stated on the page, it requires PHP 5.2.0 or greater, you seem to have only PHP 5.1.6. iAlex 19:44, 20 January 2009 (UTC)
- I upgraded to PHP 5.2 and it works. Thank you! --Yonghokim 00:58, 21 January 2009 (UTC)
Using files from a local folder : FSRepo
editI followed the instruction on the page and I am using Php 5.2. I digged a bit into the code and it seems that GroupRepo does not see the foreign repository. Any idea what is going wrong here? 08:09, 10 June 2009 (UTC) Andreas
EXIF errors
editWe're running MediaWiki 1.14.0 and PHP 5.2 and everything works just fine except when viewing the images. PHP Warnings are generated: http://pastebin.vanonymous.org/pastebin.php?show=8 The page loads fine, however when attempting to view the metadata table the info doesn't exist. Forgott3n 09:25, 2 March 2009 (UTC)
Similar error
edit@ http://wikademia.org/File:Coffee_at_King's_Road_Café.jpg I get the error:
"Warning: preg_match() expects parameter 2 to be string, array given in..."
This only appears on some images. For example:
http://wikademia.org/File:Haeckel_Florideae_Chondrus_crispus.png
That image does not display the error.
Any help would be appreciated. Thank you.
Inline display of commons-Media
editHi,
I am Lars one of the administrators of the german PflegeWiki. In our Wiki the question for displaying images from the commons inline in our articles. I found the $wgForeignFileRepos
as you see and now I have a question before defining the variable. Will the variable override the def's for images (we have a pool for sharing images with the english NursingWiki)? How will the System decide wich repo to use? Is there a different tag? We're using Bild:
and/or Image:
. We would be very happy if someone would takt care of our problems... Greets and thanks in advance, --Bruder Lars 06:46, 25 August 2009 (UTC)
Cannot redeclare class HttpRequest
editUpgrading to 16.0 lead to
- Fatal error: Cannot redeclare class HttpRequest in /<sitename>/public_html/priv/includes/HttpFunctions.php on line 122
when trying to upload any file. Commenting out the piece in LocalSettings.php below resolved it:
$wgForeignFileRepos[] = array( 'class' => 'ForeignAPIRepo', 'name' => 'shared', 'apibase' => 'http://commons.wikimedia.org/w/api.php', 'fetchDescription' => true, // Optional 'descriptionCacheExpiry' => 43200, // 12 hours, optional 'apiThumbCacheExpiry' => 43200, // 12 hours, optional, but required for local thumb caching );
Don't know why but uploading is functioning again. Arent 15:35, 20 August 2010 (UTC)
- This was fixed in rev:76566. Bawolff 07:56, 12 November 2010 (UTC)
FSRepo (FileRepo)
editNote: FSRepo has been deprecated use FileRepo instead
Is FSRepo a working functionality? I am trying to display images from a local folder without uploading them into the wiki. But UnregisteredLocalFile.php does not seem to be fully functional yet.
/**
* A file object referring to either a standalone local file, or a file in a
* local repository with no database, for example an FSRepo repository.
*
* Read-only.
*
* TODO: Currently it doesn't really work in the repository role, there are
* lots of functions missing. It is used by the WebStore extension in the
* standalone role.
*
* @ingroup FileRepo
*/
I would like to display images on the wiki, but maintaining their original folder structure in the file system, any ideas?--Xavier Atero 09:41, 7 June 2011 (UTC)
- Answering my own questions, in case someone finds this useful:
- Yes, FSRepo is a working functionality
- There is a way to display images on the wiki maintaining their original folder structure in the file system, although it is pretty ugly.
For the FileRepo to work:
edit- 'hashLevels' must be 0
- 'directory' has to be visible from the web
- 'url' has to be the url that points to 'directory'
- the files contained in the folder should NOT:
- have the first character in lowercase
- contain any blank spaces in the name
- The reason is that MediaWiki will capitalize the first character and will replace blank spaces by underscores _.
- LocalSettings.php should contain the FileRepo definition:
$wgForeignFileRepos[] = array(
'class' => 'FileRepo',
'name' => 'sharedFileRepo',
'directory' => '/home/my_user/public_html/wiki/media',
'url' => 'http://www.my_wiki.com/media',
'hashLevels' => 0,
);
- where 'http://www.my_wiki.com/media' has to point to '/home/my_user/public_html/wiki/media'
- The file system would look something like this:
home |-- my_user |-- public_html |-- wiki |-- media |-- Picture_1.jpg |-- Picture_2.jpg +-- Picture_3.jpg
- And the call from the page:
<gallery> Image:Picture_1.jpg Image:Picture_2.jpg </gallery> [[Image:Picture_3.jpg]]
To display images on the wiki maintaining their original folder structure in the file system
edit- I guess that it can be accomplished by defining multiple FileRepo in LocalSettings.php. But I had files with same names in different folders, which creates conflicts between the different repositories. And my folder structure will grow, which implies constant modifications to LocalSettings.php
- I wanted only one FileRepo and to have the relative path associated with the image.
- The folder structure looks like this:
home |-- my_user |-- public_html |-- wiki |-- media |-- 00-photos |-- 2009_Irvine |-- Picture_1.jpg |-- Picture_2.jpg +-- Picture_3.jpg |-- 2011_Barcelona |-- Picture_1.jpg |-- Picture_2.jpg +-- Picture_3.jpg
- and the page like this:
<gallery> Image:00-photos/2009_Irvine/Picture_1.jpg Image:00-photos/2009_Irvine/Picture_2.jpg </gallery> <gallery> Image:00-photos/2011_Barcelona/Picture_1.jpg Image:00-photos/2011_Barcelona/Picture_2.jpg </gallery>
- The fast (but dirty) way to make it work is to rawurldecode the src attribute in includes/media/MediaTransformOutput.php toHtml function:
$attribs = array(
'alt' => $alt,
'src' => rawurldecode($this->url),
'width' => $this->width,
'height' => $this->height,
);
- Of course this will break all the files in the other repositories that contained special characters. This problem can be restricted by checking that the url contains 00-photos (in this case) before doing the rawurldecode or by checking that the file comes from FileRepo.
- Note: I named my directory 00-photos so I do not have to worry about MediaWiki changing the first character to uppercase.--Xavier Atero 13:29, 8 June 2011 (UTC)
Fallback
editDoes this let you specify a primary repo and a secondary repo in case the file doesn't exist at the primary repo? Leucosticte (talk) 09:20, 11 November 2013 (UTC)
- I don't know if there is a true "fallback" mechanism, but I know that wmit: wiki uses or used to use both Commons and it.wiki as foreign repos. --Nemo 09:25, 11 November 2013 (UTC)
"For all core repos"
editThe section name "For all core repos" feels ambiguous to me. Is it referring to "The core repository classes are LocalRepo, ForeignDBRepo, FSRepo and ForeignAPIRepo" or something else? John Vandenberg (talk) 09:23, 17 June 2015 (UTC)
Confusion ForeignDBRepoViaLB or ForeignDBViaLBRepo?
editI guess it’s the latter: ForeignDBViaLBRepo
, right? Because at the end of section “Using files from a database that you can access : ForeignDBRepo” it documents ForeignDBRepoViaLB but as far as I see in /includes/filerepo
(MW 1.26) there is no ForeignDBRepoViaLB.php but a ForeignDBViaLBRepo.php --Andreas P. 16:12, 1 February 2016 (UTC)
How to disable both transformVia404 and wgGenerateThumbnailOnParse when using ForeignDBRepo??
editHi guys, I got my files all uploaded to a commons wiki, and access those file on other wikis via ForeignDBRepo as following. Although all wiki share a same DB with different name, they are on different machine where access to files on commonswiki are impossible. I tried to comment out thumbScriptUrl & transformVia404 = false. Then I get thumbnail generating error.
Following settings work, but using thumb.php is buggy and slow. I want other wiki generate thumb url like this: https://commonswiki.org/commons/thumb/1/1f/filename.jpg/200px-filename.jpg directly. To make this clear, I need the solution to generate right url without thumb.php or attempts on generate thumbnails of image. I have all the rest part done expect the URL.
$wgGenerateThumbnailOnParse = false; $wgForeignFileRepos[] = array( 'class' => 'ForeignDBRepo', 'name' => 'commonswiki', 'directory' => '/tmp', //NO, OTHER WIKIS DOES NOT HAVE ACCESS TO THE COMMONS' FILE THOUGH DIRECTORY!!! 'url' => 'https://static.commonswiki.org/common', 'thumbScriptUrl' => 'https://commonswiki.org/thumb.php', //'transformVia404' => false, 'dbType' => $wgDBtype, 'dbServer' => $wgDBserver, 'dbUser' => $wgDBuser, 'dbPassword' => $wgDBpassword, 'dbName' => 'commonswiki', 'hasSharedCache' => false, 'descBaseUrl' => 'https://commonswiki.org/File:', 'fetchDescription' => false );
Empty server array given to LoadBalancer??
editI tried to set wgForeignFileRepos with the 'class' => 'ForeignDBViaLBRepo'. This settings should get Server info from $wgLBFactoryConf. But it actually return me an error: "InvalidArgumentException from line 371 of /includes/libs/rdbms/loadbalancer/LoadBalancer.php: Empty server array given to LoadBalancer". What's wrong? --Zoglun (talk) 04:17, 24 December 2017 (UTC)
- Maybe the $wgLBFactoryConf config isn't properly set on your LocalSettings.php. I can't say what exactly, because this configuration was so complicated that I gave up trying to set it up. --Ciencia Al Poder (talk) 11:47, 24 December 2017 (UTC)
How to set 'directory' in ForeignDBRepo, ForeignDBViaLBRepo mode, but I can't access media files?
editI got database perfectly shared among different wikis. But I can't share the media files by mount or any other methods.
So for the 'directory' => '/path/to/media',, what path should I entered in? Is there anyway to prevent MW look up local directory? Just forcing it to generate the url for images. --Zoglun (talk) 22:24, 31 December 2017 (UTC)
Error with redirected files
editWhen foreignapirepo enabled, then we have an error, if in source wiki this file was redirected to another.
MWException from line 199 of /includes/filerepo/file/File.php: `File:Foo.bar` is not a valid file title.
And page that uses redirected file, don't open.
I think that this is a bug and needs to fix. — Preceding unsigned comment added by StRiANON (talk • contribs)
- Please file a bug --Ciencia Al Poder (talk) 09:22, 26 March 2018 (UTC)
Database connection caveats
editAdded notes on caveats learned from working on Topic:Ta3n8f4l49wuqe9s. If those additions aren't appropriate, please at least add to the docs some notes on good or expected practices regarding shared file repo implementation on non-Wikimedia wikis or non-Commons targets. It is apparently very easy to unintentionally degrade multiple wikis' database's performance by underestimating how many requests this feature generates, and how frequently. -PFWOz (talk) 20:03, 5 December 2018 (UTC)
Add file repo?
editHello! I activate by default in the installation the file repository from Commons (didn't want contributors to be able to upload files directly on the server). However I would like to put myself files on the server (/images/). I added the FileRepo code in LocalSettings but I can't seem to put the files in the articles. Should I write something different than [[File:myfile.jpg]]?
$wgForeignFileRepos[] = [
'class' => 'FileRepo',
'name' => 'sharedFsRepo',
'directory' => '/images/',
'hashLevels' => 0,
'url' => 'http://wiki.lokal-life.org/images/',
];
Thanks! 89.157.115.94 20:08, 4 August 2019 (UTC)
- Replied in Topic:V4sf0mlbl3c5vjcw --Ciencia Al Poder (talk) 09:17, 5 August 2019 (UTC)
nginx request coalescing
editHello, as mentioned in the performance section: A high-performance site may want to look at setting up a local proxy (like nginx) that can coalesce multiple requests into a single pipelined request to reduce round trip times from TCP & TLS handshakes. Do you have any example setting, or guide, some steps to achieve that?