Foros del Web » Programando para Internet » PHP »

shell_exec() en php no funciona.

Estas en el tema de shell_exec() en php no funciona. en el foro de PHP en Foros del Web. Veran, los camandos basicos funcionan, pero cuando quiero apagar la pc no ejecuta el comando. Y pruebo los comandos directamente en el cmd tambien pero ...
  #1 (permalink)  
Antiguo 14/03/2017, 15:52
 
Fecha de Ingreso: agosto-2012
Ubicación: M.
Mensajes: 2.031
Antigüedad: 11 años, 8 meses
Puntos: 52
shell_exec() en php no funciona.

Veran, los camandos basicos funcionan, pero cuando quiero apagar la pc no ejecuta el comando.
Y pruebo los comandos directamente en el cmd tambien
pero no se por que algunos como el de apagar no los ejecuta.

Lo pruebo en S.O windows 7
de antemano gracias.
__________________
a veces creemos que es algo básico pero al profundizar nos damos cuenta que estábamos tocando solo la cola de la culebra
  #2 (permalink)  
Antiguo 15/03/2017, 08:32
 
Fecha de Ingreso: octubre-2009
Mensajes: 305
Antigüedad: 14 años, 6 meses
Puntos: 29
Respuesta: shell_exec() en php no funciona.

asumo que sebe ser por permisos, pero desconozco como aplicarlos en W7, intenta darle permisos al usuario del servicio de apache
  #3 (permalink)  
Antiguo 15/03/2017, 22:41
Avatar de haggenx  
Fecha de Ingreso: febrero-2007
Ubicación: México
Mensajes: 823
Antigüedad: 17 años, 2 meses
Puntos: 24
Respuesta: shell_exec() en php no funciona.

a mi me pasó hace tiempo algo similar, cuando arrancaba el servidor de php como servicio (para arranque automático) shell_exec no funcionaba, no daba ningún error, simplemente no pasaba nada, lo tuve hacer que iniciara manualmente (xampp) mediante el programador de tareas de windows y ahora si funcionaba todo bien.
__________________
Mi blog informático http://marjuanm.blogspot.mx
Fanpage del blog https://www.facebook.com/pages/Mis-p...36397183215592
  #4 (permalink)  
Antiguo 16/03/2017, 07:46
 
Fecha de Ingreso: octubre-2009
Mensajes: 305
Antigüedad: 14 años, 6 meses
Puntos: 29
Respuesta: shell_exec() en php no funciona.

Cita:
Iniciado por haggenx Ver Mensaje
a mi me pasó hace tiempo algo similar, cuando arrancaba el servidor de php como servicio (para arranque automático) shell_exec no funcionaba, no daba ningún error, simplemente no pasaba nada, lo tuve hacer que iniciara manualmente (xampp) mediante el programador de tareas de windows y ahora si funcionaba todo bien.
Precisamente, porque cuando lo arrancas manual es tú usuario quien lo ejecuta, y por ende tiene tus permisos, pero cuando lo hace de forma automática lo hace uno de los usuario especiales del sistema operativo, los cuales operan en una instancia diferente (o la llamada sesión cero), es por ello que dicho usuario no tienen plenos permisos.

por lo cual tienes 2 opciones:

otorgarle permisos al usuario del servicio de apache.

o asignar otro usuario al servicio de apache.

porque cada vez que el server se reinicie tendrá que ejecutar apache a mano, y eso no es viable.
  #5 (permalink)  
Antiguo 16/03/2017, 10:50
 
Fecha de Ingreso: agosto-2012
Ubicación: M.
Mensajes: 2.031
Antigüedad: 11 años, 8 meses
Puntos: 52
Respuesta: shell_exec() en php no funciona.

pues la idea es apagar equipos remotos no tanto el servidor, pero creo que necesito algo mas para que siquiera el puro cmd del servidor me permita apagar los equipos de la red.
en cmd solo funciona local y php no
y lo demas ni se diga.
Segun el usuario que uso tiene todos los privilegios pero no consigo apagar en local.
__________________
a veces creemos que es algo básico pero al profundizar nos damos cuenta que estábamos tocando solo la cola de la culebra
  #6 (permalink)  
Antiguo 16/03/2017, 11:11
 
Fecha de Ingreso: octubre-2009
Mensajes: 305
Antigüedad: 14 años, 6 meses
Puntos: 29
Respuesta: shell_exec() en php no funciona.

con mayor razón, si la idea es apagar equipos "remotos", ¿como "remotamente" vas a iniciar el proceso de forma manual?: la idea es que al encender el equipo se inicie automáticamente el servicio, y por ende, cuando ejecutes la acción de apagar, se apague, por lo cual No tiene sentido ejecutar el apache manualmente cuando se supone que debe de estar ejecutado ya.
  #7 (permalink)  
Antiguo 16/03/2017, 11:44
 
Fecha de Ingreso: agosto-2012
Ubicación: M.
Mensajes: 2.031
Antigüedad: 11 años, 8 meses
Puntos: 52
Respuesta: shell_exec() en php no funciona.

Cita:
Iniciado por sustentio Ver Mensaje
con mayor razón, si la idea es apagar equipos "remotos", ¿como "remotamente" vas a iniciar el proceso de forma manual?: la idea es que al encender el equipo se inicie automáticamente el servicio, y por ende, cuando ejecutes la acción de apagar, se apague, por lo cual No tiene sentido ejecutar el apache manualmente cuando se supone que debe de estar ejecutado ya.
Si, se supone que apache va a estar ejecutandose siempre y cuando presione el boton apagar deben apagarse los equipos.
pero antes de eso debo probarlo que funcione directamente en cmd local ya que los comandos que uso actualmente solo serán para windows, luego buscare una forma para que funcione para las macs.
Y debo probarlo primero manualmente en cmd por eso de los permisos.
primero pruebo que funcione en cmd, y si funciona en cmd y no funciona en php entonces alli es cuestion de permisos y debo averiguar.
__________________
a veces creemos que es algo básico pero al profundizar nos damos cuenta que estábamos tocando solo la cola de la culebra
  #8 (permalink)  
Antiguo 16/03/2017, 12:10
 
Fecha de Ingreso: octubre-2009
Mensajes: 305
Antigüedad: 14 años, 6 meses
Puntos: 29
Respuesta: shell_exec() en php no funciona.

"primero pruebo que funcione en cmd, y si funciona en cmd y no funciona en php entonces alli es cuestion de permisos y debo averiguar."

es lo mismo, usar cmd o un servicio es lo mismo: usan un usuario, debes darle permisos al usuario

"una forma para que funcione para las mac"

Menudo rollo, el tema de los permisos es más fuerte aún, así como en Linux.
  #9 (permalink)  
Antiguo 16/03/2017, 12:16
 
Fecha de Ingreso: agosto-2012
Ubicación: M.
Mensajes: 2.031
Antigüedad: 11 años, 8 meses
Puntos: 52
Respuesta: shell_exec() en php no funciona.

jejes, es que tengo equipos de todos aca
__________________
a veces creemos que es algo básico pero al profundizar nos damos cuenta que estábamos tocando solo la cola de la culebra
  #10 (permalink)  
Antiguo 16/03/2017, 12:58
 
Fecha de Ingreso: noviembre-2003
Ubicación: Zaragoza, España
Mensajes: 1.257
Antigüedad: 20 años, 5 meses
Puntos: 154
Respuesta: shell_exec() en php no funciona.

Hola minombreesmm,

De todas formas ¿has pensado que PHP se ejecuta en el servidor y por lo tanto cualquier comando de consola que intentes ejecutar lo harás en dicho servidor?

Por lo menos es lo que yo sé, pero puedo estar equivocado...
  #11 (permalink)  
Antiguo 16/03/2017, 13:39
 
Fecha de Ingreso: agosto-2012
Ubicación: M.
Mensajes: 2.031
Antigüedad: 11 años, 8 meses
Puntos: 52
Respuesta: shell_exec() en php no funciona.

Cita:
Iniciado por rbczgz Ver Mensaje
Hola minombreesmm,

De todas formas ¿has pensado que PHP se ejecuta en el servidor y por lo tanto cualquier comando de consola que intentes ejecutar lo harás en dicho servidor?

Por lo menos es lo que yo sé, pero puedo estar equivocado...
Si eso si lo pense, pero se supone que php envia comandos como si fueran cmd, entonces deberia hacerlo en teoria.

http://php.net/manual/es/function.shell-exec.php

Código PHP:
Ver original
  1. $salida = shell_exec('ls -lart');
  2. echo "<pre>$salida</pre>";

logre apagar el local ejecutando un .bat y dentro de el SHUTDOWN /S /T 10
y me falta probar el
shutdown /s /m \\nombreequipo
este ultimo tambien apago mi pc
este comando cancela el apagado shutdown -a
__________________
a veces creemos que es algo básico pero al profundizar nos damos cuenta que estábamos tocando solo la cola de la culebra
  #12 (permalink)  
Antiguo 16/03/2017, 13:39
 
Fecha de Ingreso: octubre-2009
Mensajes: 305
Antigüedad: 14 años, 6 meses
Puntos: 29
Respuesta: shell_exec() en php no funciona.

@rbczgz tienes razón, pero yo entendí que él instalaria php/apache en cada pc y que remotamente al acceder al mismo por php apague el equipo, no es el métiodo más practico pero es factible.

aunque lo mejor es crear aplicativos clientes que se queden en los pc y se conecten al server maestro para saber cuando apagarse, y para que sea multiplataforma lo ideal es JAVA. aunque tambien .net, pero ignoro hasta que punto a avanzado .net en MAC, porque en Linux ha avanzado bastante, por ejemplo tenemos WCF (WIndows Comunication Foundation) que permite crear sockets multiplataforma.
  #13 (permalink)  
Antiguo 16/03/2017, 13:44
 
Fecha de Ingreso: agosto-2012
Ubicación: M.
Mensajes: 2.031
Antigüedad: 11 años, 8 meses
Puntos: 52
Respuesta: shell_exec() en php no funciona.

Me falta probar este a ver si apaga un equipo remoto que esté en mi red
shutdown /s /m \\nombreequipo
aun no he ido al sitio pero veremos que sucede.
se supone que eso debe hacer ese comando
https://technet.microsoft.com/es-es/...(v=ws.11).aspx

se supone que ya enviar el comando ya no será trabajo de php por que abrira la ventana ms-dos

Ojala funcione, luego lo dificil será apagar una mac remota desde cmd
__________________
a veces creemos que es algo básico pero al profundizar nos damos cuenta que estábamos tocando solo la cola de la culebra

Última edición por minombreesmm; 16/03/2017 a las 13:52
  #14 (permalink)  
Antiguo 16/03/2017, 14:30
 
Fecha de Ingreso: octubre-2009
Mensajes: 305
Antigüedad: 14 años, 6 meses
Puntos: 29
Respuesta: shell_exec() en php no funciona.

pero eso solo funciona con equipos windows conectados en el mismo dominio de forma remota, de hecho ni php necesitas
  #15 (permalink)  
Antiguo 16/03/2017, 16:52
 
Fecha de Ingreso: agosto-2012
Ubicación: M.
Mensajes: 2.031
Antigüedad: 11 años, 8 meses
Puntos: 52
Respuesta: shell_exec() en php no funciona.

Cita:
Iniciado por sustentio Ver Mensaje
pero eso solo funciona con equipos windows conectados en el mismo dominio de forma remota, de hecho ni php necesitas
Bueno la idea es que se puedan hacer mas cosas que un simple apagado.
copiar archivos, mover etc.
para no tener que usar teamviewer o algo asi.
__________________
a veces creemos que es algo básico pero al profundizar nos damos cuenta que estábamos tocando solo la cola de la culebra
  #16 (permalink)  
Antiguo 20/03/2017, 06:35
 
Fecha de Ingreso: julio-2014
Mensajes: 334
Antigüedad: 9 años, 9 meses
Puntos: 30
Respuesta: shell_exec() en php no funciona.

Y yo pregunto... porqué no utilizas un lenguaje .NET para hacer eso? Estos tambien pueden trabajar desde la web si no tienes otra alternativa.

Para que complicarse con php cundo existe Visual Basic o C# por poner un ejemplo.
  #17 (permalink)  
Antiguo 20/03/2017, 14:16
 
Fecha de Ingreso: agosto-2012
Ubicación: M.
Mensajes: 2.031
Antigüedad: 11 años, 8 meses
Puntos: 52
Respuesta: shell_exec() en php no funciona.

Cita:
Iniciado por Triby2 Ver Mensaje
Y yo pregunto... porqué no utilizas un lenguaje .NET para hacer eso? Estos tambien pueden trabajar desde la web si no tienes otra alternativa.

Para que complicarse con php cundo existe Visual Basic o C# por poner un ejemplo.
Solo espero no halla problema en aplicarlo para mac y linux
__________________
a veces creemos que es algo básico pero al profundizar nos damos cuenta que estábamos tocando solo la cola de la culebra
  #18 (permalink)  
Antiguo 20/03/2017, 16:44
 
Fecha de Ingreso: julio-2014
Mensajes: 334
Antigüedad: 9 años, 9 meses
Puntos: 30
Respuesta: shell_exec() en php no funciona.

Cita:
Iniciado por minombreesmm Ver Mensaje
Solo espero no halla problema en aplicarlo para mac y linux
Visita este sitio que te indica como
http://www.mono-project.com/Main_Page

Aqui hay un buen articulo al respecto
http://www.linux.com/articles/53582

Si no entiendes ingles solo busca en español como ejecutar .Net en esas plataformas.

Etiquetas: Ninguno
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 09:38.