[php] exec ne fonctionne pas

Résolu/Fermé
rekam Messages postés 122 Date d'inscription mardi 19 novembre 2002 Statut Membre Dernière intervention 10 mars 2011 - Modifié par rekam le 10/03/2011 à 11:59
rekam Messages postés 122 Date d'inscription mardi 19 novembre 2002 Statut Membre Dernière intervention 10 mars 2011 - 10 mars 2011 à 14:13
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 mardi 19 novembre 2002 Statut Membre Dernière intervention 10 mars 2011 2
10 mars 2011 à 14:13
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 mercredi 10 septembre 2008 Statut Contributeur Dernière intervention 24 avril 2014 136
Modifié par elpens le 10/03/2011 à 12:31
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 mardi 19 novembre 2002 Statut Membre Dernière intervention 10 mars 2011 2
10 mars 2011 à 13:18
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