[php] script distant avec exec() [Résolu/Fermé]

Signaler
-
 didier_68 -
Bonjour à tous,

J'ai un problème en php que je n'arrive pas à résoudre:

je désire executer un script php cli placer sur un serveur distant via la commande exec().
Voici mon problème:
Si je tape dans mon navigateur web " http://xxxx.xxxx.xxxx.xxxx/fichier_script.php" => le script s'execute
Si je declenche l'appel du script via exec("http://xxxx.xxxx.xxxx.xxxx/fichier_script.php") depuis une autre page php => le script ne s'execute pas.

J'ai pourtant bien acces au fichier du script puisque j'y accede via le navigateur.
J'ai egalement mis les droits 777 à /var, /www et à fichier_script.php sur le serveur distant pour etre sur que ce n'est pas un probleme de droit (je sais que ce n'est pas bien, lol, mais la je suis en phase de test et il faut bien que j'écarte les erreus possibles)

Merci d'avance pour vos réponse si vous avez une idee de la cause de mon probleme

1 réponse

Messages postés
528
Date d'inscription
jeudi 28 juin 2007
Statut
Membre
Dernière intervention
12 juin 2015
98
Salut,

Exec exécute une commande ou un exécutable sur le serveur, un script php n'est pas un exécutable.

Il faut que ton script php soit 'lu' par le serveur comme il le serait pas un navigateur. Utilise par exemple file_get_contents($url).
Messages postés
528
Date d'inscription
jeudi 28 juin 2007
Statut
Membre
Dernière intervention
12 juin 2015
98 > didier_68
Le fichier .php n'est pas exécutable en lui même, c'est l'interpréteur php qui est l'exécutable.

Tu pourrais peut-être essayer quelque chose comme
exec('php -f script.php param1=val1 param2=val2');
>
Messages postés
528
Date d'inscription
jeudi 28 juin 2007
Statut
Membre
Dernière intervention
12 juin 2015

Non ca ne fonctionne toujours pas.

Je precise que le script s'execute parfaitement avec "./fichier_script.php" si je suis dans une console et avec "http://xxx.xxx.xx./fichier_script.php" si je tape l'adresse directement dans le navigateur. De plus le script fonctionne avec exec() si il est situe sur la meme machine. Le probleme apparait uniquement quand le script est sur le serveur distant.

On pourrai penser a un probleme de droit ou d'acces mais si on tape l'adresse directement dans le navigateur ca fonctionne. C'est apparament la commande exec() qui ne passe pas.

Malheuresement, je ne vois pas d'autre commande qui permette de passer des parametres en plus de l'execution du script.
La fonction "file_get_contents" a deja permis au moins de declencher le script en lisant le fichier mais par contre je ne peux pas passer de parametres avec cette fonction (enfin je crois).
> didier_68
c'est ok, en fait il est possible de passer des parametres en utilisant la fonction "file_get_contents" en utilisant GET.

Par contre si quelqu'un sait pourquoi exec() ne fonctionne pas en reseau, je suis preneur de l'info.

Merci encore
Messages postés
528
Date d'inscription
jeudi 28 juin 2007
Statut
Membre
Dernière intervention
12 juin 2015
98 > didier_68
Je n'avais pas compris que tu voulais faire un exec sur un autre serveur : exec exécute une commande locale, c'est comme un shell, il ne peut exécuter que ce qui est à sa portée. Quand ton exec('fichier.php') marche en local c'est parce qu'il exécute en fait quelque chose comme 'php fichier.php' et la commande php est locale.

J'espère être clair
>
Messages postés
528
Date d'inscription
jeudi 28 juin 2007
Statut
Membre
Dernière intervention
12 juin 2015

ah ok je comprend mieux.

Desolé, je reconnais que j'ai pas été super clair mais c'est jamais très facile de decrire un probleme.

Par contre, tu connaitrai pas par hasard l'equivalent de exec() pour le reseau (enfin si jamais ca existe)

merci encore pour ton aide,
bonne fin de journée