1

私はいくつかのImageMagickのものをやっています。これが私のコマンドです:

/usr/bin/convert /home/setsail/public_html/microsite/images
/tmp/fe0e3b88601d254befc115ca6a50365b.png -alpha set -channel alpha -background none 
-vignette 0x3 -resize 66x89 /home/setsail/public_html/microsite/images/oval_thumb
/77bda03b6358b89efbe747ae414bd75f.png

このコードは、画像をぼかしてサイズを変更します。シェルとphpコードの両方でlocalhost(私はlocalhostでxamppを使用しています)で正常に動作し、シェルの専用サーバーでも正常に動作します。

しかし、PHPコードを使用した専用サーバーではまったく機能しません。これが私のコードです:

$cmd = "convert ".realpath($temp1)." -alpha set -channel alpha -background none    -vignette 0x3 resize ".$width."x".$height." ".$dest_img;
exec($cmd);

ImageMagick はサーバーに適切にインストールされ、アクティブであり、phpinfo() で確認できます なぜそれが起こっているのか、どうすればよいですか?

4

1 に答える 1

4

このコマンドは、Web サーバーによって使用されている環境変数に含まれconvertていない可能性があります。$PATHへのフル パスを使用しますconvert

// Substitute the full path for /usr/bin
$cmd = "/usr/bin/convert ".realpath($temp1)." -alpha set -channel alpha -background none    -vignette 0x3 resize ".$width."x".$height." ".$dest_img;

$results = array();
$return_code = NULL;
exec($cmd, $results, $return_code);

// Check the output of the command for error:
var_dump($results);
var_dump($return_code);

の場所を見つけるconvertには、サーバーのシェルから次のようにします

$ which convert
于 2012-04-17T17:27:30.597 に答える