2012-04-17 13 views
1

私はImageMagickのものをやっています。ここに私のコマンドがあります:LinuxでImagemagick PHPを実行専用サーバ

/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 

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

しかし、専用サーバー上でphpコードを使っても全く動作しません。ここに私のコードは次のとおりです。

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

ImageMagickのが適切だけでなく、私がするphpinfoでそれを見ると、サーバーとアクティブにインストールされている() すべてのアイデアは、なぜそれが起こっていると私は何をすべきでしょうか?

+1

無効にすることができます。 php.iniファイルを確認し、必要に応じて変更してください。 –

+1

コマンド出力や 'exec'からのリターンコードは得られません。戻りコードが0の場合、正常終了しました。非ゼロの場合は、なぜ失敗したのかをコマンド出力で確認してください。たとえば、 '$ temp1'でファイルにアクセスするためのアクセス権が不十分かもしれません。 – halfer

答えて

4

コマンドconvertは、Webサーバーによって使用されている環境変数$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の場所を見つけるには、サーバー上のシェルから `のexec()`、サーバー上

$ which convert 
+1

そして、コマンドがゼロ戻りコードも返すことを確認してください。 – halfer

+0

@halfer追加! :) –

+1

ありがとうマイケル、+1 ':-)' – halfer

関連する問題