Foros del Web » Programando para Internet » PHP »

safe_mode no esta activo y no me corre shell_exec, exec, system, o ` que puedo hacer?

Estas en el tema de safe_mode no esta activo y no me corre shell_exec, exec, system, o ` que puedo hacer? en el foro de PHP en Foros del Web. Hola, hice este inocente script: Código PHP: whoami  > / home / goris / www / am / aa / borr_01 . txt  &  Le di ...
  #1 (permalink)  
Antiguo 21/06/2006, 15:37
 
Fecha de Ingreso: febrero-2004
Mensajes: 1.942
Antigüedad: 13 años, 9 meses
Puntos: 20
safe_mode no esta activo y no me corre shell_exec, exec, system, o ` que puedo hacer?

Hola,

hice este inocente script:
Código PHP:
whoami > /home/goris/www/am/aa/borr_01.txt 
Le di permisos 777 y me va de maravilla corriendolo desde Putty, (SHELL) corriendo esta linea:
Código PHP:
-bash-2.05b$ ./exe-test.exe 
Luego intento correr la misma linea desde file.php directamente:
Código PHP:
<pre><?php
echo shell_exec('./exe-test.exe');
echo 
exec('./exe-test.exe');
echo 
trim(`./exe-test.exe`);
echo 
system('./exe-test.exe');
echo 
'<br>'.trim(`date`);
?>
Y lo unico que si me corre es `date`

Como podria hacer uso de mi file.exe ?
  #2 (permalink)  
Antiguo 10/07/2006, 12:14
 
Fecha de Ingreso: febrero-2004
Mensajes: 1.942
Antigüedad: 13 años, 9 meses
Puntos: 20
Hola,

han pasado muchas semanas y no logro resolver el problema...

Alguna ayuda plis...
  #3 (permalink)  
Antiguo 10/07/2006, 12:33
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Todas las funciones que has probado tienen métodos (parámetros) para obtener mensajes de error, tando de la ejecución de la própia función como de lo que por "shell" te arrojaría la ejecución de tu comando.

Es necesario que lo uses para que veas el error concreto que tengas .. Si no hay mensaje de error no sabras que debes revisar o ajustar (tal vez problema de permisos? .. u otra cosa).

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 10/07/2006, 14:40
 
Fecha de Ingreso: febrero-2004
Mensajes: 1.942
Antigüedad: 13 años, 9 meses
Puntos: 20
Hola CLUSTER,

ambos files tienen 777
Y cuando coloco la pocion del herror solo me dveulven 1
Y de salida no me dan nada
Solo
Código PHP:
$qq=echo system('./exe-test.exe',$error);
echo 
"$qq::$error"
Esto me imprime
Código HTML:
::1
Y nada mas.

Gracias.
  #5 (permalink)  
Antiguo 10/07/2006, 15:31
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Pero .. estás aplicado mal las funciones ..

System() por lo menos el 2° parámetros no devuelve el "error" sino el resultado (lo que verías si ejecutas el comando en la "shell" directo).

Toma el ejemplo de PHP.net al respecto:
www.php.net/system

La función exec() tiene dos parámetros más .. en uno devuelve un array con lo que la "consola" (shell) arrojaría y en otro un código de error ..

Te recomendaría usar exec() pero completa:
www.php.net/exec

Y .. "ojo" con lo que la ejecución de ese ".exe" devuelva por qué si es un "binario" (o lo podría ser) la función adecuada sería:

passthru()

Ojo también con los parámetros que pasas a esas funciones .. tal vez te haga falta usar:

escapeshellcmd()

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #6 (permalink)  
Antiguo 10/07/2006, 15:33
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
(Por cierto .. ese ".exe" donde se supone que quieres hacerlo correr? .. Las funciones "system()" y afines van a ajecutar la aplciación en el servidor .. no en el -cliente- !!!)

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 11/07/2006, 10:08
 
Fecha de Ingreso: febrero-2004
Mensajes: 1.942
Antigüedad: 13 años, 9 meses
Puntos: 20
Cluster ningun binario y ningun Cliente:

en my session de SSH tiro:
Código PHP:
/home/goris/www/br2/firefox/firefox -htmltops URL "http://www.google.com" 
Lo cual me abre FIREFOX yu el URL indicado.

Luego he creado el file "test.exe" con 777 y le he colocado la misma linea.

Asi que cuando corro:

SSH- /home/goris/www/test.exe

Pos se me diapara el FIREFOX y el URL indicado en test.exe

Ahora todo lo que intento es correr test.exe con PHP y ahio esta mi problema.

Pillate esto:

http://mozillaes.org/index.php?optio...wtopic&t=13688

Si me das la mano con el asunto PHP te agradecere.

O sera que tambien con el tema FIREFOX?... :-o
  #8 (permalink)  
Antiguo 11/07/2006, 10:24
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Pero .. con un exec() no puedes "levantar" una aplicación tipo navegador ..

El proceso que puede ejecutar es algo que no tenga iteración con el cliente (usuario) .. por ejemplo que tras pasar tal parámetro .. genere un archivo o una salida por sí sólo . .no llamar a su vez a otra aplicación ...

Si tienes algún comando extra para llamar a "firefox" sin que lo levante (que genere una salida de cualquier tipo .. sería lo ideal ..

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #9 (permalink)  
Antiguo 11/07/2006, 10:55
 
Fecha de Ingreso: febrero-2004
Mensajes: 1.942
Antigüedad: 13 años, 9 meses
Puntos: 20
Maestro,

Con my PUTTY corro la linea
Código PHP:
/home/goris/www/test.exe 
Y todo va de maravilla...

Ahora, no se supone que EXEC() corre un programa externo ?

PD: Toy en LINUX
  #10 (permalink)  
Antiguo 11/07/2006, 11:05
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
A ver .. exec() lo trata PHP .. y así requiere del tipo de aplicaciones que te menciono: puramente "CLI" (Command Line Interface) .. nada de levantar otras aplicaciones ni interfaces de estas, sobre todo "interfaces" ...

llama a un comando como los ejemplos que veras en php.net sobre exec() .. un comando simple como un "ls" .. (de Linux) .. o una aplicación tuya compilada que genere un "hola mundo" sólo como salida (nada de que use interface gráfica) ...

Por otro lado .. como ejecutas "test.exe" en Linux? .. Recuera que exec() va a ejecuar la aplicación que corra en el servidor no en el cliente.

Y lo dicho anteriormente .. intenta usar la función de PHP adecuada que te permita ver la "salida" y/o "mensajes de error" que estás obteniendo (pero no viendo) en este momento .. eso te aclarará mejor el panorama.

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #11 (permalink)  
Antiguo 11/07/2006, 20:09
 
Fecha de Ingreso: febrero-2004
Mensajes: 1.942
Antigüedad: 13 años, 9 meses
Puntos: 20
El tema del FIREFOX solo fue un ejemplo, (aunque lo que busco tiene ese enfoque), pues algo completamente "CLI" como
Código PHP:
date >> /home/goris/www/00.txt
Tambien falla.
  #12 (permalink)  
Antiguo 11/07/2006, 21:10
 
Fecha de Ingreso: julio-2006
Mensajes: 99
Antigüedad: 11 años, 4 meses
Puntos: 0
Una pregunta Anarko, por que puerto o que hay que poner en putty para acceder a tu servidor remotamente?
  #13 (permalink)  
Antiguo 12/07/2006, 06:50
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Cita:
Iniciado por N0vat0
Una pregunta Anarko, por que puerto o que hay que poner en putty para acceder a tu servidor remotamente?
Putty es un cliente SSH/telnet .. depende de que usuario de tu servidor uses si tiene acceso por SSH o telnet habilitado (en su shell .. o "bash" para hacer "login") y de que estés corriendo ese servidor SSH o telnet.

Los "puertos" serán el 22 para SSH o el 23 para Telnet (aunque esto puede cambiar en tu servidor si no usas los puertos standards ...)

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #14 (permalink)  
Antiguo 12/07/2006, 10:43
 
Fecha de Ingreso: febrero-2004
Mensajes: 1.942
Antigüedad: 13 años, 9 meses
Puntos: 20
Maestro cuando corro con SSH whoami me sale
Código HTML:
juan
y el mismoi comando con PHP me devuelve
Código HTML:
juan
  #15 (permalink)  
Antiguo 12/07/2006, 10:51
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Pues ahí sólo estás ratificando lo que ya te he comentado várias veces en este mensaje:

PHP Sólo puede ejecutar funciones/comandos/aplicaciones a nivel Shell que arrojen como resultado (a "consola") un resultado .. NO una interface "gráfica" con iteracción con el usuario.

Por eso te insisto una vez más que lo que tengas que hacer .. que lo haga una aplicación en la medida de lo posible que NO levante ningún otra aplicación .. que lo haga todo por línea de comandos .. Por ejemplo .. algo que tu le pases un parámetro y te deje creado un archivo en tal sitio .. o a lo sumo que el resultado sea "texto plano" (para consola) o "binario" pero sólo eso .. nada más!.

No puedes con PHP (para que te hagas un idea) vía exec() llamar a una aplicación tipo "Visual Basic" y ejecutarla como si fuera PHP un "terminal remoto" y te haga toda la gestión con el navegador (cliente) que uses .. Así no funciona PHP para tal fin ... Date cuenta que estás en un ambiente "cliente-servidor" bien particular: Clientes > navegadores .. PHP bajo un servidor HTTP (con su protocolo y todo el cuento).

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 20:15.