Php 我能';t使用ImageMagick进行转换
我正在使用ImageMagick转换PDF文件 我使用以下PHP代码段: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
$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。
我不知道为什么。有人能帮我吗?首先,有两个观察结果:
$image\u路径中获得所需的输出。你查过了吗
然后,还有三点:
ImageMagick本身不能处理输入PDF。它使用Ghostscript作为其代理,首先将PDF转换为图像格式,然后由ImageMagick进行进一步处理
在CentOS控制台中执行的Ghostscript版本不一定与PHPshell\u exec执行的版本相同。您应该检查这两种情况。执行此操作的控制台命令是gs-version
。如果您有不同的版本,这将解释为什么在一个实例中看到警告消息,而在另一个实例中看不到
您可以将-verbose
添加到命令中(shell_exec
以及控制台中),以查看IMconvert
命令调用的是哪个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版本也很有趣。