サムネイルのキャッシュがすごいことになってますね
出かけ先なので詳しく返答出来ませんが
カスタムテーマのサムネイルを自動生成する命令をループか何かに放っていませんか?
ありがとうございます!
たぶんそういうことなんだと思うのですが、どの記述が該当するのか分かりません・・・
可能性として、どのファイルのどういう記述か等、見当がつくものでしょうか??
よろしくお願いします!
遅くなりました
サムネイルの生成はプラグインを使用していますか?
(php_Thumb、QF-GetThumb等)
もしphpThumb()を使用しているなら危険かもしれないです
使用していると仮定して話を進めると
リサイズの制限をかけないと
URLからソースを認識してリサイズしサムネイルを生成するからです
おそらくそれだけではなく同じURLだとしても
生成する前に既にあるか確認していないため
同じファイルが複数できてしまうものかと・・・
メディアをアップロードする際にサイズ指定出来るのでそちらを使用するか
プラグインの生成の情報を書きかえるか
別のプラグインへ移行するかと思いますね
ありがとうございます!
まさに、php Thumbというものを使っているようです。
プラグインというよりも、カスタムテーマに組み込まれたような形で使っています。
URLは、WPの設置場所が
●●●.sakura.ne.jp
で、
サイトのほうは独自ドメインになりますので、画像の置き場所とサイトのURLは異なります。
・リサイズの制限
→これはどのように行えば良いでしょうか?
テーマにサムネイルの生成が組み込まれているので、何とか現状のまま改善できればと思います。。
大変お手数ですが、ご意見の程、よろしくお願いします!
お世話になります。
phpThumbのキャッシュに関係ありそうな
phpThumb.config.php
というファイルの関係しそうな部分を見つけたので、貼付けさせていただきます。
// * Cache culling: phpThumb can automatically limit the contents of the cache directory
// based on last-access date and/or number of files and/or total filesize.
//$PHPTHUMB_CONFIG['cache_maxage'] = null; // never delete cached thumbnails based on last-access time
$PHPTHUMB_CONFIG['cache_maxage'] = 86400 * 30; // delete cached thumbnails that haven't been accessed in more than [30 days] (value is maximum time since last access in seconds to avoid deletion)
//$PHPTHUMB_CONFIG['cache_maxsize'] = null; // never delete cached thumbnails based on byte size of cache directory
$PHPTHUMB_CONFIG['cache_maxsize'] = 10 * 1024 * 1024; // delete least-recently-accessed cached thumbnails when more than [10MB] of cached files are present (value is maximum bytesize of all cached files)
//$PHPTHUMB_CONFIG['cache_maxfiles'] = null; // never delete cached thumbnails based on number of cached files
$PHPTHUMB_CONFIG['cache_maxfiles'] = 200; // delete least-recently-accessed cached thumbnails when more than [200] cached files are present (value is maximum number of cached files to keep)
// * Source image cache configuration
$PHPTHUMB_CONFIG['cache_source_enabled'] = false; // if true, source images obtained via HTTP are cached to $PHPTHUMB_CONFIG['cache_source_directory']
$PHPTHUMB_CONFIG['cache_source_directory'] = dirname(__FILE__).'/cache/source/'; // set the cache directory for unprocessed source images
// * cache source modification date configuration
$PHPTHUMB_CONFIG['cache_source_filemtime_ignore_local'] = false; // if true, local source images will not be checked for modification date and cached image will be used if available, even if source image is changed or removed
$PHPTHUMB_CONFIG['cache_source_filemtime_ignore_remote'] = true; // if true, remote source images will not be checked for modification date and cached image will be used if available, even if source image is changed or removed. WARNING: cached performance MUCH slower if this is set to false.
なにか数字をいじれば良さそうな気がするのですが、アドバイスお願いいたします!
とりあえず変更は二箇所ほど
phpThumb.config.php
<?php
//キャッシュ画像全体の上限容量 1Gbyte
//1024(K)*1024(M)*1024(G)
//上の貼り付けを見ると10Mbyteですので変更してもしなくてもどちらでも
$PHPTHUMB_CONFIG['cache_maxsize'] = 1024 * 1024 * 1024;
//サムネイルの最大サイズ
$PHPTHUMB_CONFIG['output_maxwidth'] = 1000;
$PHPTHUMB_CONFIG['output_maxheight'] = 1000;
//外部からの不正なアクセス防止
$PHPTHUMB_CONFIG['nohotlink_enabled'] = true;
念の為htaccessをphpthumbフォルダに置く
<Files ~ "phpThumb.php">
SetEnvIf Referer "^http://ドメイン/" ref_ok
order deny,allow
deny from all
allow from env=ref_ok
</Files>
このプラグイン、日々修正されているようですが脆弱性があるので
自分である程度制限しちゃったほうが安全ではあります
アクセスログを確認してみて膨大なアクセスがあるのなら要注意ですね
(特に海外ドメインの奴らw)
追記:
以下も知っておいたほうがいいかも
//cacheを削除する時間(一日の秒数*日数)下では30日で削除
$PHPTHUMB_CONFIG['cache_maxage'] = 86400 * 30;
//サムネイルが200以上作られていた場合アクセスが多いサムネイルから削除?とにかく順番に削除されていくらしい
$PHPTHUMB_CONFIG['cache_maxfiles'] = 200;
ありがとうございます!
やってみます!
この度はご親切に大変ありがとうございました^^
画像サイズの計算式を一応
縦*横*解像度(300dpi一般的なデジカメ等のサイズ)
……なので
1000*1000*300=300000000=286.1MByte
まぁ、圧縮画像(jpg等のweb用画像)とかだと多少解像度落としてる
一般的には72や96の解像度だと思うけど、人それぞれかな
大きめに96で計算すると
1000*1000*96=96000000=91.6MByte
容量が最大サイズで作られ続けたと仮定して
サイズが圧迫するなら800:600の縦横サイズでもそれなりに見られるかと
もしかしたらバグで
現在最大10MByteになっていると思うけれど
10MByte以上の画像を吐き出された場合、リミットブレイクな感じに・・・
動きを検証したわけじゃないけどオーバーフロー怖いです
最悪の事態を考えて300dpi画像がアップロードされた場合
300Mbyte以上あればそんな事は無いのかな