我们已经使用了ImageMagick
相当长一段时间,没有任何问题。
然而,今天我们遇到了一个试图将 pdf 转换为 jpg 缩略图的情况,但是却失败了:
$ convert example.pdf -resize 600 thumb.jpg
Error: /rangecheck in --run--
Operand stack:
--dict:12/21(L)-- Sh5 0.0 --nostringval-- true 14460 0 --nostringval--
Execution stack:
%interp_exit .runexec2 --nostringval-- --nostringval-- --nostringval-- 2 %stopped_push --nostringval-- --nostringval-- --nostringval-- false 1 %stopped_push 1846 1 3 %oparray_pop 1845 1 3 %oparray_pop 1829 1 3 %oparray_pop --nostringval-- --nostringval-- 2 1 1 --nostringval-- %for_pos_int_continue --nostringval-- --nostringval-- false 1 %stopped_push --nostringval-- --nostringval--
Dictionary stack:
--dict:1158/1684(ro)(G)-- --dict:1/20(G)-- --dict:75/200(L)-- --dict:75/200(L)-- --dict:106/127(ro)(G)-- --dict:285/300(ro)(G)-- --dict:22/25(L)-- --dict:4/6(L)-- --dict:25/40(L)-- --dict:1/1(ro)(G)-- --dict:9/15(L)-- --dict:5/5(L)-- --dict:2/5(L)-- --dict:1/1(ro)(G)-- --dict:9/15(L)--
Current allocation mode is local
Last OS error: 2
GPL Ghostscript 8.70: Unrecoverable error, exit code 1
convert: Postscript delegate failed `example.pdf'.
convert: missing an image filename `thumb.jpg'.
因此,在测试环境(Ubuntu)中,我能够安装最新版本,ImageMagick
并且能够很好地将此 pdf 转换为 jpg。
问题在于在 RHEL 上升级此软件包。没有可用的更新来ImageMagick
使用 yum。因此我这样做了:
wget http://www.imagemagick.org/download/linux/CentOS/x86_64/ImageMagick-6.8.4-4.x86_64.rpm
yum erase ImageMagick
yum install --nogpgcheck ImageMagick-6.7.9-6.x86_64.rpm
注意:这yum erase
删除了ImageMagick-devel
以及ImageMagick
包。
但是现在,当我尝试运行任何命令行 php 脚本时,都会收到此消息:
Warning: PHP Startup: Unable to load dynamic library '/usr/lib64/php/modules/imagick.so' - libWand.so.10: cannot open shared object file: No such file or directory in Unknown on line 0
我很担心重新启动 apache,因为我们的生产 web 应用程序依赖 php-imagick 来调整图像大小。
我怎样才能让 php 找到新的ImageMagick
?
答案1
不行。您需要针对较新的 ImageMagick 重新编译 php,或者(更快捷、更安全的解决方案)再次降级 imagemagick。
这为您赢得了一些时间来更新到具有较新的 imagemagick 的 RHEL 6。