Foros del Web » Programando para Internet » PHP »

Ejecutar programa

Estas en el tema de Ejecutar programa en el foro de PHP en Foros del Web. Hola¡ Deseo ejecutar un programa (programa icobol) que esta en un servidor Unix, a traves de FTP, pero topo con un problema y es que ...
  #1 (permalink)  
Antiguo 19/03/2003, 08:06
 
Fecha de Ingreso: enero-2003
Mensajes: 286
Antigüedad: 21 años, 10 meses
Puntos: 0
Ejecutar programa

Hola¡
Deseo ejecutar un programa (programa icobol) que esta en un servidor Unix, a traves de FTP, pero topo con un problema y es que no me funciona el comando ftp_exec que es que me permitiria ejecutar este programa. La pregunta es si yo puedo ejecutar otra función ftp y cual es esta.
Gracias

----------------------------
ah¡ vale josemi
  #2 (permalink)  
Antiguo 19/03/2003, 08:38
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 10 meses
Puntos: 129
Creo que deberias preguntar en el foro "Sistemas operativos" para que te indiquen que protocoolo seria el mejor para hacer lo que pretendes .. No solo existe FTP ..

Con el protocoolo que te digan que sería recomendable usar .. pregunta en el foro PHP si PHP tiene funciones nativas para interactuar ..

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #3 (permalink)  
Antiguo 19/03/2003, 09:04
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 10 meses
Puntos: 129
Tu servidor FTP trabaja en modo Pasivo o Activo? estas bajo un firewall?

Puede ser que por ahí tengas el problema...

Revisa:
http://slacksite.com/other/ftp.html

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #4 (permalink)  
Antiguo 19/03/2003, 09:08
 
Fecha de Ingreso: enero-2003
Mensajes: 286
Antigüedad: 21 años, 10 meses
Puntos: 0
Si, estoy abierto a otra alternativas, como son los sockects, pregunto por ftp, ya que era el metodo que estaba tratando y creo que puede ser viable. osea tiene las herramientas para tratar mi problema y se que hay otros pero por el momento no los he visto.
  #5 (permalink)  
Antiguo 19/03/2003, 09:11
 
Fecha de Ingreso: enero-2003
Mensajes: 286
Antigüedad: 21 años, 10 meses
Puntos: 0
No entiendo lo de modo pasivo o activo, puedes aclararlo un poquito...
  #6 (permalink)  
Antiguo 19/03/2003, 09:17
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 10 meses
Puntos: 129
En el link que te dejé viene explicado .. Yo no suelo administrar FTP's.

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #7 (permalink)  
Antiguo 19/03/2003, 13:50
 
Fecha de Ingreso: enero-2003
Mensajes: 286
Antigüedad: 21 años, 10 meses
Puntos: 0
lo de estado pasivo o activo responde a los firewall y esta máquina no los tiene por ende su estado es activo...
  #8 (permalink)  
Antiguo 20/03/2003, 08:39
 
Fecha de Ingreso: enero-2003
Mensajes: 286
Antigüedad: 21 años, 10 meses
Puntos: 0
Donde puedo encontrar un sitio que trate de este tema, aparte de www.php.net (funciones FTP y sockets)

gracias
  #9 (permalink)  
Antiguo 20/03/2003, 09:29
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 10 meses
Puntos: 129
En http://rfc.net

Ahí encontraras las RFC (descripciones, normas) de los diferentes proptocoolos usados en internet .. como el HTTP y la mayoría ..

Eso será lo que uses junto con las funciones de fscocket() de PHP ..

Como ya te he comentado muchas veces .. PHP SOLO te pone a tu disposición Funciones para que interactues con diferentes protocoolos .. Lo que "hables" con el protocoolo y lo que "te responda" .. es cosa que lo veas en la documentación oficial del protocoolo q uses ...

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #10 (permalink)  
Antiguo 20/03/2003, 17:10
 
Fecha de Ingreso: enero-2003
Mensajes: 286
Antigüedad: 21 años, 10 meses
Puntos: 0
En resumen debería usar socket...
  #11 (permalink)  
Antiguo 20/03/2003, 18:37
 
Fecha de Ingreso: diciembre-2002
Mensajes: 341
Antigüedad: 21 años, 11 meses
Puntos: 0
No creo que el comando ftp_exec sea muy practico.... Cuantos servidores FTP soportan el comand "SITE EXEC" (que supongo que es el que llama esta la función ftp_exec) ? Ninguno de los que he usado lo soportan (vsftp, pure-ftpd, proftpd).

No puedes usar las funciones exec(), system(), etc. de PHP?

Un saludo
__________________
guebs - alojamiento web y dominios
www.guebs.com
blog.guebs.com
  #12 (permalink)  
Antiguo 20/03/2003, 18:47
 
Fecha de Ingreso: diciembre-2002
Mensajes: 341
Antigüedad: 21 años, 11 meses
Puntos: 0
Acabo de estar navegando un poquito y creo que unicamente el servidor wu-ftpd soporta ese comando, o al menos lo soportaba. Ya que después de todos los agujeros de seguridad que ha supuesto ese comando.... igual lo han quitado.

El FTP, esta para lo ques esta, transferir ficheros, y ni siquiera en eso es demasiado bueno....

Mi recomendación sigue siendo la misma: exec(), system(), etc.

Aunque es posible que esos comandos esten deshabilitados....

Un saludo
__________________
guebs - alojamiento web y dominios
www.guebs.com
blog.guebs.com
  #13 (permalink)  
Antiguo 21/03/2003, 08:08
 
Fecha de Ingreso: enero-2003
Mensajes: 286
Antigüedad: 21 años, 10 meses
Puntos: 0
pero exec y system no son para ejecutar lineas de comando en la misma máquina?
de no ser así como lo hago para ejecutarlos en máquinas distintas, pero que pertenecen a una misma red.

Muy buena tu acotación sobre ftp_exec. Creo que por hay va mi problema.

ah¡ donde puedo encontrar información sobre los servidores (vsftp, pure-ftpd, proftpd).

Saludos
  #14 (permalink)  
Antiguo 21/03/2003, 17:16
 
Fecha de Ingreso: enero-2003
Mensajes: 286
Antigüedad: 21 años, 10 meses
Puntos: 0
que otra conexión podria realizar si no es ftp, para poder ejecutar este shell igual creo que podría ser sockets, pero la encuentro muy complicada.

Saludos..
  #15 (permalink)  
Antiguo 21/03/2003, 18:48
 
Fecha de Ingreso: diciembre-2002
Mensajes: 341
Antigüedad: 21 años, 11 meses
Puntos: 0
Supongamos que el servidor #1 es donde esta tu aplicación PHP y que queires ejecutar un porgrama en el servidor #2.

Creas un script en el servidor #2 que use alguna de las funciones exec(), sytem(), etc. para ejecutar el programa en cuestión.

Ya solo falta llamar al script del servidor #2, desde tu aplicación PHP del servidor #1. Para hacer esto basta con usar un include() o require().

Esto tiene sentido, no?
__________________
guebs - alojamiento web y dominios
www.guebs.com
blog.guebs.com
  #16 (permalink)  
Antiguo 22/03/2003, 08:38
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 10 meses
Puntos: 129
Pero el servidor #2 tiene que tener corriendo un servidor HTTP y PHP u otro lenguaje CGI en el .. Si así no hay problema con lo que plantea Argintxe ...

El problema es cuando el servidor #2 solo tienen una conexión TCP/IP (una red) sin mas servidores corriendo .. (bueno dice de un FTP .. y no se si alguno mas ..)

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #17 (permalink)  
Antiguo 22/03/2003, 09:20
 
Fecha de Ingreso: diciembre-2002
Mensajes: 341
Antigüedad: 21 años, 11 meses
Puntos: 0
En que no tuviera un servidor HTTP no había pensado....

Otra alternativa es que si tienes instalado un servidor SSH en el servidor #2, puedes enviar mediante SSH un comando desde el servidor #1 al servidor #2. En el servidor #1 con tener el cliente SSH es suficiente.

No lo he probado nunca, pero es posible hacerlo.

Código PHP:
system("ssh -l <xxx> -i <xxx> zzz.xx.ccc.vvv <comando>"); 
Tendrás que usar autentificación mediante llave pública.

Un saludo
__________________
guebs - alojamiento web y dominios
www.guebs.com
blog.guebs.com
  #18 (permalink)  
Antiguo 24/03/2003, 10:59
 
Fecha de Ingreso: enero-2003
Mensajes: 286
Antigüedad: 21 años, 10 meses
Puntos: 0
Se ve bastante bien, tiene lógica y es lo que quiero. Aquí el servidor #2 es UNIX y el servidor #1 es LINUX y este esta configurado con apache y php como corresponde. Ahora para crear ese script en UNIX debo instalar apache junto con php? el UNIX es DG/UX versión R4.20MU06, que apache y php respectivamente debo instalar?. Y lo más importante como voy a ejecutar include() o require()?, tengo que realizar una conexión para ejecutar este tipo de funciones? O como llamare las funciones desde el servidor LINUX si estas están en UNIX?

Gracias Argintxe
  #19 (permalink)  
Antiguo 24/03/2003, 11:10
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 10 meses
Puntos: 129
Si en tu servidor donde tienes ese archivo cobol que ejecutar instalas un servidor HTTP y PHP en el .. Puedes crear un script .php que te haga el exec() en ese servidor (en el UNIX) ..

En tu servidor "Linux" tan solo haces una llamada via HTTP:

<?
include("http://IP_servidor_UNIX/script_cobol.php");
?>

El resultado de ejecutar tu "script_cobol.php" será el que se presente en tu script_linux ...

Incluso tu script_cobol.php que hace el exec() de ese cobol .. podría generar un archivo XML .. en tu "linux" "parsearias ese XML" ...

Y hasta .. no sé ahora que sentido tendría tener ese "linux" con HTTTP y PHP .. tal vez lo dejas todo en el UNIX ..

Las versiones de PHP y Apache para UNIX las tienes en la seccion de descargas de sus web's respectivas:

www.apache.org
www.php.net

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #20 (permalink)  
Antiguo 24/03/2003, 14:17
 
Fecha de Ingreso: enero-2003
Mensajes: 286
Antigüedad: 21 años, 10 meses
Puntos: 0
Lo mejor sería dejarlo en UNIX pero este servidor esta para otros propositos. Quiero preguntar, si al instalar apache y php sobre unix y ejecutar este script habrian problemas de seguridad sobre el servidor unix. Y sobre el script_cobol.php espero, que genere un archivo plano solamente.

Y que otro tipo de conexión se puede realizar aparte de socket, ftp, include. ah¡ no existe en unix el modulo odbc. (algo así como un telnet )

saludos
  #21 (permalink)  
Antiguo 24/03/2003, 16:24
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 10 meses
Puntos: 129
Tener un servidor de HTTP corriendo en ese "UNIX" solo para lo que propones me parece una barbaridad ..

Ya te he dicho varias veces que preguntes en el foro "Sistemas operativos" o consulta algun libro sobre TCP/IP e informate de los numeroros protocoolos que existen .. de ahí lo que siempre te digo, mira si PHP tiene funciones nativas para usarlo .. y aun a malas por sockets siempre podras usar el protocoolo que escojas ..

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #22 (permalink)  
Antiguo 25/03/2003, 09:30
 
Fecha de Ingreso: enero-2003
Mensajes: 286
Antigüedad: 21 años, 10 meses
Puntos: 0
El servidor unix no se utiliza solo para esto, ya que en el funciona una intranet cuyos programas estan realizados por icobol, y se maneja gran información.
y si he consultado por protocolos, el problema esta, que por ejemplo vía ftp tengo dramas y no se si via sockets los voy a tener.


Saludos
  #23 (permalink)  
Antiguo 25/03/2003, 09:44
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 10 meses
Puntos: 129
reckba .. Un "Socket" es una conexión .. osese .. abres X puerto y "hablas" con el servicio que conectes via el protocoolo que use el servidor que conectes .. "Hablar" es enviarle "COMANDOS" y parámetos en el lenguaje que entienda .. y "Escuchar" lo que te envie .. El proceso que hagas tu al "escuchar" algo es problema tuyo de interpretarlo .. PHP solo te pone a tu disposición las funciones par abrir ese "socket" leer/escribir en el ... (lo que va y viene (paquetes) no es cosa de PHP ..)

Ejemplo .. Via sockets podrias conectar al puerto 21 de tu "UNIX" y usar los comandos del protocoolo del FTP para hacer lo MISMO que haces o mejor dicho "te pone facil" PHP con sus funciones ftp_xxxx() ..

Por eso te insisto una y otra vez que el problema principal NO es PHP .. sino que protocoolo es el que debes usar o el que es el idoneo para lo que pretendes hacer. Y eso te lo pueden resolver mejor en el foro "Sistemas Operativos" o estudiando algo de TCP/IP ..

Imagina que te dicen .. "Tienes que usar el puerto no secuantos y enviarle esta cadena "COMANDO_NOSE COPIA ESTO EN TAL SITIO" .. Con esos datos .. te vas a las funciones de fsokopen() y afines y estableces la conexión (el "socket" ..) Por si PHP no soportase nativamente ese protocoolo como por ejemplo si lo hace con el FTP ...

Para ayudarte con la gestión de socketes .. tienes las librerias cURL:
http://www.php.net/manual/en/ref.curl.php

Esto solo soporta conexiones HTTP y FTP (igual que las funciones de ftp_xxx de PHP ..)

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
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 22:10.