Exec命令无法按预期工作

I'm trying to launch a CLI command from a PHP script:

in particular I wanna use this command convert a.png a.tif to convert an image to tiff.

When I launch this command from CLI it works as expected but if I launch from a PHP script with the following code it doesn't create any tiff image in my folder:

$exec = "convert a.png a.tif";
exec($exec,$yaks,$err);
echo "<pre>";
print_r($yaks);
echo "$err";
echo "</pre>";

Moreover $yaks is empty and $err is set to 127.

I'm not an expert, why this doesn't work as expected?

Best regards

UPDATE

I used this command instead $exec = "convert 4.png 4.tif 2>&1"; and I got in return [0] => sh: convert: command not found

This seems to me strange since I can use it from CLI!

FINAL UPDATE

Thanks a lot guys!

$exec = "/usr/local/bin/convert a.png a.tif";

This command solved the problem! You're great.

you should enter fullpath to "convert" and may be files.

err 127 - file not found

The PHP script probably doesn't know where to find these things you're referring to in the exec command. When you run this from the command line, the shell will look for them in the directory you are in at that point in time; but when you run it from PHP, it probably defaults to the PHP dir and not the specific dir in which your files are. So write out the full path.

It looks like the 'convert' binary isn't in any of the directories on the PATH PHP is using. You could try using the full path, e.g. /opt/local/bin/convert or whatever the path is.

You could also modify the PATH used by PHP (but I don't know how).