diff --git a/FAQ.md b/FAQ.md index c2695aa..f8ea9bb 100644 --- a/FAQ.md +++ b/FAQ.md @@ -22,6 +22,7 @@ * [怎么设置局域网内访问拥有刷新、设置封面等管理权限?](#怎么设置局域网内访问拥有刷新、设置封面等管理权限) * [外网访问怎么设置允许当前IP访问拥有刷新、设置封面等管理权限?](#外网访问怎么设置允许当前IP访问拥有刷新、设置封面等管理权限) * [我的设备cpu性能较差,缩略图显示有点慢且cpu占用较高怎么解决?](#我的设备cpu性能较差缩略图显示有点慢且cpu占用较高怎么解决) +* [在启用Imagick扩展后,CPU占用过高或者大图片缩略图无法生成怎么解决?](#在启用Imagick扩展后,CPU占用过高或者大图片缩略图无法生成怎么解决) * [更多问题如何联系?](#更多问题如何联系) @@ -265,6 +266,29 @@ machete家庭相册在设计的时候考虑到在嵌入式设备中运行,缩 ``` +## 在启用Imagick扩展后,CPU占用过高或者大图片缩略图无法生成怎么解决? + +Imagick库的特性是生成的缩略图画质更高,但缺点是CPU占用比较高。 + +使用最新版filesite/machete的docker镜像,在自定义配置中加上开启配置项就能使用Imagick库来生成缩略图: +``` +"enable_lib_imagick": true +``` + +请在启动容器的时候根据你的服务器配置,指定容器最大能使用的内存和cpu数量, +这将改善缩略图生成,避免因为过高的CPU占用导致php进程被docker杀死从而无法生成大图片的缩略图。 + +例如***1G内存双核cpu服务器***,允许最大使用512M内存,1.5个cpu核心: +``` +docker run --name machete -p 1080:80 \ + -m 512m \ + --cpus="1.5" \ + -v /d/图片目录/:/var/www/machete/www/girls/ \ + -itd filesite/machete \ + beauty +``` + + ## 更多问题如何联系? 请打开官方网站查看底部QQ群和微信: diff --git a/README.md b/README.md index 1398dd7..8f7232e 100644 --- a/README.md +++ b/README.md @@ -118,6 +118,19 @@ docker run --name machete -p 1080:80 \ | webdirectory | /var/www/machete/www/navs/ | +如果开启Imagick库支持,请在启动容器的时候根据你的服务器配置,指定容器最大能使用的内存和cpu数量。 + +例如***1G内存双核cpu服务器***,允许最大使用512M内存,1.5个cpu核心: +``` +docker run --name machete -p 1080:80 \ + -m 512m \ + --cpus="1.5" \ + -v /d/图片目录/:/var/www/machete/www/girls/ \ + -itd filesite/machete \ + beauty +``` + + ### 查看容器 ``` diff --git a/conf/app.php b/conf/app.php index 15976e2..918922b 100644 --- a/conf/app.php +++ b/conf/app.php @@ -67,6 +67,9 @@ $configs = array( //视频、音乐meta在浏览器端缓存时长,单位:秒 'meta_client_cache_seconds' => 300, + //开启Imagick扩展,缩略图生成可能慢一点,但是会更清晰、稳定 + 'enable_lib_imagick' => false, + //列表页缩略图尺寸设置 'small_image_min_width' => 360, //缩略图最小宽度设置,以确保清晰度 'small_image_min_height' => 270, //缩略图最小高度设置,以确保清晰度 diff --git a/themes/beauty/controller/SiteController.php b/themes/beauty/controller/SiteController.php index ae0f41e..cb681e0 100644 --- a/themes/beauty/controller/SiteController.php +++ b/themes/beauty/controller/SiteController.php @@ -504,12 +504,12 @@ Class SiteController extends Controller { $img_data = null; try { - if (class_exists('Imagick')) { //Imagick库支持 + if (!empty(FSC::$app['config']['enable_lib_imagick']) && class_exists('Imagick')) { //Imagick库支持 $imagick = new Imagick($img_filepath); - $naturalWidth = $imagick->getImageWidth(); - $naturalHeight = $imagick->getImageHeight(); - $imgType = $imagick->getImageMimeType(); + $imgProps = $imagick->getImageGeometry(); + $naturalWidth = $imgProps['width']; + $naturalHeight = $imgProps['height']; //小图片则保持原图尺寸 if ($naturalWidth <= $min_width || $naturalHeight <= $min_height) {