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.