Manual:thumb_handler.php

From MediaWiki.org
Jump to navigation Jump to search
This page is a translated version of the page Manual:Thumb handler.php and the translation is 100% complete.
Other languages:
Deutsch • ‎English • ‎español • ‎français • ‎polski • ‎português do Brasil • ‎中文 • ‎日本語

説明

thumb_handler.php とは 404 ハンドラが返してきた画像を自動的にサイズ変更するスクリプトです。例えばブラウザの要求に従い、そのとき初めてサムネールを生成するなどの場合に用います。

使い方は以下の手順に従い、$wgGenerateThumbnailOnParse を「偽」に設定します。もしLocalSettings.php で$wgLocalFileRepo を定義している場合は、さらに次の手続きを加えます。

$wgLocalFileRepo['transformVia404'] = true;

サーバの設定

Apache

$wgUploadPath /thumb/ 内に当該のファイルがない場合は、上書きルールを作成し thumb_handler.php を呼び出します。ご利用のウィキが /w ディレクトリにある場合、 apache 向けに以下が有効です。

RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^/?w/images/thumb/[0-9a-f]/[0-9a-f][0-9a-f]/[^/]+/[^/]+$ /w/thumb_handler.php [L,QSA]
# If your $wgHashedUploadDirectory is false, remove the first two steps after thumb/

RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^/?w/images/thumb/archive/[0-9a-f]/[0-9a-f][0-9a-f]/[^/]+/[^/]+$ /w/thumb_handler.php [L,QSA]
# If your $wgHashedUploadDirectory is false, remove the first two steps after thumb/archive/

nginx

location /wiki/images {
	# Separate location for images/ so .php execution won't apply
	
	location ~ ^/w/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 ^/w/images/thumb/[0-9a-f]/[0-9a-f][0-9a-f]/([^/]+)/([0-9]+)px-.*$ /w/thumb_handler.php?f=$1&width=$2;
	rewrite ^/w/images/thumb/archive/[0-9a-f]/[0-9a-f][0-9a-f]/([^/]+)/([0-9]+)px-.*$ /w/thumb_handler.php?f=$1&width=$2&archived=1;
	
	# Run the thumb.php script
	include /etc/nginx/fastcgi_params;
	fastcgi_param SCRIPT_FILENAME	$document_root/w/thumb_handler.php;
	#fastcgi_pass 127.0.0.1:9000;
	fastcgi_pass unix:/var/run/php5-fpm-$username.sock;
}

関連項目