probleme exec

Mandarine
Invité n'ayant pas de compte PHPfrance

26 août 2010, 12:44

Bonjour,

Je veux utiliser la fonction exec en php.

Voici mon code:
<?php
$r=exec('makefichier');
echo $r;
Makefichier est censé créer un fichier .txt. Ce programme marche parfaitement sous Ubuntu (en dble cliquant dessus).
Or via l'appel en php, rien ne se passe (ni création de fichier, ni affichage de l'echo).

Je suis sur un serveur 1and1 Linux mutualisé.
Le safe mode est sur off.
la fonction exec est activée.
Tous mes dossiers et sous dossiers sont en chmod 777.

Cela fait plusieurs jours que je suis bloqué sur ce point.

Merci de vos aides !

Mammouth du PHP | 686 Messages

26 août 2010, 13:05

As tu bien renseigné le lien vers ton programme ?
C'est un .exe ?
Sinon renseigne l'extension aussi ;)

Mandarine
Invité n'ayant pas de compte PHPfrance

26 août 2010, 13:41

Mon programme est du Fortran compilé sous ubuntu donc sans extension... :roll:
Que dois je mettre ??

Merci

Mammouth du PHP | 686 Messages

26 août 2010, 14:10

Et sinon pourquoi tu ne créé pas ton fichier txt directement avec PHP ?

Eléphant du PHP | 314 Messages

26 août 2010, 14:17

Et si tu fais un var_dump de $r, tu as un string vide ?
Cordialement,
Julien - http://laravel.fr/

Mandarine
Invité n'ayant pas de compte PHPfrance

26 août 2010, 14:26

@Sylvain: il sagit d'un test pour le moment, l'objectif est de voir exec() marche.

@AoSIX: le var_dump me renvoie: string(0) ""

Dois je dire à exec qu'il sagit d'un executable linux et comment ?

Doit-on passer le chemin de l'executable à exec() en absolu (http://nomdedomaine.fr/sousdossier/excucutable) ? déjà testé et ça n'a pas marché.

Eléphant du PHP | 50 Messages

26 août 2010, 15:39

Bonjour,

Comment executes tu ton programme sur ton terminal ? simplement en tapant makefichier ?
Que retourne ton exec en valeur d'output (2ième argument de exec cf http://www.manuelphp.com/php/function.exec.php)

Mandarine
Invité n'ayant pas de compte PHPfrance

26 août 2010, 16:19

Comment executes tu ton programme sur ton terminal ? simplement en tapant makefichier ?
Sous Linux je double clique sur mon fichier compilé pour l'éxécuter. Et hop il me créé mon fichier txt sur le bureau.
Que retourne ton exec en valeur d'output (2ième argument de exec cf http://www.manuelphp.com/php/function.exec.php)
La valuer d'output est: array(0) { }

Je ne comprends rien :(

Eléphant du PHP | 314 Messages

26 août 2010, 16:33

Essai de lancer ton outil avec la console, tu vas au bon endroit et tu fais ./tonexecutable
Cordialement,
Julien - http://laravel.fr/

Mandarine
Invité n'ayant pas de compte PHPfrance

26 août 2010, 16:43

Du nouveau :-)

J'ai envoyé mes sources en C sur mon serveur et j'ai compilé direct sur le serveur.
Et là ça marche. Je pense donc qu'il y avait un problème de compatibilité Linux.

Je suis sous Ubuntu 10 et eux sous Mandriva 4.

Cependant mon programme finale sera sous fortran et je ne peux pas compiler du fortran sur mon hebergement.

Comment compiler sous Ubuntu pour que ce soit compatible ??
Merci

Mandarine
Invité n'ayant pas de compte PHPfrance

27 août 2010, 18:30

Problème résolu.
Ca venait des dépendances des librairies Linux lors de la compilation !