[php] exec ne fonctionne pas

Résolu
rekam Messages postés 122 Date d'inscription   Statut Membre Dernière intervention   -  
rekam Messages postés 122 Date d'inscription   Statut Membre Dernière intervention   -
Bien le bonjour!

Je suis au prise avec un problème pour le moins ennuyeux. J'essaie de convertir la 1ère page d'un pdf en jpg. J'ai installé Imagemagick et Ghostscript et, dans un terminal (sous MacOSX 10.6) j'ai tapé la commande suivante:

convert '/Users/dev/Sites/libs/test_12_pages.pdf[0]' '/Users/dev/Sites/library/resources/test_12_pages.jpg'


ça fonctionne à merveille.

Là dessus, j'écris un script PHP d'une complexité inouïe, dont voici ci-dessous la totalité:

<?php 
$output = array(); 
$status = null; 
exec("convert '/Users/dev/Sites/libs/test_12_pages.pdf[0]' '/Users/dev/Sites/library/resources/test_12_pages.jpg'", $output, $status); 

print_r($output); 
echo $status;


Résultat: l'image ne se crée pas, $ouput n'a rien du tout dedans et $status = 127.

Pour le fun, j'ai chmodé bien brutal (vive les machines de pure dev ^^)
sudo chmod -R 0777 / 


Genre, bien bourrin. Eh bien rien de mieux... Toujours pas d'amélioration. Comment puis-je faire? Sachant que j'utilise MAMP comme serveur local PHP.

Merci d'avance!
rekam

[EDIT]
Je tiens encore à signaler qu'un file_exists() avec le même chemin pdf (sans le [0] évidemment) retourne TRUE. PHP voit donc bien le fichier, mais n'arrive pas à exécuter c'te môdzite commande...


A voir également:

3 réponses

rekam Messages postés 122 Date d'inscription   Statut Membre Dernière intervention   2
 
Youhou! C'est bon!

En fait c'est tout bête, et je crois bien qu'elpens avait la solution, sauf que j'ai pas capté tout de suite :P

Un petit passthru("export") permet de constater que la variable d'environnement PATH n'est pas pareil que le PATH du terminal.

J'ai donc bien /opt/local/bin/ dans le terminal, mais pas depuis l'exécution PHP. Ainsi, un petit /opt/local/bin/convert fait fonctionner le tout.

Merci bien!
2
elpens Messages postés 815 Date d'inscription   Statut Contributeur Dernière intervention   136
 
Salut,

Je ne suis pas sur mais tu dois avoir un problème d'access a ton shell
Tu peux essayer d'ajouter /bin/sh avant ta commande convert

En esperant que cela puisse t'aider un minimum

Elpens
0
rekam Messages postés 122 Date d'inscription   Statut Membre Dernière intervention   2
 
Merci, mais toujours rien. J'ai tenté ce que tu proposes mais pas mieux.

J'ai du coup pensé à autre chose. J'ai créé un fichier .sh avec la commande en dur dedans, puis je le chmod +x pour qu'il soit exécutable.

Depuis le terminal, ./test.sh fonctionne.

Depuis exec() de php: non :'(

PS: au passage, j'ai le safe_mode à Off, donc ça peut pas être ça non plus... Mais kesepastil ???!!!
0