php Imagick在Ubuntu升级后无法正常工作

时间:2018-11-16 09:28:21

标签: php ubuntu-14.04 ubuntu-16.04 ghostscript imagick

将pdf转换为服务器上的图像文件但在本地系统上工作时遇到错误。

我的 Php脚本

 $img = new \Imagick();
 $image = file_get_contents($file);
 $img->readImageBlob($image);
 $response = $img->getnumberimages();

发生错误

Unrecoverable error: typecheck in .bind
Operand stack:
    --nostringval--  typecheck  --nostringval--  currentglobal  .currentglobal

系统配置

本地系统配置

Imagick: ImageMagick 6.7.7-10 2018-09-28

UBUNTU: 14.04 LTS

PHP: PHP 7.0.32-4 + ubuntu14.04.1 + deb.sury.org + 1

gs: 9.25

服务器系统配置

Imagick: ImageMagick 6.8.9-9 Q16 x86_64 2018-09-28

UBUNTU: 16.04.1 LTS

PHP: PHP 7.0.32-0ubuntu0.16.04.1

gs: 9.25

我试图将Imagick的版本还原为6.7,但无法还原该版本

我也尝试更改policy.xml文件,但是没有运气。

1 个答案:

答案 0 :(得分:1)

还原Image Magick极有可能对您没有任何帮助,因为那是Ghostscript错误消息。

没有看到输入文件,我无法猜测出什么问题,但是在没有输入文件的情况下,您有2个选择;

1)将您的Ghostscript版本还原到9.23,然后重试。

2)尝试从源代码构建Ghostscript,这可能是软件包维护者进行了一些更改,而这些更改不在原始版本中出现,而仅在更高版本的Ubuntu中公开。

您还可以尝试在命令行上运行Ghostscript,看看在两个系统上会发生什么。您需要从polixy.xml获取命令行,并用正确的文件名替换各个变量。

您可以在两个系统上都尝试一下以查看会发生什么。最后,您可以比较Ghostscript可执行文件的二进制大小,以查看它们在两个系统上是否实际上相同。如果不是,则可以将工作正常的计算机从本地系统复制到服务器,然后查看是否有效。