2009-07-09 57 views
5

¿Cómo puedo hacer que python (local) ejecute el script php en un servidor remoto?Ejecutar (remota) secuencia de comandos php desde (local) secuencia de comandos pitón

No quiero procesar su salida con script de python ni nada, simplemente ejecútelo y mientras tanto, salga de python (mientras que el script php ya estará funcionando y haciendo su trabajo).

edición: Lo que estoy tratando de lograr:

  • script en Python se conecta a un servidor FTP y lo sube script php (que ya tienen esta parte del código)
  • se ejecuta el script PHP (eso es parte del código que estoy preguntando)
  • python script continúa haciendo algo más
  • python script se cierra (pero probablemente el script php todavía no terminó su trabajo, así que no quiero que termine cuando salga python)
  • script en Python, dejar de fumar, script php todavía continúa su tarea

(I No plan para hacer cualquier cosa con salida de php en python - Python sólo tiene que cargar script php y hacer que empezar a trabajar)

Espero ser más claro ahora. Lo siento si mi pregunta no fue lo suficientemente específica.

otra edición: También tenga en cuenta que no tengo acceso de shell en el servidor remoto. Tengo solo ftp y panel de control (cpanel); tratando de usar ftp para eso.

+0

no lo hago quiero incluirlo y usar su salida, quiero hacer el equivalente de lo que sucede cuando el usuario ingresa la dirección del script php en el navegador – Phil

+0

@Phil, por favor actualice su pregunta para explicar esto más completamente. El comentario casi no tiene sentido. Python no es un navegador y no procesará el HTML como lo haría un navegador. Proporcione una explicación más detallada de lo que desea que suceda. –

+0

ok, lo edité. no quiero renderizar nada No estoy seguro de si me estoy acercando al problema correctamente, pero escribí una lista de lo que quiero que suceda; si puedo lograrlo de manera diferente, siéntete libre de comentar. – Phil

Respuesta

4

Si es pitón en una máquina física diferente que el script PHP, me aseguraría de que el script PHP es accesible desde la web y el uso de urllib2 llamar a esa URL

import urllib2 

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

¡Finalmente algo útil! Tendré que verificar si funciona, pero si funciona es exactamente lo que quiero hacer. Gracias. – Phil

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

Otra alternativa sería:

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

Usted puede comprobar toda la documentación módulo os here.

+0

ok, ¿esto matará mi script php si salgo de Python mientras el script php aún se está ejecutando? – Phil

+0

¿Por qué tengo que escribir 15 caracteres cuando la respuesta correcta es "sí"? :-) Entonces: Sí, lo hará. –

+0

ok ... ver mi edición de pregunta - estoy buscando algo que permita que php script continúe su tarea incluso si python ya va a terminar – Phil

0

Voy a parafrasear la respuesta al How do I include a PHP script in Python?.

import subprocess 

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

Gracias. Perdón por la pregunta de novato, pero dado que está en el servidor remoto, ¿cómo especifico la ruta? ¿Puede ser url? Además, ¿el script php continuará funcionando incluso si Python se cierra? – Phil

Cuestiones relacionadas