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).