Foros del Web » Programando para Internet » PHP »

Ejecutar aplicación desde php

Estas en el tema de Ejecutar aplicación desde php en el foro de PHP en Foros del Web. Muy buenas a todos, Tengo una máquina con Ubuntu 9.04 como sistema operativo. Pretendo crear una aplicación de administración remota de aulas usando una interfaz ...
  #1 (permalink)  
Antiguo 17/06/2009, 09:25
Avatar de FCHip  
Fecha de Ingreso: junio-2005
Mensajes: 6
Antigüedad: 18 años, 9 meses
Puntos: 0
Ejecutar aplicación desde php

Muy buenas a todos,
Tengo una máquina con Ubuntu 9.04 como sistema operativo.
Pretendo crear una aplicación de administración remota de aulas usando una interfaz web en php.
He creado un script que recorre todos los ordenadores encendidos de un aula y saca por pantalla su escritorio usando tigthvnc permitiendo administrarlos remotamente a través de una LAN. Esto desde lanzadores o accesos directos y desde la línea de comandos ejecutando scripts en mi máquina sale bien.

Mi duda es si puedo hacer funcionar este programa a través de una interfaz web usando php.
He leído que la función exec() sólo saca salidas de texto.
¿Puedo arrancar este programa de alguna manera usando PHP?

Gracias, un saludo

FCHip
  #2 (permalink)  
Antiguo 17/06/2009, 09:29
Avatar de Synkronice  
Fecha de Ingreso: octubre-2007
Ubicación: Madrid
Mensajes: 831
Antigüedad: 16 años, 6 meses
Puntos: 48
Respuesta: Ejecutar aplicación desde php

Si con exec()

Saludos!
  #3 (permalink)  
Antiguo 17/06/2009, 09:48
Avatar de FCHip  
Fecha de Ingreso: junio-2005
Mensajes: 6
Antigüedad: 18 años, 9 meses
Puntos: 0
Respuesta: Ejecutar aplicación desde php

Cita:
Iniciado por Synkronice Ver Mensaje
Si con exec()

Saludos!
Cuando escribo en el navegador la URL para ejecutar el programa, simplemente me sale una página en blanco sin hacer nada.

Desde el navegador introduzco la url que me lleva al script:
achetetepé dospuntos barrabarra -- localhost/control/exec3.php

El código de exec3.php es el siguiente:
Código:
<?php
exec('./controls42.sh');
?>
Tengo permisos 755 para el usuario www-data en el script.


El programa .sh que prentendo ejecutar es este:
Código:
#Script para el control remoto de aulas
maquinas=21
i=1
while [ $i -le $maquinas ]; do
       # Esto me saca una ventana de cliente tightvnc por cada ordenador encendido, funciona bien en consola.
	xtightvncviewer pc$i 2>> /home/fernando/scripts/vnc/vnc.txt &
	i=$(($i+1))
	#sleep 1
done
¿Alguna idea?

Muchas gracias a todos.
FCHip.
  #4 (permalink)  
Antiguo 17/06/2009, 09:51
Avatar de Synkronice  
Fecha de Ingreso: octubre-2007
Ubicación: Madrid
Mensajes: 831
Antigüedad: 16 años, 6 meses
Puntos: 48
Respuesta: Ejecutar aplicación desde php

Y que es lo que quieres ver?
  #5 (permalink)  
Antiguo 17/06/2009, 10:00
Avatar de FCHip  
Fecha de Ingreso: junio-2005
Mensajes: 6
Antigüedad: 18 años, 9 meses
Puntos: 0
Respuesta: Ejecutar aplicación desde php

Me gustaría que me apareciera lo mismo que ejecutando el script manualmente desde consola.
Lo que hace este script es sacarme una ventana de vnc por cada equipo encendido, de manera que pueda administrarlos remotamente. No se necesita interacción por parte del usuario, ejecutando el .sh se pasa por todos los ordenadores de un aula y si están encendidos saca la ventana correspondiente, mostrando su escritorio para poderlo administrar.

Si esto me sale el próximo paso es crear una página que me pinte el aula y que ponga en rojo los ordenatas apagados, en verde los encendidos y pinchando encima de uno de ellos, que se me abra su ventana correspondiente de xtightvnc pero primero tengo que aprender a ejecutar algo desde php.

Alguna idea?

Muchas gracias por el interés.
Un saludo.

FCHip.
  #6 (permalink)  
Antiguo 17/06/2009, 10:08
Avatar de Synkronice  
Fecha de Ingreso: octubre-2007
Ubicación: Madrid
Mensajes: 831
Antigüedad: 16 años, 6 meses
Puntos: 48
Respuesta: Ejecutar aplicación desde php

Por motivos de seguirdad una pagina web no puede lanzar aplicaciones que residen en el equipo del usuario cliente.

[CLIENTE]<---------(INTERNET)------------>[SERVIDOR]

PHP Sólo se ejecuta en en Servidor que corre el Apache, por este motivo PHP no puede hacer nada en la maquina CLIENTE
  #7 (permalink)  
Antiguo 17/06/2009, 10:12
Avatar de FCHip  
Fecha de Ingreso: junio-2005
Mensajes: 6
Antigüedad: 18 años, 9 meses
Puntos: 0
Respuesta: Ejecutar aplicación desde php

¿Y cuando CLIENTE y SERVIDOR son la misma máquina?
¿Es posible realizarlo de alguna manera?

Muchas gracias.
  #8 (permalink)  
Antiguo 17/06/2009, 10:21
Avatar de Synkronice  
Fecha de Ingreso: octubre-2007
Ubicación: Madrid
Mensajes: 831
Antigüedad: 16 años, 6 meses
Puntos: 48
Respuesta: Ejecutar aplicación desde php

El ejecutable xtightvncviewer normalmente lo ejecutas con tu usuario o como root me imagino, no? Pero cuando ejecutas tu script a través del navegador es el usuario asociado al servidor apache (www-data) quien ejecuta tu script xtightvncviewer, así que me imagino que existe un problema de permisos.

Prueba a dar permisos 777 (3 sites) al script xtightvncviewer y si eso no funciona prueba a asignarme permisos 7777 (4 sietes).

NOTA: Para asignar permisos usa "sudo chmod 777 xtightvncviewer"

Prueba y me cuentas.

Saludos!
  #9 (permalink)  
Antiguo 07/08/2009, 08:34
 
Fecha de Ingreso: marzo-2009
Mensajes: 14
Antigüedad: 15 años, 1 mes
Puntos: 0
Respuesta: Ejecutar aplicación desde php

FCHip, a ver si entendi bien, yo estoy queriendo hacer, algo q creo es similar. Quizas podamos ayudarnos mutuamente. Tengo un PC Server (debian lenny) en donde se encuentran instala una serie de programas. Tengo Pc1 y Pc2 (clientes desde windows) que se conectan en forma remota a PC Server, a traves de un vnc viewer por navegador. Pc1 entra a usuario PROGRAMAS en forma remota y ve en el escritorio los programas que puede ejecutar y los ejecuta. Pc2 entra al mismo usuario en forma remota, pero en una nueva sesion para no interferir con Pc1 y tambien ejecuta los programas que ve en el escritorio. La unica restriccion es ver si el numero de licencias q tiene el programa a ejecutar (supongamos q sea el mismo el q ejecutan los dos clientes) es superior a 1, de lo contrario no puede haber dos usuarios simultaneos en ese programa. Mi idea es que una vez q haces clic en el icono q abre el programa, ejecute un query a un servidor php, este consulte la dispoibilidad de licencia y devuelva un aviso de q no puede ejecutarse o ejecute un script q haga correr el programa. Si alguien tiene otra idea es muyyy bienvenida, y si puedo ayudarte en algo PCHip solo enviame un mensaje. Saludos

Matias
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 13:34.