Página 1 de 1

Servicio Web en PHP para llamar función en Perl

NotaPublicado: 2012-03-20 14:52 @661
por yeipro
Cordial saludo a todos los participantes del foro.

Actualmente me encuentro desarrollando un servicio web en PHP. Estoy usando la librería nusoap para realizar esta tarea. Resulta que el servicio web debe llamar una función construida en Perl, a la cual se le deben enviar unos parámetros y a su vez la función o el cmd retorna un valor.

Mi problema principal ha sido en que no encuentro la forma de llamar a la función en Perl y poderle enviar los parámetros que se necesitan. Actualmente esos parámetros se envían por URL.

Les agradezco si me pueden colaborar con una posible solución u otra opción diferente para poder crear un servicio web en PHP usando la función creada en Perl.

Re: Servicio Web en PHP para llamar función en Perl

NotaPublicado: 2012-03-20 15:10 @674
por explorer
Bienvenido a los foros de Perl en Español, yeipro.

¡Respondida!

Re: Servicio Web en PHP para llamar función en Perl

NotaPublicado: 2012-03-20 15:28 @686
por explorer
Te pongo los dos casos más claros:

  • Llamar a Perl desde PHP: Ayuda con PHP y mod_perl. Básicamente consiste en llamar a Perl con un system() o passthru(), y recoger el resultado que Perl envía, desde la salida estándar, o por el intercambio de la variable de estado del resultado de la ejecución
  • Llamar a Perl creando un objeto Perl::getInstance. Esto es lo más elaborado, pero también lo más profesional y versátil (y algo más complejo de entender, claro).

Re: Servicio Web en PHP para llamar función en Perl

NotaPublicado: 2012-03-21 10:36 @483
por yeipro
explorer, te cuento que probé con system(), pero por alguna razón me genera el error de Permission denied. ¿¿Tengo que asignarle permisos al archivo??

Re: Servicio Web en PHP para llamar función en Perl

NotaPublicado: 2012-03-21 16:41 @737
por explorer
Pues sí. Pero también podría ser que tu php.ini indique que system() no tiene permiso de ejecución (por temas de seguridad. Me refiero al safe_mode).

Re: Servicio Web en PHP para llamar función en Perl

NotaPublicado: 2012-03-26 15:38 @693
por yeipro
Hola explorer, nuevamente yo, aun sigo trabajando en el problema.

He estado mirando algo de los CGI. Resulta que en el proyecto, se tiene un CGI el cual es llamado y se le envían parámetros por URL. Éste recibe un parámetro y de acuerdo a ese parámetro realiza la actividad posterior.

Mi problema sigue siendo el de llamar este CGI desde PHP, o se me ocurre tal vez que se pueda crear una función en Perl que me llame el CGI ya creado y que a su vez reciba el parámetro que le será enviado desde PHP para que el CGI de Perl lo pueda usar.

He realizado investigación de cómo llamar y pasar parámetros a un CGI pero no es mucho lo que encuentro, o no sé si es que no lo entiendo.

Más o menos el proceso que se debe hacer es así:
  • En PHP debe estar el servicio web que recibirá un parámetro, en este caso es un código
  • El código debe ser enviado al CGI en Perl para que realice las actividades en la base de datos de acuerdo al código
  • Después de esto el cgi debe retornar un nuevo código.

Sería enviar parámetros al cgi y recibir parámetros del cgi.

explorer, te agradezco la colaboración, llevo bastante en el proceso y no encuentro solución.

Re: Servicio Web en PHP para llamar función en Perl

NotaPublicado: 2012-03-26 16:30 @729
por explorer
En el mensaje mío anterior, que pone ¡Respondida!, te dejo enlazado todos los hilos que han comentado este asunto.

La forma más fácil de ejecutar un cgi desde PHP es con system(), exec() o passthru(), si el cgi está en el mismo servidor.

Otra forma es, con la librería curl de PHP, hacer una petición HTTP que llame al cgi, como si hubiese ocurrido una llamada web normal, al cgi. Haces un get a la URL del CGI, y guardas el resultado, igual que si lo hubieras hecho desde un navegador web.