Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/294.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 我能';t使用ImageMagick进行转换_Php_Centos_Imagemagick - Fatal编程技术网

Php 我能';t使用ImageMagick进行转换

Php 我能';t使用ImageMagick进行转换,php,centos,imagemagick,Php,Centos,Imagemagick,我正在使用ImageMagick转换PDF文件 我使用以下PHP代码段: $cadena = "/usr/local/bin/convert -density 100 -colorspace rgb ".$name_path." ".$images_path."/convert.png"; shell_exec($cadena); 其中,$name\u path是PDF文件目录,$images\u path是图像目录 控制台(CentOS)中的这段代码工作得非常好。但当我尝试在PHP中使用s

我正在使用ImageMagick转换PDF文件

我使用以下PHP代码段:

$cadena = "/usr/local/bin/convert -density 100 -colorspace rgb ".$name_path." ".$images_path."/convert.png";
shell_exec($cadena); 
其中,
$name\u path
是PDF文件目录,
$images\u path
是图像目录

控制台(CentOS)中的这段代码工作得非常好。但当我尝试在PHP中使用
shell\u exec()
函数时,它会抛出以下错误:

***warning: considering '00000000 xxxxx n' as free entry.
*** this file had erros thah were repaired  or ignored.
文件和文件夹中的权限为777。
我不知道为什么。有人能帮我吗?

首先,有两个观察结果:

  • 您看到的消息不是来自ImageMagick,而是来自Ghostscript
  • 该消息不是错误消息,只是警告
  • 因此,很可能您的转换工作正常,您将在
    $image\u路径中获得所需的输出。你查过了吗

    然后,还有三点:

  • ImageMagick本身不能处理输入PDF。它使用Ghostscript作为其代理,首先将PDF转换为图像格式,然后由ImageMagick进行进一步处理
  • 在CentOS控制台中执行的Ghostscript版本不一定与PHP
    shell\u exec执行的版本相同。您应该检查这两种情况。执行此操作的控制台命令是
    gs-version
    。如果您有不同的版本,这将解释为什么在一个实例中看到警告消息,而在另一个实例中看不到
  • 您可以将
    -verbose
    添加到命令中(
    shell_exec
    以及控制台中),以查看IM
    convert
    命令调用的是哪个Ghostscript实例“在背后”

  • 这不是权限错误。pdf包含imagick不知道的内容(或者更可能的是,ghostscript不知道)。我检查了,我的服务器中有两个版本的ghostscript。我在控制台中编写了gs-version并向我展示了:GPL Ghostscript 9.16(2015-03-30),然后我用shell_exec()编写了一个脚本,并向我展示了GPL Ghostscript 8.70(2009-07-31)。如何删除旧版本(8.7)或shell_exec()与上一个版本兼容?抱歉,我是新版本。我要这么做。感谢you@KarlitozParkerHimura:谢谢。我希望你的问题很快得到解决。不要忘记准确描述您是如何识别两个GS版本的,以及它们是什么。您正在使用的PHP版本和CentOS版本也很有趣。