Manual:Thumb.php

Details
Script used to resize images if it is configured to be done when the web browser requests the image and not when generating the page.

To use it, set   to the path of this file.

Parameters are  for file name,   for width,   for page in multipaged files (if available).

Example: https://commons.wikimedia.org/w/thumb.php?f=Delle_strade_ferrate_e_della_loro_futura_influenza_in_Europa.djvu&w=600&p=206

404 Handler
This script can also be used as a 404 handler to generate image thumbs when they don't exist. To use it, follow the steps below, then set   to false. If you have   defined in LocalSettings.php, then you need to also set:

Apache
Create a rewrite rule to call thumb_handler.php when a file in /thumb/ doesn't exist. If your wiki is in the /w directory, something like this should work on Apache:



Example: http://www.mediawiki.org/w/thumb.php?f=example.jpg&width=100

nginx
location /wiki/images { # Separate location for images/ so .php execution won't apply location ~ ^/wiki/images/thumb/(archive/)?[0-9a-f]/[0-9a-f][0-9a-f]/([^/]+)/([0-9]+)px-.*$ { # Thumbnail handler for MediaWiki # This location only matches on a thumbnail's url # If the file does not exist we use @thumb to run the thumb.php script try_files $uri $uri/ @thumb; }	}

# Thumbnail 404 handler, only called by try_files when a thumbnail does not exist location @thumb { # Do a rewrite here so that thumb.php gets the correct arguments rewrite ^/wiki/images/thumb/[0-9a-f]/[0-9a-f][0-9a-f]/([^/]+)/([0-9]+)px-.*$ /wiki/thumb.php?f=$1&width=$2; rewrite ^/wiki/images/thumb/archive/[0-9a-f]/[0-9a-f][0-9a-f]/([^/]+)/([0-9]+)px-.*$ /wiki/thumb.php?f=$1&width=$2&archived=1; # Run the thumb.php script include /etc/nginx/fastcgi_params; fastcgi_param SCRIPT_FILENAME	$document_root/wiki/thumb.php; #fastcgi_pass 127.0.0.1:9000; fastcgi_pass unix:/var/run/php5-fpm-$username.sock; }

Scripted transform
Just add the following code to the bottom of .

No apache config changes needed. This will cause thumb.php to either return the file if its already been rendered, or render the file on demand if needed.