Il command Exec non funziona come previsto

Sto provando a lanciare un command CLI da uno script PHP:

in particolare voglio usare questo command per convert a.png a.tif per convertire un'image in tiff.

Quando lancio questo command dalla CLI funziona come previsto ma se lancio da uno script PHP con il seguente codice non crea alcuna image tiff nella mia cartella:

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

Inoltre $yaks è vuoto e $err è impostato su 127.

Non sono un esperto, perché questo non funziona come previsto?

I migliori saluti

AGGIORNARE

Ho usato questo command invece $exec = "convert 4.png 4.tif 2>&1"; e ho ottenuto in risposta [0] => sh: convert: command not found

Questo mi sembra strano dato che posso usarlo dalla CLI!

AGGIORNAMENTO FINALE

Grazie mille ragazzi!

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

Questo command ha risolto il problema! Sei grande.

dovresti inserire fullpath per "convertire" e potrebbero essere file.

err 127 – file non trovato

Sembra che il binario 'convert' non sia in nessuna delle directory sul PATH PHP sta usando. Potresti provare a utilizzare il path completo, ad esempio /opt/local/bin/convert o qualunque sia il path.

È anche ansible modificare il PERCORSO utilizzato da PHP (ma non so come).

Lo script PHP probabilmente non sa where trovare queste cose a cui ti riferisci nel command exec . Quando lo esegui dalla row di command, la shell li cercherà nella directory in cui ti trovi in ​​quel momento; ma quando lo si esegue da PHP, probabilmente si imposta automaticamente la directory PHP e non la directory specifica in cui si trovano i file. Quindi scrivi il path completo.