shell_exec无法在Imagick构造函数之后执行命令

时间:2014-11-20 09:39:40

标签: php imagick shell-exec

我有一个非常奇怪的问题,我现在无法解释。我使用Imagick库编辑上传的图像,并遵循以下代码:

echo shell_exec( 'which jpegoptim' );
$image = new Imagick( '/path/to/the/image.jpg' );
echo shell_exec( 'which jpegoptim' );

问题是我收到以下输出:

/usr/bin/jpegoptim

Warning: shell_exec(): Unable to execute 'which jpegoptim' in ... line 129

这意味着shell_exec在创建图像对象之前正常工作,并且在它之后不起作用。我做错了什么?

我使用的图像可以找到here

更新#1:如果我使用GD代替Imagick,一切正常,但我想用Imagick解决这个奇怪的问题。

更新#2:更多这种奇怪的行为只出现在某些图像上,有些jpeg图像处理得很好,有些则没有。

更新#3:文件权限没有问题,GD处理同一个文件就好了,shell_exec就可以正常工作了。

更新#4: $image变量的var转储:

class Imagick#395 (0) {
}

问题是关于shell_exec,在Imagick构造函数传入特定图像之后无效。

0 个答案:

没有答案