我正在使用 phpThumb - PHP 缩略图生成器。
'phpThumb.config.php':
$PHPTHUMB_CONFIG['cache_maxage'] = 10;
$PHPTHUMB_CONFIG['cache_maxsize'] = 1000;
$PHPTHUMB_CONFIG['cache_maxfiles'] = 10;
但它什么也没做...我在 922 个文件中有 108 MB...而且它还在不断增长。
我正在使用 phpThumb - PHP 缩略图生成器。
'phpThumb.config.php':
$PHPTHUMB_CONFIG['cache_maxage'] = 10;
$PHPTHUMB_CONFIG['cache_maxsize'] = 1000;
$PHPTHUMB_CONFIG['cache_maxfiles'] = 10;
但它什么也没做...我在 922 个文件中有 108 MB...而且它还在不断增长。
对我来说,解决方案非常简单。使用默认设置安装 phpthumb 后,该行$PHPTHUMB_CONFIG['document_root'] = realpath((getenv('DOCUMENT_ROOT') && ereg('^'.preg_quote(realpath(getenv('DOCUMENT_ROOT'))), realpath(__FILE__))) ? getenv('DOCUMENT_ROOT') : str_replace(dirname(@$_SERVER['PHP_SELF']), '', str_replace(DIRECTORY_SEPARATOR, '/', dirname(__FILE__))));
并没有取消注释,并且一切似乎都工作正常。
但是:/tmp 目录在很短的时间内在一个频繁访问的页面上耗尽空间。
解决方案:这很简单,因为 phpthumb 需要在其 $PHPTHUMB_CONFIG['cache_directory'] 目录上写入权限。因此,请确保执行您的 php 脚本的用户(通常是 apache)具有写入权限,否则 /tmp 目录将被使用并填满您的缓存文件。
希望这可以帮助!
有趣的是,在phpThumb.config.php默认行没有注释:
$PHPTHUMB_CONFIG['document_root'] = realpath((getenv('DOCUMENT_ROOT') && ereg('^'.preg_quote(realpath(getenv('DOCUMENT_ROOT'))), realpath(__FILE__))) ? getenv('DOCUMENT_ROOT') : str_replace(dirname(@$_SERVER['PHP_SELF']), '', str_replace(DIRECTORY_SEPARATOR, '/', dirname(__FILE__))));
..and phpThumb 成功将文件保存到“缓存”目录中,但无法删除任何文件。
我手动设置了 $PHPTHUMB_CONFIG['document_root'] 并且它有效!
因此,请仔细检查 $PHPTHUMB_CONFIG['document_root'] 是否正确。
我会检查运行 php 的用户是否对缓存文件夹具有写权限。
你检查过php错误日志吗?
很简单,你只需删除缓存文件夹。phpThumb 稍后会重新创建您的拇指。