2009-07-09 8 views
5

Comment faire pour que python (local) exécute le script php sur un serveur distant?Exécuter un script php (distant) à partir d'un script python (local)

Je ne veux pas traiter sa sortie avec un script python ou quoi que ce soit, il suffit de l'exécuter et en attendant quitter python (alors que le script php fonctionne déjà et fait son travail).

modifier: Ce que je suis en train de réaliser:

    script python
  • se connecte au ftp script serveur et upload php (j'ai déjà cette partie du code)
  • il exécute le script PHP (qui fait partie du code je demande environ)
  • Le script python continue à faire quelque chose d'autre
  • Le script python se ferme (mais probablement le script php n'a pas encore fini son travail donc je ne veux pas qu'il se termine quand il sortira python)
  • script python quit, script php continue sa tâche

(I ne prévoyez pas à quoi que ce soit avec la sortie de php en python - python a juste pour télécharger le script PHP et faire commencer à travailler)

J'espère que je suis plus clair maintenant. Désolé si ma question n'était pas assez précise.

autre édition: Veuillez également noter que je n'ai pas d'accès shell sur le serveur distant. Je n'ai que le ftp et le panneau de contrôle (cpanel); essayer d'utiliser ftp pour cela.

+0

je ne suis pas vouloir l'inclure et utiliser sa sortie, je veux faire l'équivalent de ce qui se passe lorsque l'utilisateur entre l'adresse du script php dans le navigateur – Phil

+0

@Phil, s'il vous plaît mettre à jour votre question pour l'expliquer plus complètement. Le commentaire n'a presque aucun sens. Python n'est pas un navigateur et ne rendra pas le HTML comme le ferait un navigateur. S'il vous plaît fournir une explication plus détaillée de ce que vous voulez arriver. –

+0

ok, je l'ai édité. Je ne veux rien rendre. Je ne suis pas sûr si je suis en train d'aborder le problème correctement, mais j'ai écrit la liste de ce que je veux arriver - si je peux le réaliser différemment, n'hésitez pas à commenter. – Phil

Répondre

4

Si python est sur une machine physique différente de celle du script PHP, je fais que le script PHP est accessible sur le Web et d'utiliser urllib2 pour appeler à cette url

import urllib2 

urllib2.urlopen("http://remotehost.com/myscript.php") 
+0

Enfin quelque chose d'utile! Je vais devoir vérifier si ça marche, mais si ça marche, c'est exactement ce que je veux faire. Je vous remercie. – Phil

5
os.system("php yourscript.php") 

Une autre alternative serait la suivante:

# will return new process' id 
os.spawnl(os.P_NOWAIT, "php yourscript.php") 

Vous pouvez consulter la documentation du module os here.

+0

ok, cela va tuer mon script php si je vais quitter python alors que le script PHP est toujours en cours d'exécution? – Phil

+0

Pourquoi ai-je besoin de taper 15 caractères lorsque la réponse correcte est "oui"? :-) Alors: Oui, ça va. –

+0

ok ... voir ma question edit - je cherche quelque chose qui permettra au script php de continuer sa tâche même si python va déjà finir – Phil

0

Je vais paraphraser la réponse à How do I include a PHP script in Python?.

import subprocess 

def php(script_path): 
    p = subprocess.Popen(['php', script_path]) 
+0

Merci. Désolé pour la question noob, mais puisque c'est sur le serveur distant, comment puis-je spécifier le chemin? Peut-il être url? Aussi, le script php continuera-t-il à fonctionner même si python se ferme? – Phil

Questions connexes