Forum Clubic

Appeler un script php d'une commande shell ou php

Bonsoir,

Voila j’ai des données qui arrivent sur un PC (sous linux) et qui fait sa part de boulot (script php).

Néanmoins étant donné qu il ne peut pas tout faire, il a besoin de faire appel a un autre script (php également) mais uniquement quand il a fini.

La question que je me pose:
Peut on demander d’un php demander l’execution d’un autre script a distance?

peut on appeler le script distant en commande shell?

merci

Salut,

En fait je ne sais pas si j’ai tout compris.
Si on récapitules, tu as un Script PHP (donc installé sur un serveur web) qui est déclenché via un appel HTTP d’un client (navigateur web).
Celui ci a besoin d’appeler un autre script PHP ?
Si le second script est sur le meme serveur, tu peux utilises les includes ou requires et faire reference à une de leur fonction.
Si il est sur un autre serveur, ton script PHP devra alors générer une requete HTTP et l’envoyer sur le serveur N°2 … Mais ca par contre je n’ai jamais fait.
bon courage

Vu que tu ne parle pas d’Apache ou de tout autre serveur web dans l’explication de ton problème je présume que tu exécute tes scripts PHP en CLI.

Tu peux très bien exécuter un second script PHP à distance (comme en local) à la fin d’un premier :

<?php
// script1.php

// ... Faire son job...
// ...

// Le boulot est fini : on va appeler le second script
include('script2.php'); // Première solution : require/include

exec('script2.php'); // Seconde solution : exécution par le système

effectivement, l’execution se fera intégralement via CLI sous Linux

Raynor => j’ai deja fait l’essai avec un include ‘http://serveur2/script.php’;

oui ca marche…mais le fonctionnement ne me convient pas étant donné que le serveur 1 ramène le script2 a lui, or ce que je veux c’est qu il lance l’execution du script2 a distance

en gros comme disait cristolab etablir un requete http comme si j’allais sur le 2eme serveur avec un navigateur (le 2eme serveur possède apache lui par contre)

peut on faire un exec(‘http://serveur2/script2.php’); ?

Non, ce qu’il veut faire c’est appeler à distance son service php.

Et oui, tu peux le faire -> fr.php.net…

(par exemple, j’ai jamais utilisé, je ne te garantis rien)

[edit] en gros, tu vas appeler ton script comme si tu faisais une soumission de formulaire sur ton navigateur.

L’autre solution consisterai à écouter sur le serveur distant un certain port, et attendre que ton script envoie des données par ce port (ça évite de passer par http, donc apache, etc)
Edité le 29/04/2009 à 08:46