2017-04-07 1 views
0

J'ai installé pngquant sur un mac et sur un linux en cours d'exécution centos 7. Sur les deux machines, je peux l'utiliser avec la ligne de commande, mais si ne fonctionnera pas lorsque la même commande est exécutée en php .pngquant ne fonctionne pas avec php

commandes Linux J'ai essayé:

yum install pngquant 

dit qu'il pngquant installé avec succès

which pngquant 

retours /usr/bin/pngquant

mon code fichier php ptst.php:

<?php 
echo "start"; 
echo $get_compress = exec("find . -name '*.png' -exec /usr/bin/pngquant -ext .png -force 256 {} \;"); 
echo "end"; 
?> 

J'ai seulement 1 fichier png dans le dossier actuel: image_5.png. Il a des autorisations: -rwxrwxrw-, et est dans le même dossier que ptst.php

en utilisant ls -la Je peux voir que la taille du fichier n'a pas changé. L'outout échoué est juste startend.

Si j'exécute le même code dans Terminal, la taille du fichier passe au 1/3 de sa taille précédente.

Qu'est-ce que je fais mal? Il y a clairement certains problèmes que je ne connais pas.

EDIT: nouvelle commande:

echo $get_compress = exec("find . -name '*.png' -exec /usr/bin/pngquant --ext .png --force 256 {} \; 2>&1", $output); 
print_r($output); 

sortie est un peu plus illustratif;

'./image_5.png.tmp' for writingArray ([0] => error: cannot open './image_5.png.tmp' for writing) 

Répondre

0

utilisez sudo et cela fonctionnera. A travaillé pour moi.