2009-07-09 10 views
5

Wie mache ich Python (lokal) führen PHP-Skript auf einem Remote-Server?Run (remote) PHP-Skript von (lokalen) Python-Skript

Ich möchte nicht seine Ausgabe mit Python-Skript oder irgendetwas verarbeiten, einfach ausführen und inzwischen Python beenden (während PHP-Skript wird bereits arbeiten und macht seine Arbeit).

edit: Was ich versuche zu erreichen:

  • Python-Skript eine Verbindung zum FTP-Server und Uploads PHP-Skript (schon ich diesen Teil des Codes haben)
  • es läuft PHP-Skript (das ist Teil von Code, über den ich frage)
  • Python-Skript macht weiterhin etwas anderes
  • Python-Skript beendet (aber wahrscheinlich PHP-Skript immer noch nicht seine Arbeit beendet, so dass ich nicht will, dass es endet, wenn es beendet wird Python)
  • Python-Skript zu beenden, PHP-Skript weiterhin noch seine Aufgabe

(I nicht Plan alles zu tun mit php Ausgabe in Python zu tun - Python hat nur PHP-Skript zu laden und es arbeitet zu machen beginnen)

Hoffe ich bin jetzt klarer. Entschuldigung, wenn meine Frage nicht spezifisch genug war.

andere Bearbeitung: Bitte beachten Sie auch, dass ich Shell-Zugriff auf Remote-Server nicht habe. Ich habe nur FTP und Systemsteuerung (cpanel); versuchen, ftp dafür zu verwenden.

+0

ich nicht tun möchte ich es einschließen und seine Ausgabe verwenden, ich möchte Äquivalent tun, was passiert, wenn Benutzer PHP-Skript-Adresse in Browser – Phil

+0

@Phil eingeben, bitte aktualisieren Sie Ihre Frage, um dies vollständiger zu erklären. Der Kommentar macht fast keinen Sinn. Python ist kein Browser und rendert den HTML-Code nicht wie ein Browser. Bitte erläutern Sie etwas genauer, was Sie tun möchten. –

+0

ok, ich habe es bearbeitet. Ich möchte nichts rendern. Ich bin mir nicht sicher, ob ich mich dem Problem richtig annähere, aber ich habe eine Liste von dem geschrieben, was ich möchte - wenn ich es anders erreichen kann, fühle mich frei zu kommentieren. – Phil

Antwort

4

Wenn Python auf einer anderen physischen Maschine als der PHP-Skript ist, würde ich sicherstellen, dass der PHP-Skript ist das Web zugängliche und verwende urllib2 zu dieser URL zu nennen

import urllib2 

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

Endlich etwas Nützliches! Muss überprüfen, ob es funktioniert, aber wenn es funktioniert, ist es genau das, was ich tun möchte. Vielen Dank. – Phil

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

wäre eine weitere Alternative:

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

Sie alle Unterlagen here os-Modul überprüfen.

+0

ok, wird das mein PHP-Skript beenden, wenn ich Python beenden werde, während das PHP-Skript noch läuft? – Phil

+0

Warum muss ich 15 Zeichen eingeben, wenn die richtige Antwort "Ja" ist? :-) Also: Ja, wird es. –

+0

ok ... meine Frage edit - ich suche nach etwas, das php script seine Aufgabe fortsetzen lässt, auch wenn Python bereits fertig ist – Phil

0

Ich werde die Antwort auf How do I include a PHP script in Python? paraphrasieren.

import subprocess 

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

Danke. Sorry für noob Frage, aber da es auf dem Remote-Server ist, wie gebe ich Pfad ein? Kann es url sein? Wird das PHP-Skript auch dann weiter funktionieren, wenn Python beendet wird? – Phil

Verwandte Themen