El día 7 de febrero de 2011 17:01, Dario Piaf <[email protected]> escribió: > Me gustaria que este programa tenga una interfaz grafica, la cual sea WEB, > es decir que se pueda acceder al programa corriendo en la maquina a traves > del servidor apache que corre en la misma. > No se si estoy pidiendo locuras o si hay chances de hacer esto. Si existe > alguna chance, que deberia investigar? algun modulo para apache? Si escuchan > alternativas.
Tal como ya te han dicho, tal vez la manera más práctica sea hacer toda la parte web en PHP. El PHP es un lenguaje muy cómodo y potente para hacer aplicaciones WEB, y sólo te falta comunicarlo con tu programa en C. La comunicación dependerá de cómo necesite funcionar tu programa. ¿Se ejecuta constantemente o de vez en cuando? Si está corriendo constantemente tal vez DBUS sea una buena alternativa. DBUS permite que los programas se envíen mensajes entre ellos. Pero hay otras alternativas. Una interesante por ejemplo es que tu programe escuche por un socket de TCP/IP. El programa en php puede conectarse al socket y enviar información. El efecto sería el mismo que con DBUS pero con la ventaja de que no necesitan correr en la misma máquina: el servidor web podría estar en una máquina diferente. Si no es necesaria una comunicación constante sino que la página sólo sería para cambiar configuraciones, se podría hacer por ejemplo que tu programa en C lea sus configuraciones de un archivo de texto. El programa en PHP sólo tiene que escribir ese archivo y avisar al programa que lo lea. Ese aviso normalmente se hace enviando una señal SIGHUP al programa, el cual deberá atraparla (mira man 2 signal y man 7 signal). Obviamente, siempre queda la posibilidad de no hacerlo en PHP sino directamente en C. Un programa en C puede generar páginas dinámicas mediante cgi-bin. Cuando Apache recibe un pedido de un cgi-bin, le pasa los datos al programa en C. Encontrarás seguramente ejemplos ya funcionando de cgi-bin hechos en shell script. Y finalmente, incluso tu propio programa podría escuchar en un puerto y responder con protocolo http, pero no creo que valga la pena llegar a tanto.
